[JVM] Implement new inlined variable naming format
^KT-65478 fixed
This commit is contained in:
committed by
Alexander Udalov
parent
9ea775cbed
commit
407448d8e3
@@ -16,6 +16,8 @@ fun bar() {
|
||||
|
||||
// 0 valueOf
|
||||
// 0 Value\s\(\)
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 1 LOCALVARIABLE x I (.*) 6
|
||||
// 1 LOCALVARIABLE y I (.*) 5
|
||||
// 1 LOCALVARIABLE x J (.*) 7
|
||||
@@ -33,3 +35,38 @@ fun bar() {
|
||||
// 1 LOCALVARIABLE x Z (.*) 6
|
||||
// 1 LOCALVARIABLE y Z (.*) 5
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 LOCALVARIABLE x I (.*) 6
|
||||
// 1 LOCALVARIABLE y I (.*) 5
|
||||
// 1 LOCALVARIABLE x J (.*) 7
|
||||
// 1 LOCALVARIABLE y J (.*) 5
|
||||
// 1 LOCALVARIABLE x F (.*) 6
|
||||
// 1 LOCALVARIABLE y F (.*) 5
|
||||
// 1 LOCALVARIABLE x D (.*) 7
|
||||
// 1 LOCALVARIABLE y D (.*) 5
|
||||
// 1 LOCALVARIABLE x B (.*) 6
|
||||
// 1 LOCALVARIABLE y B (.*) 5
|
||||
// 1 LOCALVARIABLE x S (.*) 6
|
||||
// 1 LOCALVARIABLE y S (.*) 5
|
||||
// 1 LOCALVARIABLE x C (.*) 6
|
||||
// 1 LOCALVARIABLE y C (.*) 5
|
||||
// 1 LOCALVARIABLE x Z (.*) 6
|
||||
// 1 LOCALVARIABLE y Z (.*) 5
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 1 LOCALVARIABLE x\\2 I (.*) 6
|
||||
// 1 LOCALVARIABLE y\\2 I (.*) 5
|
||||
// 1 LOCALVARIABLE x\\4 J (.*) 7
|
||||
// 1 LOCALVARIABLE y\\4 J (.*) 5
|
||||
// 1 LOCALVARIABLE x\\6 F (.*) 6
|
||||
// 1 LOCALVARIABLE y\\6 F (.*) 5
|
||||
// 1 LOCALVARIABLE x\\8 D (.*) 7
|
||||
// 1 LOCALVARIABLE y\\8 D (.*) 5
|
||||
// 1 LOCALVARIABLE x\\10 B (.*) 6
|
||||
// 1 LOCALVARIABLE y\\10 B (.*) 5
|
||||
// 1 LOCALVARIABLE x\\12 S (.*) 6
|
||||
// 1 LOCALVARIABLE y\\12 S (.*) 5
|
||||
// 1 LOCALVARIABLE x\\14 C (.*) 6
|
||||
// 1 LOCALVARIABLE y\\14 C (.*) 5
|
||||
// 1 LOCALVARIABLE x\\16 Z (.*) 6
|
||||
// 1 LOCALVARIABLE y\\16 Z (.*) 5
|
||||
|
||||
Vendored
+11
-1
@@ -5,6 +5,16 @@ suspend inline fun foo(a: A, block: suspend (A) -> String): String = block(a)
|
||||
// FILE: test.kt
|
||||
suspend fun test() = foo(A("O", "K")) { (x_param, y_param) -> x_param + y_param }
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// @TestKt.class:
|
||||
// 1 LOCALVARIABLE x_param Ljava/lang/String;
|
||||
// 1 LOCALVARIABLE y_param Ljava/lang/String;
|
||||
// 1 LOCALVARIABLE y_param Ljava/lang/String;
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// @TestKt.class:
|
||||
// 1 LOCALVARIABLE x_param Ljava/lang/String;
|
||||
// 1 LOCALVARIABLE y_param Ljava/lang/String;
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 1 LOCALVARIABLE x_param\\2 Ljava/lang/String;
|
||||
// 1 LOCALVARIABLE y_param\\2 Ljava/lang/String;
|
||||
|
||||
@@ -22,4 +22,11 @@ class MyBlockingAdapter() {
|
||||
}
|
||||
}
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 1 LOCALVARIABLE \$this\$extensionFun\$iv\$iv LAtomicInt;
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 LOCALVARIABLE \$this\$extensionFun\$iv\$iv LAtomicInt;
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 1 LOCALVARIABLE \$this\$extensionFun\\2 LAtomicInt;
|
||||
|
||||
Vendored
+9
@@ -11,6 +11,15 @@ fun box() : String {
|
||||
// 2 LOCALVARIABLE p Ljava/lang/String;
|
||||
// 2 LOCALVARIABLE x I
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// The $iv suffix should be present in box
|
||||
// 1 LOCALVARIABLE p\$iv Ljava/lang/String;
|
||||
// 1 LOCALVARIABLE x\$iv I
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 LOCALVARIABLE p\$iv Ljava/lang/String;
|
||||
// 1 LOCALVARIABLE x\$iv I
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 1 LOCALVARIABLE p\\1 Ljava/lang/String;
|
||||
// 1 LOCALVARIABLE x\\1 I
|
||||
|
||||
+9
-1
@@ -16,5 +16,13 @@ fun box() : String {
|
||||
// 0 NULL
|
||||
|
||||
//proper variable start label: after assignment
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 1 LOCALVARIABLE p\\1 Ljava/lang/String; L2 L4 0
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 1 LOCALVARIABLE p\$iv Ljava/lang/String; L2 L4 0
|
||||
// 1 LDC "OK"\s*ASTORE 0\s*L2
|
||||
// 1 LDC "OK"\s*ASTORE 0\s*L2
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 LOCALVARIABLE p\$iv Ljava/lang/String; L2 L4 0
|
||||
// 1 LDC "OK"\s*ASTORE 0\s*L2
|
||||
|
||||
@@ -10,6 +10,18 @@ fun box(): String {
|
||||
return inlineFun<OK>()
|
||||
}
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 1 LOCALVARIABLE \$i\$a\$-inlineFun-DefaultLambdaKt\$inlineFun\$1 I
|
||||
// inlineFun, inlineFun$default, inlined inlineFun:
|
||||
// 3 LOCALVARIABLE \$i\$f\$inlineFun
|
||||
// 3 LOCALVARIABLE \$i\$f\$inlineFun
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 LOCALVARIABLE \$i\$a\$-inlineFun-DefaultLambdaKt\$inlineFun\$1 I
|
||||
// inlineFun, inlineFun$default, inlined inlineFun:
|
||||
// 3 LOCALVARIABLE \$i\$f\$inlineFun
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 1 LOCALVARIABLE \$i\$a\$-inlineFun-DefaultLambdaKt\$inlineFun\$1\\2\\30\\0 I
|
||||
// inlineFun, inlineFun$default, inlined inlineFun:
|
||||
// 1 LOCALVARIABLE \$i\$f\$inlineFun\\1
|
||||
// 2 LOCALVARIABLE \$i\$f\$inlineFun I
|
||||
|
||||
+8
@@ -17,6 +17,14 @@ suspend fun ApplicationCall.test(authenticationService: AuthenticationService) {
|
||||
respond(authenticationService.execute(receiveJSON()))
|
||||
}
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 5 ISTORE 3
|
||||
// 1 ISTORE 2
|
||||
// 0 ILOAD 3
|
||||
// 0 ILOAD 2
|
||||
// 1 \$i\$f\$receiveJSON I .* 2
|
||||
// 2 \$i\$f\$respond I .* 3
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// $i$f$respond x1, $i$f$receiveJSON x2: before and after suspension point
|
||||
// 3 ISTORE 5
|
||||
|
||||
+16
-2
@@ -5,10 +5,24 @@ fun test() = run {
|
||||
"OK"
|
||||
}
|
||||
|
||||
// 2 LOCALVARIABLE
|
||||
// JVM_TEMPLATES
|
||||
// 1 LOCALVARIABLE tmp I
|
||||
// 1 LOCALVARIABLE \$i\$a\$-run-NoFakeVariableForInlineOnlyFunWithLambdaKt\$test\$1 I
|
||||
|
||||
// 0 LDC 0
|
||||
// 2 ICONST_0
|
||||
// 2 ISTORE
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 LOCALVARIABLE tmp I
|
||||
// 1 LOCALVARIABLE \$i\$a\$-run-NoFakeVariableForInlineOnlyFunWithLambdaKt\$test\$1 I
|
||||
// 0 LDC 0
|
||||
// 2 ICONST_0
|
||||
// 2 ISTORE
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 2 LOCALVARIABLE
|
||||
// 1 LOCALVARIABLE tmp\\1 I
|
||||
// 1 LOCALVARIABLE \$i\$a\$-run-NoFakeVariableForInlineOnlyFunWithLambdaKt\$test\$1\\1\\3\\0 I
|
||||
// 0 LDC 0
|
||||
// 2 ICONST_0
|
||||
// 2 ISTORE
|
||||
|
||||
@@ -10,7 +10,18 @@ fun test() {
|
||||
foo(0.0f)
|
||||
}
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// two in foo and two in test
|
||||
// 4 ASTORE 2
|
||||
// 1 LOCALVARIABLE t Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 4 ASTORE 2
|
||||
// 1 LOCALVARIABLE t Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 4 ASTORE 2
|
||||
// 1 LOCALVARIABLE t Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\\1 Ljava/lang/Object;
|
||||
|
||||
+12
-1
@@ -10,7 +10,18 @@ fun test() {
|
||||
foo(0.0f)
|
||||
}
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// two in foo and two in test
|
||||
// 4 ASTORE 2
|
||||
// 1 LOCALVARIABLE t Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 4 ASTORE 2
|
||||
// 1 LOCALVARIABLE t Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
|
||||
|
||||
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
|
||||
// 4 ASTORE 2
|
||||
// 1 LOCALVARIABLE t Ljava/lang/Object;
|
||||
// 1 LOCALVARIABLE t\\1 Ljava/lang/Object;
|
||||
|
||||
Reference in New Issue
Block a user