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() {
|
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();
|
Collection<DeclarationDescriptor> allDescriptors = classDescriptor.getScopeForMemberLookup().getOwnDeclaredDescriptors();
|
||||||
|
|
||||||
MutableClassDescriptorLite classObj = classDescriptor.getClassObjectDescriptor();
|
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");
|
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")
|
@TestMetadata("RedeclaredTypeParameters.kt")
|
||||||
public void testRedeclaredTypeParameters() throws Exception {
|
public void testRedeclaredTypeParameters() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt");
|
doTest("compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user