KT-3525 Duplicate inner class name not detected
#KT-3525 Fixed
This commit is contained in:
@@ -346,7 +346,13 @@ public class DeclarationResolver {
|
||||
}
|
||||
|
||||
private void checkRedeclarationsInInnerClassNames() {
|
||||
for (MutableClassDescriptor classDescriptor : context.getClasses().values()) {
|
||||
Iterable<MutableClassDescriptor> classesAndObjects = Iterables.concat(context.getClasses().values(), context.getObjects().values());
|
||||
for (MutableClassDescriptor classDescriptor : classesAndObjects) {
|
||||
if (classDescriptor.getKind() == ClassKind.CLASS_OBJECT) {
|
||||
// Class objects should be considered during analysing redeclarations in classes
|
||||
continue;
|
||||
}
|
||||
|
||||
Collection<DeclarationDescriptor> allDescriptors = classDescriptor.getScopeForMemberLookup().getOwnDeclaredDescriptors();
|
||||
|
||||
MutableClassDescriptorLite classObj = classDescriptor.getClassObjectDescriptor();
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// KT-3525
|
||||
object B {
|
||||
class <!REDECLARATION!>C<!>
|
||||
class <!REDECLARATION!>C<!>
|
||||
|
||||
val <!REDECLARATION!>a<!> : Int = 1
|
||||
val <!REDECLARATION!>a<!> : Int = 1
|
||||
}
|
||||
@@ -3468,6 +3468,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
doTest("compiler/testData/diagnostics/tests/redeclarations/Redeclarations.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("RedeclarationsInObjects.kt")
|
||||
public void testRedeclarationsInObjects() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/redeclarations/RedeclarationsInObjects.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("RedeclaredTypeParameters.kt")
|
||||
public void testRedeclaredTypeParameters() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt");
|
||||
|
||||
Reference in New Issue
Block a user