KT-2752: refactor generation of FQN in JS. Move backend-independent code to generic code in frontend.

This commit is contained in:
Alexey Andreev
2016-05-25 12:57:31 +03:00
parent ed55923bb0
commit f70b50b6e2
71 changed files with 512 additions and 618 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
package foo
// CHECK_CONTAINS_NO_CALLS: multiplyInline
// CHECK_NOT_CALLED: runNoinline
// CHECK_CONTAINS_NO_CALLS: multiplyInline_0
// CHECK_NOT_CALLED: runNoinline_0
internal inline fun multiply(a: Int, b: Int) = a * b
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: test
// CHECK_CONTAINS_NO_CALLS: test_0
// A copy of stdlib run function.
// Copied to not to depend on run implementation.
@@ -1,6 +1,6 @@
package foo
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiply function=multiply$f
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiply_0 function=multiply_0$f
internal class A(val a: Int)
+1 -1
View File
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: squareMultipliedByTwo
// CHECK_CONTAINS_NO_CALLS: squareMultipliedByTwo_0
internal inline fun inline1(a: Int): Int {
return a
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: squareMultipliedByTwo
// CHECK_CONTAINS_NO_CALLS: squareMultipliedByTwo_0
internal inline fun inline1(a: Int): Int {
return a
@@ -1,7 +1,7 @@
package foo
// CHECK_CONTAINS_NO_CALLS: identity
// CHECK_CONTAINS_NO_CALLS: sumNoInline
// CHECK_CONTAINS_NO_CALLS: identity_0
// CHECK_CONTAINS_NO_CALLS: sumNoInline_0
internal inline fun sum(a: Int, b: Int = 0): Int {
return a + b
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: doNothingNoInline
// CHECK_CONTAINS_NO_CALLS: doNothingNoInline_0
internal inline fun <T> doNothing1(a: T): T {
return a
@@ -1,7 +1,7 @@
package foo
// CHECK_CONTAINS_NO_CALLS: doNothingInt
// CHECK_CONTAINS_NO_CALLS: doNothingStr
// CHECK_CONTAINS_NO_CALLS: doNothingInt_0
// CHECK_CONTAINS_NO_CALLS: doNothingStr_0
internal inline fun <T> doNothing(a: T): T {
return a
+1 -1
View File
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: multiplyNoInline
// CHECK_CONTAINS_NO_CALLS: multiplyNoInline_0
internal inline fun multiply(a: Int, b: Int): Int {
return a * b
+3 -3
View File
@@ -1,8 +1,8 @@
package foo
// CHECK_CONTAINS_NO_CALLS: doNothing1
// CHECK_CONTAINS_NO_CALLS: doNothing2
// CHECK_CONTAINS_NO_CALLS: doNothing3
// CHECK_CONTAINS_NO_CALLS: doNothing1_0
// CHECK_CONTAINS_NO_CALLS: doNothing2_0
// CHECK_CONTAINS_NO_CALLS: doNothing3_0
internal class Inline {
public inline fun <T> identity1 (x: T): T {
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: sumEven
// CHECK_CONTAINS_NO_CALLS: sumEven_0
internal inline fun filteredReduce(a: Array<Int>, predicate: (Int) -> Boolean, reduceFun: (Int, Int) -> Int): Int {
var result = 0
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: maxBySquare
// CHECK_CONTAINS_NO_CALLS: maxBySquare_0
internal data class Result(var value: Int = 0, var invocationCount: Int = 0)
+1 -1
View File
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: add
// CHECK_CONTAINS_NO_CALLS: add_0
internal data class IntPair(public var fst: Int, public var snd: Int) {
inline public fun getFst(): Int { return fst }
+1 -1
View File
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: factAbsNoInline1
// CHECK_CONTAINS_NO_CALLS: factAbsNoInline1_0
internal class State(value: Int) {
public var value: Int = value
+1 -1
View File
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: test
// CHECK_CONTAINS_NO_CALLS: test_0
internal inline fun sum(x: Int, y: Int): Int = js("x + y")
+1 -1
View File
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: test
// CHECK_CONTAINS_NO_CALLS: test_0
internal inline fun sum(x: Int, y: Int): Int = js("var a = x; a + y")
+3 -3
View File
@@ -1,8 +1,8 @@
package foo
// CHECK_CALLED_IN_SCOPE: scope=multiplyBy2 function=multiplyBy2$f
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiplyBy2 function=multiplyBy2$f_0
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiplyBy2 function=run
// CHECK_CALLED_IN_SCOPE: scope=multiplyBy2_0 function=multiplyBy2_0$f
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiplyBy2_0 function=multiplyBy2_0$f_0
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiplyBy2_0 function=run
internal inline fun <T> runLambdaInLambda(noinline inner: (T) -> T, outer: ((T) -> T, T) -> T, arg: T): T {
return outer(inner, arg)
@@ -1,7 +1,7 @@
package foo
// CHECK_CONTAINS_NO_CALLS: capturedInLambda
// CHECK_CONTAINS_NO_CALLS: declaredInLambda
// CHECK_CONTAINS_NO_CALLS: capturedInLambda_0
// CHECK_CONTAINS_NO_CALLS: declaredInLambda_0
internal data class State(var count: Int = 0)
@@ -1,7 +1,7 @@
package foo
// CHECK_CONTAINS_NO_CALLS: localWithCapture
// CHECK_CONTAINS_NO_CALLS: localWithoutCapture
// CHECK_CONTAINS_NO_CALLS: localWithCapture_0
// CHECK_CONTAINS_NO_CALLS: localWithoutCapture_0
internal inline fun repeatAction(times: Int, action: () -> Unit) {
for (i in 1..times) {
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: add
// CHECK_CONTAINS_NO_CALLS: add_0
internal data class State(var count: Int = 0)
@@ -1,7 +1,7 @@
package foo
// CHECK_CONTAINS_NO_CALLS: localWithCapture
// CHECK_CONTAINS_NO_CALLS: localWithoutCapture
// CHECK_CONTAINS_NO_CALLS: localWithCapture_0
// CHECK_CONTAINS_NO_CALLS: localWithoutCapture_0
internal inline fun repeatAction(times: Int, action: () -> Unit) {
for (i in 1..times) {
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: add
// CHECK_CONTAINS_NO_CALLS: add_0
internal inline fun run(action: () -> Int): Int {
return action()
@@ -1,14 +1,14 @@
package foo
// CHECK_CONTAINS_NO_CALLS: test1
// CHECK_CONTAINS_NO_CALLS: test2
// CHECK_CONTAINS_NO_CALLS: test3
// CHECK_CONTAINS_NO_CALLS: test1_0
// CHECK_CONTAINS_NO_CALLS: test2_0
// CHECK_CONTAINS_NO_CALLS: test3_0
// CHECK_CONTAINS_NO_CALLS: test4_buocd8$
// CHECK_CONTAINS_NO_CALLS: test5
// CHECK_CONTAINS_NO_CALLS: test5_0
// CHECK_HAS_INLINE_METADATA: apply_hiyix$
// CHECK_HAS_INLINE_METADATA: applyL_hiyix$
// CHECK_HAS_INLINE_METADATA: applyL_0
// CHECK_HAS_INLINE_METADATA: applyM_hiyix$
// CHECK_HAS_NO_INLINE_METADATA: applyN
// CHECK_HAS_NO_INLINE_METADATA: applyN_0
// CHECK_HAS_NO_INLINE_METADATA: applyO_hiyix$
inline
+2 -2
View File
@@ -1,7 +1,7 @@
package foo
// CHECK_CALLED_IN_SCOPE: scope=multiplyBy2 function=multiplyBy2$f
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiplyBy2 function=run
// CHECK_CALLED_IN_SCOPE: scope=multiplyBy2_0 function=multiplyBy2_0$f
// CHECK_NOT_CALLED_IN_SCOPE: scope=multiplyBy2_0 function=run
internal inline fun <T> run(noinline func: (T) -> T, arg: T): T {
return func(arg)
+1 -1
View File
@@ -1,6 +1,6 @@
package foo
// CHECK_CONTAINS_NO_CALLS: sum
// CHECK_CONTAINS_NO_CALLS: sum_0
inline fun <T : Any, R> T.doLet(f: (T) -> R): R = f(this)
+3 -3
View File
@@ -1,9 +1,9 @@
package foo
// CHECK_CONTAINS_NO_CALLS: test1
// CHECK_CONTAINS_NO_CALLS: test2
// CHECK_CONTAINS_NO_CALLS: test3 except=slice
// CHECK_CONTAINS_NO_CALLS: test1_0
// CHECK_CONTAINS_NO_CALLS: test2_0
// CHECK_CONTAINS_NO_CALLS: test3_0 except=slice
internal inline fun concat(vararg strings: String): String {
var result = ""