Properly check overloads in enum
This commit is contained in:
@@ -132,14 +132,6 @@ public class OverloadResolver {
|
|||||||
) {
|
) {
|
||||||
MultiMap<Name, CallableMemberDescriptor> functionsByName = MultiMap.create();
|
MultiMap<Name, CallableMemberDescriptor> functionsByName = MultiMap.create();
|
||||||
|
|
||||||
if (classDescriptor.getKind() == ClassKind.ENUM_CLASS) {
|
|
||||||
ClassDescriptorWithResolutionScopes classObjectDescriptor = classDescriptor.getClassObjectDescriptor();
|
|
||||||
assert classObjectDescriptor != null;
|
|
||||||
for (CallableMemberDescriptor memberDescriptor : classObjectDescriptor.getDeclaredCallableMembers()) {
|
|
||||||
functionsByName.putValue(memberDescriptor.getName(), memberDescriptor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (CallableMemberDescriptor function : classDescriptor.getDeclaredCallableMembers()) {
|
for (CallableMemberDescriptor function : classDescriptor.getDeclaredCallableMembers()) {
|
||||||
functionsByName.putValue(function.getName(), function);
|
functionsByName.putValue(function.getName(), function);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
enum class <!CONFLICTING_JVM_DECLARATIONS, CONFLICTING_JVM_DECLARATIONS!>E<!> {
|
||||||
|
A;
|
||||||
|
|
||||||
|
<!CONFLICTING_JVM_DECLARATIONS!>fun values(): Array<E><!> = null!!
|
||||||
|
<!CONFLICTING_JVM_DECLARATIONS!>fun valueOf(s: String): E<!> = null!!
|
||||||
|
}
|
||||||
@@ -2855,6 +2855,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
|||||||
doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/delegationBy.kt");
|
doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/delegationBy.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enum.kt")
|
||||||
|
public void testEnum() throws Exception {
|
||||||
|
doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/enum.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("innerClassField.kt")
|
@TestMetadata("innerClassField.kt")
|
||||||
public void testInnerClassField() throws Exception {
|
public void testInnerClassField() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/innerClassField.kt");
|
doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/innerClassField.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user