Try to resolve expression as class object if resolution found an inappropriate result
This commit is contained in:
+3
-3
@@ -246,7 +246,7 @@ public class CallExpressionResolver {
|
||||
context.replaceTraceAndCache(temporaryForVariable),
|
||||
call, CheckValueArgumentsMode.ENABLED);
|
||||
OverloadResolutionResults<VariableDescriptor> resolutionResult = callResolver.resolveSimpleProperty(contextForVariable);
|
||||
if (!resolutionResult.isNothing()) {
|
||||
if (resolutionResult.isSuccess()) {
|
||||
temporaryForVariable.commit();
|
||||
checkSuper(receiver, resolutionResult, context.trace, nameExpression);
|
||||
result[0] = true;
|
||||
@@ -271,8 +271,8 @@ public class CallExpressionResolver {
|
||||
return jetType;
|
||||
}
|
||||
temporaryForVariable.commit();
|
||||
result[0] = false;
|
||||
return null;
|
||||
result[0] = !resolutionResult.isNothing();
|
||||
return resolutionResult.isSingleResult() ? resolutionResult.getResultingDescriptor().getReturnType() : null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
enum class E {
|
||||
entry
|
||||
}
|
||||
|
||||
val Int.entry = 42
|
||||
val Long.entry = 239
|
||||
|
||||
val e = E.entry
|
||||
@@ -2572,6 +2572,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
doTest("compiler/testData/diagnostics/tests/enum/enumWithEmptyName.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("extensionNamedAsEnumEntry.kt")
|
||||
public void testExtensionNamedAsEnumEntry() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/enum/extensionNamedAsEnumEntry.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("importEnumFromJava.kt")
|
||||
public void testImportEnumFromJava() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt");
|
||||
|
||||
Reference in New Issue
Block a user