Skip property accessors for constants
- Inline protected constants from Java at use sites - Do not create accessors for private constants in Kotlin #KT-11734 In Progress
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
// LANGUAGE_VERSION: 1.0
|
||||
// FILE: Foo.kt
|
||||
|
||||
private const val OUTER_PRIVATE = 20
|
||||
|
||||
class Foo {
|
||||
companion object {
|
||||
private const val LOCAL_PRIVATE = 20
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
LOCAL_PRIVATE
|
||||
OUTER_PRIVATE
|
||||
}
|
||||
}
|
||||
|
||||
// 2 INVOKESTATIC
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// FILE: Foo.kt
|
||||
|
||||
private const val OUTER_PRIVATE = 20
|
||||
|
||||
class Foo {
|
||||
companion object {
|
||||
private const val LOCAL_PRIVATE = 20
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
LOCAL_PRIVATE
|
||||
OUTER_PRIVATE
|
||||
}
|
||||
}
|
||||
|
||||
// 0 INVOKESTATIC
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// FILE: first/Foo.java
|
||||
|
||||
package first;
|
||||
|
||||
public class Foo {
|
||||
protected static final int FOO = 42;
|
||||
}
|
||||
|
||||
// FILE: bar.kt
|
||||
|
||||
package second
|
||||
|
||||
import first.Foo
|
||||
|
||||
class Bar : Foo() {
|
||||
fun bar() = FOO
|
||||
}
|
||||
|
||||
// @second/BarKt.class
|
||||
// 0 INVOKESTATIC
|
||||
// 0 GETSTATIC
|
||||
// 1 BIPUSH 42
|
||||
@@ -0,0 +1,23 @@
|
||||
// LANGUAGE_VERSION: 1.0
|
||||
// FILE: first/Foo.java
|
||||
|
||||
package first;
|
||||
|
||||
public class Foo {
|
||||
protected static final int FOO = 42;
|
||||
}
|
||||
|
||||
// FILE: bar.kt
|
||||
|
||||
package second
|
||||
|
||||
import first.Foo
|
||||
|
||||
class Bar : Foo() {
|
||||
fun bar() = FOO
|
||||
}
|
||||
|
||||
// @second/BarKt.class
|
||||
// 1 INVOKESTATIC
|
||||
// 0 GETSTATIC
|
||||
// 1 BIPUSH 42
|
||||
Reference in New Issue
Block a user