From d1cbee44f1ac4b75e2cbca3bd7c1fc50fca5fcfc Mon Sep 17 00:00:00 2001 From: Burak Eregar Date: Tue, 26 Mar 2019 23:53:45 +0000 Subject: [PATCH] Move refactoring: suggest file name starting with an uppercase letter Fixed #KT-30342 --- .../kotlin/idea/refactoring/move/moveUtils.kt | 22 +++++++++---------- .../after/baz/{test.kt => Test.kt} | 0 .../after/baz/{test.kt => Test.kt} | 0 .../after/foo/{test.kt => Test.kt} | 0 .../after/foo/{test.kt => Test.kt} | 0 .../after/bar/{test.kt => Test.kt} | 0 .../after/bar/{test.kt => Test.kt} | 0 .../after/b/{test.kt => Test.kt} | 0 .../after/foo/{test.kt => Test.kt} | 0 .../after/baz/{test.kt => Test.kt} | 0 .../after/bar/{test.kt => Test.kt} | 0 .../after/target/{test.kt => Test.kt} | 0 .../after/target/{test.kt => Test.kt} | 0 .../after/foo/{name.kt => Name.kt} | 0 .../after/first/{test.kt => Test.kt} | 0 ...lDependency.test => MutualDependency.test} | 0 .../after/pack2/{test.kt => Test.kt} | 0 .../after/bar/{someVal.kt => SomeVal.kt} | 0 .../after/target/{foo.kt => Foo.kt} | 0 .../after/b/{test.kt => Test.kt} | 0 .../after/newPackage/{foo.kt => Foo.kt} | 0 .../after/newPackage/{foo.kt => Foo.kt} | 0 .../after/b/{test.kt => Test.kt} | 0 .../after/b/{test.kt => Test.kt} | 0 .../after/B/src/target/{val1.kt => Val1.kt} | 0 .../refactoring/move/MoveTestGenerated.java | 2 +- 26 files changed, 11 insertions(+), 13 deletions(-) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithFqNames/after/baz/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithImports/after/baz/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithFqNames/after/foo/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithImports/after/foo/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTarget/after/bar/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTargetWithFqNames/after/bar/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/functionAlreadyInaccessible/after/b/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSource/after/foo/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSourceAndTarget/after/baz/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentTarget/after/bar/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/delegateInObject/after/target/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/fakeOverrideInObject/after/target/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/functionAndPropertyWithSameName/after/foo/{name.kt => Name.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/first/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/{mutualDependency.test => MutualDependency.test} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/after/pack2/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/shortenStringTemplateEntry/after/bar/{someVal.kt => SomeVal.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/unaffectedQualifiedReferences/after/target/{foo.kt => Foo.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackageUsedInJava/after/newPackage/{foo.kt => Foo.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveOnlyFunctionToPackageUsedInJava/after/newPackage/{foo.kt => Foo.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/propertyAlreadyInaccessible/after/b/{test.kt => Test.kt} (100%) rename idea/testData/refactoring/moveMultiModule/moveToUnrelatedModuleConflict/after/B/src/target/{val1.kt => Val1.kt} (100%) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt index 33d4b035802..31f42459077 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -125,11 +125,10 @@ fun KtElement.processInternalReferencesToUpdateOnPackageNameChange( val declaration by lazy { var result = DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor) ?: return@lazy null - if (descriptor.isCompanionObject() - && bindingContext[BindingContext.SHORT_REFERENCE_TO_COMPANION_OBJECT, refExpr] != null + if (descriptor.isCompanionObject() && + bindingContext[BindingContext.SHORT_REFERENCE_TO_COMPANION_OBJECT, refExpr] !== null ) { - if (result !is KtObjectDeclaration) return@lazy null - result = result.containingClassOrObject ?: result + result = (result as? KtObjectDeclaration)?.containingClassOrObject ?: result } result @@ -148,10 +147,10 @@ fun KtElement.processInternalReferencesToUpdateOnPackageNameChange( } if (!isExtension) { - if (!(containingDescriptor is PackageFragmentDescriptor - || containingDescriptor is ClassDescriptor && containingDescriptor.kind == ClassKind.OBJECT - || descriptor is JavaCallableMemberDescriptor && ((declaration as? PsiMember)?.hasModifierProperty(PsiModifier.STATIC) == true)) - ) return null + val isCompatibleDescriptor = containingDescriptor is PackageFragmentDescriptor || + containingDescriptor is ClassDescriptor && containingDescriptor.kind == ClassKind.OBJECT || + descriptor is JavaCallableMemberDescriptor && ((declaration as? PsiMember)?.hasModifierProperty(PsiModifier.STATIC) == true) + if (!isCompatibleDescriptor) return null } } @@ -387,12 +386,11 @@ private fun isCallableReference(reference: PsiReference): Boolean { fun guessNewFileName(declarationsToMove: Collection): String? { if (declarationsToMove.isEmpty()) return null - val representative = declarationsToMove.singleOrNull() ?: declarationsToMove.filterIsInstance().singleOrNull() - representative?.let { return "${it.name}.${KotlinFileType.EXTENSION}" } - - return declarationsToMove.first().containingFile.name + val newFileName = representative?.run { "$name.${KotlinFileType.EXTENSION}" } + ?: declarationsToMove.first().containingFile.name + return newFileName.capitalize() } // returns true if successful diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithFqNames/after/baz/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithFqNames/after/baz/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithFqNames/after/baz/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithFqNames/after/baz/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithImports/after/baz/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithImports/after/baz/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithImports/after/baz/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceAndTargetWithImports/after/baz/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithFqNames/after/foo/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithFqNames/after/foo/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithFqNames/after/foo/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithFqNames/after/foo/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithImports/after/foo/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithImports/after/foo/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithImports/after/foo/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentSourceWithImports/after/foo/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTarget/after/bar/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTarget/after/bar/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTarget/after/bar/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTarget/after/bar/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTargetWithFqNames/after/bar/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTargetWithFqNames/after/bar/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTargetWithFqNames/after/bar/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/callsAndCallableRefs/internalUsages/differentTargetWithFqNames/after/bar/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/functionAlreadyInaccessible/after/b/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/functionAlreadyInaccessible/after/b/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/functionAlreadyInaccessible/after/b/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/functionAlreadyInaccessible/after/b/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSource/after/foo/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSource/after/foo/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSource/after/foo/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSource/after/foo/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSourceAndTarget/after/baz/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSourceAndTarget/after/baz/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSourceAndTarget/after/baz/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentSourceAndTarget/after/baz/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentTarget/after/bar/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentTarget/after/bar/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentTarget/after/bar/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/implicitInvokeCalls/differentTarget/after/bar/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/delegateInObject/after/target/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/delegateInObject/after/target/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/delegateInObject/after/target/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/delegateInObject/after/target/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/fakeOverrideInObject/after/target/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/fakeOverrideInObject/after/target/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/fakeOverrideInObject/after/target/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/fakeOverrideInObject/after/target/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/functionAndPropertyWithSameName/after/foo/name.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/functionAndPropertyWithSameName/after/foo/Name.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/functionAndPropertyWithSameName/after/foo/name.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/functionAndPropertyWithSameName/after/foo/Name.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/first/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/first/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/first/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/first/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/mutualDependency.test b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/MutualDependency.test similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/mutualDependency.test rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/MutualDependency.test diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/after/pack2/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/after/pack2/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/after/pack2/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/after/pack2/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/shortenStringTemplateEntry/after/bar/someVal.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/shortenStringTemplateEntry/after/bar/SomeVal.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/shortenStringTemplateEntry/after/bar/someVal.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/shortenStringTemplateEntry/after/bar/SomeVal.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/unaffectedQualifiedReferences/after/target/foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/unaffectedQualifiedReferences/after/target/Foo.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/unaffectedQualifiedReferences/after/target/foo.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/unaffectedQualifiedReferences/after/target/Foo.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackageUsedInJava/after/newPackage/foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackageUsedInJava/after/newPackage/Foo.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackageUsedInJava/after/newPackage/foo.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackageUsedInJava/after/newPackage/Foo.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveOnlyFunctionToPackageUsedInJava/after/newPackage/foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveOnlyFunctionToPackageUsedInJava/after/newPackage/Foo.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveOnlyFunctionToPackageUsedInJava/after/newPackage/foo.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveOnlyFunctionToPackageUsedInJava/after/newPackage/Foo.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/Test.kt diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/propertyAlreadyInaccessible/after/b/test.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/propertyAlreadyInaccessible/after/b/Test.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/propertyAlreadyInaccessible/after/b/test.kt rename to idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/propertyAlreadyInaccessible/after/b/Test.kt diff --git a/idea/testData/refactoring/moveMultiModule/moveToUnrelatedModuleConflict/after/B/src/target/val1.kt b/idea/testData/refactoring/moveMultiModule/moveToUnrelatedModuleConflict/after/B/src/target/Val1.kt similarity index 100% rename from idea/testData/refactoring/moveMultiModule/moveToUnrelatedModuleConflict/after/B/src/target/val1.kt rename to idea/testData/refactoring/moveMultiModule/moveToUnrelatedModuleConflict/after/B/src/target/Val1.kt diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java index 87fc8bab4c3..71f14b003f9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java @@ -581,7 +581,7 @@ public class MoveTestGenerated extends AbstractMoveTest { @TestMetadata("kotlin/moveTopLevelDeclarations/misc/mutualDependency/mutualDependency.test") public void testKotlin_moveTopLevelDeclarations_misc_mutualDependency_MutualDependency() throws Exception { - runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/mutualDependency/mutualDependency.test"); + runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/MutualDependency/mutualDependency.test"); } @TestMetadata("kotlin/moveTopLevelDeclarations/misc/nonCodeUsagesWithQuotedName/nonCodeUsageWithQuotedName.test")