Change part class naming scheme

update tests depending on part class naming
This commit is contained in:
Dmitry Petrov
2015-07-24 15:09:16 +03:00
committed by Michael Bogdanov
parent 801d10229b
commit a47eaa2cb5
59 changed files with 166 additions and 120 deletions
@@ -45,8 +45,12 @@ public class PackagePartClassUtils {
} }
@NotNull @NotNull
private static String replaceSpecialSymbols(@NotNull String str) { private static String getSanitizedIdentifier(@NotNull String str) {
return str.replace('.', '_'); str = str.replaceAll("[^\\p{L}\\p{Digit}]", "_");
if (!Character.isJavaIdentifierStart(str.charAt(0))) {
str = "_" + str;
}
return str;
} }
@NotNull @NotNull
@@ -65,20 +69,10 @@ public class PackagePartClassUtils {
if ('a' <= c && c <= 'z') { if ('a' <= c && c <= 'z') {
fileName = Character.toUpperCase(fileName.charAt(0)) + fileName.substring(1); fileName = Character.toUpperCase(fileName.charAt(0)) + fileName.substring(1);
} }
fileName += "Kt";
} }
if (jetFile != null) { return facadeFqName.parent().child(Name.identifier(getSanitizedIdentifier(fileName)));
for (PsiElement child : jetFile.getDeclarations()) {
if (child instanceof JetClassOrObject) {
if (fileName.equalsIgnoreCase(((JetClassOrObject) child).getName())) {
fileName += "_";
break;
}
}
}
}
return facadeFqName.parent().child(Name.identifier(replaceSpecialSymbols(fileName)));
} }
@NotNull @NotNull
+2 -2
View File
@@ -8,6 +8,6 @@ fun foo1() {
} }
} }
// METHOD : _DefaultPackage*$foo1$1.invoke(I)V // METHOD : ItInLambdaKt$foo1$1.invoke(I)V
// VARIABLE : NAME=this TYPE=L_DefaultPackage*$foo1$1; INDEX=0 // VARIABLE : NAME=this TYPE=LItInLambdaKt$foo1$1; INDEX=0
// VARIABLE : NAME=it TYPE=I INDEX=1 // VARIABLE : NAME=it TYPE=I INDEX=1
@@ -6,6 +6,6 @@ fun foo() {
} }
} }
// METHOD : _DefaultPackage*$foo$1$1.invoke(I)V // METHOD : ItInReturnedLambdaKt$foo$1$1.invoke(I)V
// VARIABLE : NAME=this TYPE=L_DefaultPackage*$foo$1$1; INDEX=0 // VARIABLE : NAME=this TYPE=LItInReturnedLambdaKt$foo$1$1; INDEX=0
// VARIABLE : NAME=it TYPE=I INDEX=1 // VARIABLE : NAME=it TYPE=I INDEX=1
+2 -2
View File
@@ -4,5 +4,5 @@ fun foo() {
} }
} }
// METHOD : _DefaultPackage*$foo$a$1.invoke()V // METHOD : LambdaAsVarKt$foo$a$1.invoke()V
// VARIABLE : NAME=this TYPE=L_DefaultPackage*$foo$a$1; INDEX=0 // VARIABLE : NAME=this TYPE=LLambdaAsVarKt$foo$a$1; INDEX=0
+2 -2
View File
@@ -3,5 +3,5 @@ fun foo() {
} }
} }
// METHOD : _DefaultPackage*$foo$1.invoke()V // METHOD : LocalFunKt$foo$1.invoke()V
// VARIABLE : NAME=this TYPE=L_DefaultPackage*$foo$1; INDEX=0 // VARIABLE : NAME=this TYPE=LLocalFunKt$foo$1; INDEX=0
+4 -10
View File
@@ -1,13 +1,7 @@
package test package test
class ClassAndPartClash { class ClassAndPartClash
class ClassAndPartClash_
class ClassAndPartClashKt
} fun z () {}
class ClassAndPartClash_ {
}
fun z () {
}
+3 -3
View File
@@ -1,7 +1,7 @@
compiler/testData/cli/jvm/classAndPartClash.kt:1:1: error: duplicate JVM class name 'test/ClassAndPartClash_' generated from: package-fragment test, ClassAndPartClash_ compiler/testData/cli/jvm/classAndPartClash.kt:1:1: error: duplicate JVM class name 'test/ClassAndPartClashKt' generated from: package-fragment test, ClassAndPartClashKt
package test package test
^ ^
compiler/testData/cli/jvm/classAndPartClash.kt:7:1: error: duplicate JVM class name 'test/ClassAndPartClash_' generated from: package-fragment test, ClassAndPartClash_ compiler/testData/cli/jvm/classAndPartClash.kt:5:1: error: duplicate JVM class name 'test/ClassAndPartClashKt' generated from: package-fragment test, ClassAndPartClashKt
class ClassAndPartClash_ { class ClassAndPartClashKt
^ ^
COMPILATION_ERROR COMPILATION_ERROR
+3
View File
@@ -0,0 +1,3 @@
$TESTDATA_DIR$/sanitized-name.clash.kt
-d
$TEMP_DIR$
+5
View File
@@ -0,0 +1,5 @@
class SanitizedNameClash
class Sanitized_Name_Clash
class Sanitized_name_clashKt
fun foo() {}
+7
View File
@@ -0,0 +1,7 @@
compiler/testData/cli/jvm/sanitized-name.clash.kt:1:1: error: duplicate JVM class name 'Sanitized_name_clashKt' generated from: package-fragment , Sanitized_name_clashKt
class SanitizedNameClash
^
compiler/testData/cli/jvm/sanitized-name.clash.kt:3:1: error: duplicate JVM class name 'Sanitized_name_clashKt' generated from: package-fragment , Sanitized_name_clashKt
class Sanitized_name_clashKt
^
COMPILATION_ERROR
@@ -23,9 +23,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 lambda.1.kt //+ 1 lambda.1.kt
//_DefaultPackage //Lambda_1Kt
//+ 2 lambda.2.kt //+ 2 lambda.2.kt
//builders/BuildersPackage //builders/Lambda_2Kt
//*L //*L
//1#1,46:1 //1#1,46:1
//4#2:47 //4#2:47
@@ -37,9 +37,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 lambda.2.kt //+ 1 lambda.2.kt
//builders/BuildersPackage$lambda_2$HASH$call$1 //builders/Lambda_2Kt$call$1
//+ 2 lambda.1.kt //+ 2 lambda.1.kt
//_DefaultPackage$lambda_1$HASH //Lambda_1Kt
//*L //*L
//1#1,18:1 //1#1,18:1
//8#2:19 //8#2:19
@@ -12,7 +12,7 @@ inline fun call(inlineOptions(InlineOption.ONLY_LOCAL_RETURN) init: () -> Unit)
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 lambda.2.kt //+ 1 lambda.2.kt
//builders/BuildersPackage$lambda_2$HASH$call$1 //builders/Lambda_2Kt$call$1
//*L //*L
//1#1,18:1 //1#1,18:1
//*E //*E
@@ -25,9 +25,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 lambdaOnCallSite.1.kt //+ 1 lambdaOnCallSite.1.kt
//_DefaultPackage //LambdaOnCallSite_1Kt
//+ 2 lambdaOnCallSite.2.kt //+ 2 lambdaOnCallSite.2.kt
//builders/BuildersPackage //builders/LambdaOnCallSite_2Kt
//*L //*L
//1#1,34:1 //1#1,34:1
//4#2:35 //4#2:35
@@ -25,9 +25,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 lambdaOnInlineCallSite.1.kt //+ 1 lambdaOnInlineCallSite.1.kt
//_DefaultPackage //LambdaOnInlineCallSite_1Kt
//+ 2 lambdaOnInlineCallSite.2.kt //+ 2 lambdaOnInlineCallSite.2.kt
//builders/BuildersPackage //builders/LambdaOnInlineCallSite_2Kt
//*L //*L
//1#1,56:1 //1#1,56:1
//4#2:57 //4#2:57
@@ -39,7 +39,7 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 lambdaOnInlineCallSite.1.kt //+ 1 lambdaOnInlineCallSite.1.kt
//_DefaultPackage$lambdaOnInlineCallSite_1$HASH$test$1$1 //LambdaOnInlineCallSite_1Kt$test$1$1
//*L //*L
//1#1,56:1 //1#1,56:1
//*E //*E
@@ -50,7 +50,7 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 lambdaOnInlineCallSite.1.kt //+ 1 lambdaOnInlineCallSite.1.kt
//_DefaultPackage$lambdaOnInlineCallSite_1$HASH$test$1$1 //LambdaOnInlineCallSite_1Kt$test$1$1
//*L //*L
//1#1,56:1 //1#1,56:1
//*E //*E
@@ -22,9 +22,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 object.1.kt //+ 1 object.1.kt
//_DefaultPackage //Object_1Kt
//+ 2 object.2.kt //+ 2 object.2.kt
//builders/BuildersPackage //builders/Object_2Kt
//*L //*L
//1#1,45:1 //1#1,45:1
//4#2,5:46 //4#2,5:46
@@ -36,9 +36,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 object.2.kt //+ 1 object.2.kt
//builders/BuildersPackage$object_2$HASH$call$1 //builders/Object_2Kt$call$1
//+ 2 object.1.kt //+ 2 object.1.kt
//_DefaultPackage$object_1$HASH //Object_1Kt
//*L //*L
//1#1,21:1 //1#1,21:1
//8#2:22 //8#2:22
@@ -15,7 +15,7 @@ inline fun call(inlineOptions(InlineOption.ONLY_LOCAL_RETURN) init: () -> Unit)
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 object.2.kt //+ 1 object.2.kt
//builders/BuildersPackage$object_2$HASH$call$1 //builders/Object_2Kt$call$1
//*L //*L
//1#1,21:1 //1#1,21:1
//*E //*E
@@ -27,9 +27,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 objectOnCallSite.1.kt //+ 1 objectOnCallSite.1.kt
//_DefaultPackage //ObjectOnCallSite_1Kt
//+ 2 objectOnCallSite.2.kt //+ 2 objectOnCallSite.2.kt
//builders/BuildersPackage //builders/ObjectOnCallSite_2Kt
//*L //*L
//1#1,36:1 //1#1,36:1
//4#2:37 //4#2:37
@@ -27,9 +27,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 objectOnInlineCallSite.1.kt //+ 1 objectOnInlineCallSite.1.kt
//_DefaultPackage //ObjectOnInlineCallSite_1Kt
//+ 2 objectOnInlineCallSite.2.kt //+ 2 objectOnInlineCallSite.2.kt
//builders/BuildersPackage //builders/ObjectOnInlineCallSite_2Kt
//*L //*L
//1#1,58:1 //1#1,58:1
//4#2:59 //4#2:59
@@ -41,7 +41,7 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 objectOnInlineCallSite.1.kt //+ 1 objectOnInlineCallSite.1.kt
//_DefaultPackage$objectOnInlineCallSite_1$HASH$test$1$1 //ObjectOnInlineCallSite_1Kt$test$1$1
//*L //*L
//1#1,58:1 //1#1,58:1
//*E //*E
@@ -52,7 +52,7 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 objectOnInlineCallSite.1.kt //+ 1 objectOnInlineCallSite.1.kt
//_DefaultPackage$objectOnInlineCallSite_1$HASH$test$1$1 //ObjectOnInlineCallSite_1Kt$test$1$1
//*L //*L
//1#1,58:1 //1#1,58:1
//*E //*E
+2 -2
View File
@@ -15,9 +15,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 assertion.1.kt //+ 1 assertion.1.kt
//_DefaultPackage //Assertion_1Kt
//+ 2 assertion.2.kt //+ 2 assertion.2.kt
//test/TestPackage //test/Assertion_2Kt
//*L //*L
//1#1,25:1 //1#1,25:1
//15#2,7:26 //15#2,7:26
+2 -2
View File
@@ -20,7 +20,7 @@ public inline fun massert(value: Boolean, message: Any = "Assertion failed") {
} }
} }
//TODO SHOUDL BE ABSENT //TODO SHOULD BE ABSENT
//SMAP //SMAP
//assertion.2.kt //assertion.2.kt
@@ -28,7 +28,7 @@ public inline fun massert(value: Boolean, message: Any = "Assertion failed") {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 assertion.2.kt //+ 1 assertion.2.kt
//test/TestPackage //test/Assertion_2Kt
//*L //*L
//1#1,34:1 //1#1,34:1
//*E //*E
+1 -1
View File
@@ -16,7 +16,7 @@ inline fun test(p: () -> String): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 oneFile.1.kt //+ 1 oneFile.1.kt
//_DefaultPackage //OneFile_1Kt
//*L //*L
//1#1,22:1 //1#1,22:1
//*E //*E
@@ -12,9 +12,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 inlineComponent.1.kt //+ 1 inlineComponent.1.kt
//_DefaultPackage //InlineComponent_1Kt
//+ 2 inlineComponent.2.kt //+ 2 inlineComponent.2.kt
//zzz/ZzzPackage //zzz/InlineComponent_2Kt
//*L //*L
//1#1,21:1 //1#1,21:1
//5#2,3:22 //5#2,3:22
@@ -15,9 +15,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 inlineIterator.1.kt //+ 1 inlineIterator.1.kt
//_DefaultPackage //InlineIterator_1Kt
//+ 2 inlineIterator.2.kt //+ 2 inlineIterator.2.kt
//zzz/ZzzPackage //zzz/InlineIterator_2Kt
//*L //*L
//1#1,24:1 //1#1,24:1
//5#2:25 //5#2:25
+2 -2
View File
@@ -26,9 +26,9 @@ fun box(): String {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 smap.1.kt //+ 1 smap.1.kt
//_DefaultPackage //Smap_1Kt
//+ 2 smap.2.kt //+ 2 smap.2.kt
//builders/BuildersPackage //builders/Smap_2Kt
//*L //*L
//1#1,38:1 //1#1,38:1
//16#2:39 //16#2:39
+1 -1
View File
@@ -22,7 +22,7 @@ inline fun html(init: () -> Unit) {
//*S Kotlin //*S Kotlin
//*F //*F
//+ 1 smap.2.kt //+ 1 smap.2.kt
//builders/BuildersPackage //builders/Smap_2Kt
//*L //*L
//1#1,28:1 //1#1,28:1
//*E //*E
@@ -12,8 +12,8 @@ fun box(): String {
return "Fail: very small stack trace, should at least have current function and JUnit reflective calls: ${Arrays.toString(st)}" return "Fail: very small stack trace, should at least have current function and JUnit reflective calls: ${Arrays.toString(st)}"
} }
val top = st[0] val top = st[0]
if (!(top.getClassName().startsWith("_DefaultPackage") && top.getMethodName() == "box")) { if (!(top.getClassName() == "PlatformTypeAssertionStackTraceKt" && top.getMethodName() == "box")) {
return "Fail: top stack trace element should be box() from default package, but was $top" return "Fail: top stack trace element should be PlatformTypeAssertionStackTraceKt.box() from default package, but was $top"
} }
return "OK" return "OK"
} }
@@ -9,7 +9,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod"
val enclosingClass = classInLambda.javaClass.getEnclosingClass()!!.getName() val enclosingClass = classInLambda.javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.endsWith("\$box\$classInLambda\$1")) return "enclosing class: $enclosingClass" if (enclosingClass != "ClassInLambdaKt\$box\$classInLambda\$1") return "enclosing class: $enclosingClass"
val declaringClass = classInLambda.javaClass.getDeclaringClass() val declaringClass = classInLambda.javaClass.getDeclaringClass()
if (declaringClass != null) return "class has a declaring class" if (declaringClass != null) return "class has a declaring class"
@@ -7,7 +7,7 @@ fun box(): String {
if (enclosingMethod != null) return "method: $enclosingMethod" if (enclosingMethod != null) return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage") || !enclosingClass.contains("functionExpressionInProperty")) return "enclosing class: $enclosingClass" if (enclosingClass != "FunctionExpressionInPropertyKt") return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass() val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -6,7 +6,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "box") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "box") return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage") || !enclosingClass.contains("lambdaInFunction")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInFunctionKt") return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass() val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -8,7 +8,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.contains("\$box\$l\$1")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInLambdaKt\$box\$l\$1") return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass() val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -12,10 +12,10 @@ fun box(): String {
val javaClass = l.a.javaClass val javaClass = l.a.javaClass
val enclosingMethod = javaClass.getEnclosingConstructor()!!.getName() val enclosingMethod = javaClass.getEnclosingConstructor()!!.getName()
if (!enclosingMethod.startsWith("_DefaultPackage\$") || !enclosingMethod.endsWith("\$box\$L")) return "ctor: $enclosingMethod" if (enclosingMethod != "LambdaInLocalClassConstructorKt\$box\$L") return "ctor: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.endsWith("\$box\$L")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInLocalClassConstructorKt\$box\$L") return "enclosing class: $enclosingClass"
if (enclosingMethod != enclosingClass) return "$enclosingClass != $enclosingMethod" if (enclosingMethod != enclosingClass) return "$enclosingClass != $enclosingMethod"
@@ -7,10 +7,10 @@ fun box(): String {
val javaClass = l.a.javaClass val javaClass = l.a.javaClass
val enclosingMethod = javaClass.getEnclosingConstructor()!!.getName() val enclosingMethod = javaClass.getEnclosingConstructor()!!.getName()
if (!enclosingMethod.startsWith("_DefaultPackage\$") || !enclosingMethod.endsWith("\$box\$L")) return "ctor: $enclosingMethod" if (enclosingMethod != "LambdaInLocalClassSuperCallKt\$box\$L") return "ctor: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.endsWith("\$box\$L")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInLocalClassSuperCallKt\$box\$L") return "enclosing class: $enclosingClass"
if (enclosingMethod != enclosingClass) return "$enclosingClass != $enclosingMethod" if (enclosingMethod != enclosingClass) return "$enclosingClass != $enclosingMethod"
@@ -8,7 +8,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.contains("\$box$1")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInLocalFunctionKt\$box$1") return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass() val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -10,7 +10,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "foo") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "foo") return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.contains("\$box\$C")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInMemberFunctionInLocalClassKt\$box\$C") return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass() val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -13,10 +13,10 @@ fun box(): String {
val javaClass = l.a.javaClass val javaClass = l.a.javaClass
val enclosingMethod = javaClass.getEnclosingConstructor()!!.getName() val enclosingMethod = javaClass.getEnclosingConstructor()!!.getName()
if (!enclosingMethod.startsWith("_DefaultPackage\$") || !enclosingMethod.endsWith("\$box\$l\$1")) return "ctor: $enclosingMethod" if (enclosingMethod != "LambdaInObjectExpressionKt\$box\$l\$1") return "ctor: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.endsWith("\$box\$l\$1")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInObjectExpressionKt\$box\$l\$1") return "enclosing class: $enclosingClass"
if (enclosingMethod != enclosingClass) return "$enclosingClass != $enclosingMethod" if (enclosingMethod != enclosingClass) return "$enclosingClass != $enclosingMethod"
@@ -11,7 +11,7 @@ fun box(): String {
if (enclosingMethod != "box") return "method: $enclosingMethod" if (enclosingMethod != "box") return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || enclosingClass != l.javaClass.getEnclosingClass()!!.getName()) if (enclosingClass != "LambdaInObjectLiteralSuperCallKt" || enclosingClass != l.javaClass.getEnclosingClass()!!.getName())
return "enclosing class: $enclosingClass" return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass() val declaringClass = javaClass.getDeclaringClass()
@@ -2,7 +2,7 @@ val l: Any = {}
fun box(): String { fun box(): String {
val enclosingClass = l.javaClass.getEnclosingClass()!!.getName() val enclosingClass = l.javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage") || !enclosingClass.contains("lambdaInPackage")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInPackageKt") return "enclosing class: $enclosingClass"
val enclosingConstructor = l.javaClass.getEnclosingConstructor() val enclosingConstructor = l.javaClass.getEnclosingConstructor()
if (enclosingConstructor != null) return "enclosing constructor found: $enclosingConstructor" if (enclosingConstructor != null) return "enclosing constructor found: $enclosingConstructor"
@@ -7,7 +7,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "getL") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "getL") return "method: $enclosingMethod"
val enclosingClass = l.javaClass.getEnclosingClass()!!.getName() val enclosingClass = l.javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage") || !enclosingClass.contains("lambdaInPropertyGetter")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInPropertyGetterKt") return "enclosing class: $enclosingClass"
val declaringClass = l.javaClass.getDeclaringClass() val declaringClass = l.javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -13,7 +13,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "setL") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "setL") return "method: $enclosingMethod"
val enclosingClass = l.javaClass.getEnclosingClass()!!.getName() val enclosingClass = l.javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage") || !enclosingClass.contains("lambdaInPropertySetter")) return "enclosing class: $enclosingClass" if (enclosingClass != "LambdaInPropertySetterKt") return "enclosing class: $enclosingClass"
val declaringClass = l.javaClass.getDeclaringClass() val declaringClass = l.javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -7,7 +7,7 @@ fun box(): String {
if (enclosingMethod != null) return "method: $enclosingMethod" if (enclosingMethod != null) return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName() val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage") || !enclosingClass.contains("namedFunctionExpressionInProperty")) return "enclosing class: $enclosingClass" if (enclosingClass != "NamedFunctionExpressionInPropertyKt") return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass() val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass" if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
@@ -8,7 +8,7 @@ fun box(): String {
if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod" if (enclosingMethod?.getName() != "invoke") return "method: $enclosingMethod"
val enclosingClass = objectInLambda.javaClass.getEnclosingClass()!!.getName() val enclosingClass = objectInLambda.javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.endsWith("\$box\$objectInLambda\$1")) return "enclosing class: $enclosingClass" if (enclosingClass != "ObjectInLambdaKt\$box\$objectInLambda\$1") return "enclosing class: $enclosingClass"
val declaringClass = objectInLambda.javaClass.getDeclaringClass() val declaringClass = objectInLambda.javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous object has a declaring class" if (declaringClass != null) return "anonymous object has a declaring class"
@@ -17,6 +17,6 @@ fun test() {
(::local)() (::local)()
} }
// 3 GETSTATIC _DefaultPackage\$.+\$test\$1\.INSTANCE\$ // 3 GETSTATIC ConstClosureOptimizationKt\$test\$1\.INSTANCE\$
// 1 GETSTATIC _DefaultPackage\$.+\$test\$2\.INSTANCE\$ // 1 GETSTATIC ConstClosureOptimizationKt\$test\$2\.INSTANCE\$
// 1 GETSTATIC _DefaultPackage\$.+\$test\$3\.INSTANCE\$ // 1 GETSTATIC ConstClosureOptimizationKt\$test\$3\.INSTANCE\$
@@ -5,4 +5,4 @@ fun simpleFoo(s: Int = 111) {
} }
// 1 BIPUSH 111 // 1 BIPUSH 111
// 1 INVOKESTATIC foo/FooPackage.+\.simpleFoo\$default \(II\)V // 1 INVOKESTATIC foo/DefaultDelegationKt.simpleFoo\$default \(II\)V
@@ -4,4 +4,4 @@ fun foo() {
// assert function will be inlined, and we assure that there are no calls via package part, but is call via package facade in inlined code // assert function will be inlined, and we assure that there are no calls via package part, but is call via package facade in inlined code
// 0 INVOKESTATIC kotlin\/KotlinPackage.+\.getASSERTIONS_ENABLED \(\)Z // 0 INVOKESTATIC kotlin\/KotlinPackage.+\.getASSERTIONS_ENABLED \(\)Z
// 1 INVOKESTATIC kotlin\/KotlinPackage\.getASSERTIONS_ENABLED \(\)Z // 1 INVOKESTATIC kotlin\/AssertionsJVMKt\.getASSERTIONS_ENABLED \(\)Z
@@ -1,4 +1,4 @@
fun foo(a: Int = 1) {} fun foo(a: Int = 1) {}
// 0 _DefaultPackage.foo // 0 _DefaultPackage.foo
// 3 INVOKESTATIC _DefaultPackage.+ // 3 INVOKESTATIC TopLevelFunWithDefaultArgsKt\.foo
@@ -0,0 +1,8 @@
fun Int.test1() {}
fun test2() {
1.test1()
}
// 2 INVOKESTATIC A1Kt.test1 \(I\)V
// 1 INVOKESTATIC A1Kt.test2 \(\)V
@@ -0,0 +1,6 @@
package a
fun test1() {}
// 2 INVOKESTATIC a/A1Kt.test1 \(\)V
// 1 INVOKESTATIC b/A2Kt.test2 \(\)V
@@ -0,0 +1,8 @@
fun test1() {}
fun test2() {
test1()
}
// 2 INVOKESTATIC A1Kt.test1 \(\)V
// 1 INVOKESTATIC A1Kt.test2 \(\)V
@@ -0,0 +1,6 @@
package a
val prop = 1
// 2 INVOKESTATIC a/A1Kt.getProp \(\)I
// 1 GETSTATIC a/A1Kt.prop \: I
@@ -0,0 +1,9 @@
package a
val prop: Int = 0
get() {
return $prop + 1
}
// 2 INVOKESTATIC a/A1Kt.getProp \(\)I
// 1 GETSTATIC a/A1Kt.prop \: I
+2 -2
View File
@@ -1,4 +1,4 @@
local final class `_DefaultPackage$anonymousObject$*$main$1` : java.lang.Runnable local final class `AnonymousObjectKt$main$1` : java.lang.Runnable
public constructor `_DefaultPackage$anonymousObject$*$main$1`() public constructor `AnonymousObjectKt$main$1`()
public open override /*1*/ fun run(): kotlin.Unit public open override /*1*/ fun run(): kotlin.Unit
+4 -4
View File
@@ -1,7 +1,7 @@
local final inner class Deepest local final inner class Deepest
public constructor Deepest() public constructor Deepest()
internal final fun deep(): `_DefaultPackage$deepInnerChain$*$main$Local$Inner$prop$1$foo$1$DeepLocal` internal final fun deep(): `DeepInnerChainKt$main$Local$Inner$prop$1$foo$1$DeepLocal`
internal final fun deepest(): `_DefaultPackage$deepInnerChain$*$main$Local$Inner$prop$1$foo$1$DeepLocal`.Deepest? internal final fun deepest(): `DeepInnerChainKt$main$Local$Inner$prop$1$foo$1$DeepLocal`.Deepest?
internal final fun inner(): `_DefaultPackage$deepInnerChain$*$main$Local`.Inner internal final fun inner(): `DeepInnerChainKt$main$Local`.Inner
internal final fun local(): `_DefaultPackage$deepInnerChain$*$main$Local` internal final fun local(): `DeepInnerChainKt$main$Local`
+2 -2
View File
@@ -1,5 +1,5 @@
local final inner class Inner local final inner class Inner
public constructor Inner() public constructor Inner()
internal final fun inner(/*0*/ i: `_DefaultPackage$innerOfLocal$*$main$Local`.Inner): kotlin.Unit internal final fun inner(/*0*/ i: `InnerOfLocalKt$main$Local`.Inner): kotlin.Unit
internal final fun local(/*0*/ l: `_DefaultPackage$innerOfLocal$*$main$Local`): kotlin.Unit internal final fun local(/*0*/ l: `InnerOfLocalKt$main$Local`): kotlin.Unit
@@ -1,7 +1,7 @@
local open class `_DefaultPackage$localClassInSignature$*$main$Local` local open class `LocalClassInSignatureKt$main$Local`
public constructor `_DefaultPackage$localClassInSignature$*$main$Local`() public constructor `LocalClassInSignatureKt$main$Local`()
internal final val returnType: `_DefaultPackage$localClassInSignature$*$main$Local` internal final val returnType: `LocalClassInSignatureKt$main$Local`
internal final fun </*0*/ T : `_DefaultPackage$localClassInSignature$*$main$Local`, /*1*/ U : T> generic(/*0*/ t: T): U internal final fun </*0*/ T : `LocalClassInSignatureKt$main$Local`, /*1*/ U : T> generic(/*0*/ t: T): U
internal final fun param(/*0*/ l: `_DefaultPackage$localClassInSignature$*$main$Local`): kotlin.Unit internal final fun param(/*0*/ l: `LocalClassInSignatureKt$main$Local`): kotlin.Unit
internal final fun `_DefaultPackage$localClassInSignature$*$main$Local`.receiver(): `_DefaultPackage$localClassInSignature$*$main$Local` internal final fun `LocalClassInSignatureKt$main$Local`.receiver(): `LocalClassInSignatureKt$main$Local`
@@ -1,3 +1,3 @@
local final class `_DefaultPackage$simpleInTopLevelFunction$*$main$Local` local final class `SimpleInTopLevelFunctionKt$main$Local`
public constructor `_DefaultPackage$simpleInTopLevelFunction$*$main$Local`() public constructor `SimpleInTopLevelFunctionKt$main$Local`()
@@ -1,10 +1,10 @@
public val list: List<String> = throw Exception() public val list: List<String> = throw Exception()
public val mutList: MutableList<String> = throw Exception() public val mutList: MutableList<String> = throw Exception()
// field: _DefaultPackage::list // field: OutInFieldKt::list
// jvm signature: Ljava/util/List; // jvm signature: Ljava/util/List;
// generic signature: Ljava/util/List<+Ljava/lang/String;>; // generic signature: Ljava/util/List<+Ljava/lang/String;>;
// field: _DefaultPackage::mutList // field: OutInFieldKt::mutList
// jvm signature: Ljava/util/List; // jvm signature: Ljava/util/List;
// generic signature: Ljava/util/List<Ljava/lang/String;>; // generic signature: Ljava/util/List<Ljava/lang/String;>;
@@ -145,6 +145,12 @@ public class KotlincExecutableTestGenerated extends AbstractKotlincExecutableTes
doJvmTest(fileName); doJvmTest(fileName);
} }
@TestMetadata("sanitized-name.clash.args")
public void testSanitized_name_clash() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/jvm/sanitized-name.clash.args");
doJvmTest(fileName);
}
@TestMetadata("signatureClash.args") @TestMetadata("signatureClash.args")
public void testSignatureClash() throws Exception { public void testSignatureClash() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/jvm/signatureClash.args"); String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/jvm/signatureClash.args");
@@ -76,18 +76,18 @@ public class OuterClassGenTest extends CodegenTestCase {
} }
public void testObjectLiteralInPackageClass() throws Exception { public void testObjectLiteralInPackageClass() throws Exception {
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage$outerClassInfo$", null, null); OuterClassInfo expectedInfo = new OuterClassInfo("foo/OuterClassInfo", null, null);
doCustomTest("foo/FooPackage\\$.+\\$packageObjectLiteral\\$1", expectedInfo, "outerClassInfo"); doCustomTest("foo/OuterClassInfoKt\\$packageObjectLiteral\\$1", expectedInfo, "outerClassInfo");
} }
public void testLocalClassInTopLevelFunction() throws Exception { public void testLocalClassInTopLevelFunction() throws Exception {
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage$outerClassInfo$", "packageMethod", "(Lfoo/Foo;)V"); OuterClassInfo expectedInfo = new OuterClassInfo("foo/OuterClassInfo", "packageMethod", "(Lfoo/Foo;)V");
doCustomTest("foo/FooPackage\\$.+\\$packageMethod\\$PackageLocalClass", expectedInfo, "outerClassInfo"); doCustomTest("foo/OuterClassInfoKt\\$packageMethod\\$PackageLocalClass", expectedInfo, "outerClassInfo");
} }
public void testLocalObjectInTopLevelFunction() throws Exception { public void testLocalObjectInTopLevelFunction() throws Exception {
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage$outerClassInfo$", "packageMethod", "(Lfoo/Foo;)V"); OuterClassInfo expectedInfo = new OuterClassInfo("foo/OuterClassInfo", "packageMethod", "(Lfoo/Foo;)V");
doCustomTest("foo/FooPackage\\$.+\\$packageMethod\\$PackageLocalObject", expectedInfo, "outerClassInfo"); doCustomTest("foo/OuterClassInfoKt\\$packageMethod\\$PackageLocalObject", expectedInfo, "outerClassInfo");
} }
public void testLocalObjectInInlineFunction() throws Exception { public void testLocalObjectInInlineFunction() throws Exception {
@@ -4557,7 +4557,7 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
@RunWith(JUnit3RunnerWithInners.class) @RunWith(JUnit3RunnerWithInners.class)
public static class OptimizeImports extends AbstractQuickFixTest { public static class OptimizeImports extends AbstractQuickFixTest {
public void testAllFilesPresentInOptimizeImports() throws Exception { public void testAllFilesPresentInOptimizeImports() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/optimizeImports"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true); JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/optimizeImports"), Pattern.compile("^([a-zA-Z0-9]+)\\.kt$"), true);
} }
@TestMetadata("fileRuntime.kt") @TestMetadata("fileRuntime.kt")