Rename: Report redeclaration conflict between class and type alias

#KT-22751 Fixed
This commit is contained in:
Alexey Sedunov
2018-02-19 15:45:56 +03:00
parent a341392524
commit 27f5ddcf83
5 changed files with 20 additions and 1 deletions
@@ -99,7 +99,7 @@ internal fun checkRedeclarations(
fun MemberScope.findSiblingsByName(): List<DeclarationDescriptor> {
val descriptorKindFilter = when (descriptor) {
is ClassDescriptor -> DescriptorKindFilter.CLASSIFIERS
is ClassifierDescriptor -> DescriptorKindFilter.CLASSIFIERS
is PropertyDescriptor -> DescriptorKindFilter.VARIABLES
is FunctionDescriptor -> DescriptorKindFilter.FUNCTIONS
else -> return emptyList()
@@ -0,0 +1,3 @@
actual typealias Foo = Foo
class Foo
@@ -0,0 +1,3 @@
actual typealias /*rename*/A = Foo
class Foo
@@ -0,0 +1,7 @@
{
"type": "MARKED_ELEMENT",
"mainFile": "test.kt",
"newName": "Foo",
"withRuntime": "true",
"hint": "Class 'Foo' is already declared in package"
}
@@ -157,6 +157,12 @@ public class RenameTestGenerated extends AbstractRenameTest {
doTest(fileName);
}
@TestMetadata("classAndTypeAliasRedeclaration/classAndTypeAliasRedeclaration.test")
public void testClassAndTypeAliasRedeclaration_ClassAndTypeAliasRedeclaration() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/rename/classAndTypeAliasRedeclaration/classAndTypeAliasRedeclaration.test");
doTest(fileName);
}
@TestMetadata("classByPrimaryConstructor/classByPrimaryConstructor.test")
public void testClassByPrimaryConstructor_ClassByPrimaryConstructor() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/rename/classByPrimaryConstructor/classByPrimaryConstructor.test");