cursor

code with a caret at offset, ready to analyze. A placeholder identifier is spliced in at the caret first, because completion runs on source that does not parse: foo. has no selector, so the parser yields no dotted expression and the receiver cannot be reached. IntelliJ splices one in for the same reason, and reusing its name means anything that special-cases it still behaves.