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),
|
context.replaceTraceAndCache(temporaryForVariable),
|
||||||
call, CheckValueArgumentsMode.ENABLED);
|
call, CheckValueArgumentsMode.ENABLED);
|
||||||
OverloadResolutionResults<VariableDescriptor> resolutionResult = callResolver.resolveSimpleProperty(contextForVariable);
|
OverloadResolutionResults<VariableDescriptor> resolutionResult = callResolver.resolveSimpleProperty(contextForVariable);
|
||||||
if (!resolutionResult.isNothing()) {
|
if (resolutionResult.isSuccess()) {
|
||||||
temporaryForVariable.commit();
|
temporaryForVariable.commit();
|
||||||
checkSuper(receiver, resolutionResult, context.trace, nameExpression);
|
checkSuper(receiver, resolutionResult, context.trace, nameExpression);
|
||||||
result[0] = true;
|
result[0] = true;
|
||||||
@@ -271,8 +271,8 @@ public class CallExpressionResolver {
|
|||||||
return jetType;
|
return jetType;
|
||||||
}
|
}
|
||||||
temporaryForVariable.commit();
|
temporaryForVariable.commit();
|
||||||
result[0] = false;
|
result[0] = !resolutionResult.isNothing();
|
||||||
return null;
|
return resolutionResult.isSingleResult() ? resolutionResult.getResultingDescriptor().getReturnType() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@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");
|
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")
|
@TestMetadata("importEnumFromJava.kt")
|
||||||
public void testImportEnumFromJava() throws Exception {
|
public void testImportEnumFromJava() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt");
|
doTest("compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user