KT-3525 Duplicate inner class name not detected

#KT-3525 Fixed
This commit is contained in:
Nikolay Krasko
2013-04-18 20:05:50 +04:00
parent 37f25f2ee1
commit 5df85f6100
3 changed files with 20 additions and 1 deletions
@@ -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");