Refactor resolution of double colon expression LHS

Try resolving the LHS only when it looks (PSI-wise) like it could represent a
type element. This, for example, allows "illegal selector" error to be reported
on weird expressions like '""?.""::class'.

Also remove expression text from the "illegal selector" diagnostic, it's not
needed and can screw up the error message if the text is too big
This commit is contained in:
Alexander Udalov
2016-06-17 15:19:45 +03:00
parent 5a2f34b351
commit 5a6237b357
9 changed files with 125 additions and 52 deletions
@@ -8607,6 +8607,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("illegalSelectorCallableReference.kt")
public void testIllegalSelectorCallableReference() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/incompleteCode/illegalSelectorCallableReference.kt");
doTest(fileName);
}
@TestMetadata("inExpr.kt")
public void testInExpr() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/incompleteCode/inExpr.kt");