Skip to content

Commit 79dbacb

Browse files
strangepleasuresSpace Team
authored and
Space Team
committed
[SLC] Keep default constructor parameters' values
1 parent bccd7bc commit 79dbacb

11 files changed

+406
-2
lines changed

analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
3030
import org.jetbrains.kotlin.name.JvmNames.TRANSIENT_ANNOTATION_CLASS_ID
3131
import org.jetbrains.kotlin.name.JvmNames.VOLATILE_ANNOTATION_CLASS_ID
3232
import org.jetbrains.kotlin.psi.KtCallableDeclaration
33+
import org.jetbrains.kotlin.psi.KtParameter
3334
import org.jetbrains.kotlin.psi.KtProperty
3435

3536
internal class SymbolLightFieldForProperty private constructor(
@@ -186,8 +187,12 @@ internal class SymbolLightFieldForProperty private constructor(
186187
private val _initializer by lazyPub {
187188
_initializerValue?.createPsiExpression(this) ?: withPropertySymbol { propertySymbol ->
188189
if (propertySymbol !is KtKotlinPropertySymbol) return@withPropertySymbol null
189-
(kotlinOrigin as? KtProperty)?.initializer?.evaluateAsAnnotationValue()
190-
?.let(::toPsiExpression)
190+
val initializerExpression = when (kotlinOrigin) {
191+
is KtProperty -> kotlinOrigin.initializer
192+
is KtParameter -> kotlinOrigin.defaultValue
193+
else -> null
194+
}
195+
initializerExpression?.evaluateAsAnnotationValue()?.let(::toPsiExpression)
191196
}
192197
}
193198

analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesEqualityByPsiForLibraryTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesParentingByPsiForLibraryTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesEqualityByPsiForSourceTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesParentingByPsiForSourceTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
public enum Em /* Em*/ {
2+
FOO,
3+
BAR;
4+
5+
@org.jetbrains.annotations.NotNull()
6+
public static Em valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
7+
8+
@org.jetbrains.annotations.NotNull()
9+
public static Em[] values();// values()
10+
11+
@org.jetbrains.annotations.NotNull()
12+
public static kotlin.enums.EnumEntries<Em> getEntries();// getEntries()
13+
14+
private Em();// .ctor()
15+
}
16+
17+
public final class Foo /* Foo*/ {
18+
@org.jetbrains.annotations.NotNull()
19+
private final Em em = Em.BAR /* initializer type: Em */;
20+
21+
@org.jetbrains.annotations.NotNull()
22+
private final Em[] emarr = {Em.FOO, Em.BAR} /* initializer type: null */;
23+
24+
@org.jetbrains.annotations.NotNull()
25+
private final double[] darr = {7.3} /* initializer type: null */;
26+
27+
@org.jetbrains.annotations.NotNull()
28+
private final int[] iarr = {1, 2, 3} /* initializer type: null */;
29+
30+
@org.jetbrains.annotations.NotNull()
31+
private final java.lang.Class<?> cl;
32+
33+
@org.jetbrains.annotations.NotNull()
34+
private final java.lang.Class<?>[] clarr = {} /* initializer type: null */;
35+
36+
@org.jetbrains.annotations.NotNull()
37+
private final java.lang.String s = "foo" /* initializer type: java.lang.String */;
38+
39+
@org.jetbrains.annotations.NotNull()
40+
private final java.lang.String[] sarr = {"a", "bc"} /* initializer type: null */;
41+
42+
@org.jetbrains.annotations.NotNull()
43+
private final long[] larr = {-1L, 0L, 1L} /* initializer type: null */;
44+
45+
private final boolean z = true /* initializer type: boolean */;
46+
47+
private final byte b = 1 /* initializer type: int */;
48+
49+
private final char c = 'c' /* initializer type: char */;
50+
51+
private final char c2 = '\n' /* initializer type: char */;
52+
53+
private final double d = -1.0 /* initializer type: double */;
54+
55+
private final float f = 1.0f /* initializer type: float */;
56+
57+
private final int i = 10 /* initializer type: int */;
58+
59+
private final long l = -10L /* initializer type: long */;
60+
61+
private final short sh = 10 /* initializer type: int */;
62+
63+
@org.jetbrains.annotations.NotNull()
64+
public final Em getEm();// getEm()
65+
66+
@org.jetbrains.annotations.NotNull()
67+
public final Em[] getEmarr();// getEmarr()
68+
69+
@org.jetbrains.annotations.NotNull()
70+
public final double[] getDarr();// getDarr()
71+
72+
@org.jetbrains.annotations.NotNull()
73+
public final int[] getIarr();// getIarr()
74+
75+
@org.jetbrains.annotations.NotNull()
76+
public final java.lang.Class<?> getCl();// getCl()
77+
78+
@org.jetbrains.annotations.NotNull()
79+
public final java.lang.Class<?>[] getClarr();// getClarr()
80+
81+
@org.jetbrains.annotations.NotNull()
82+
public final java.lang.String getS();// getS()
83+
84+
@org.jetbrains.annotations.NotNull()
85+
public final java.lang.String[] getSarr();// getSarr()
86+
87+
@org.jetbrains.annotations.NotNull()
88+
public final long[] getLarr();// getLarr()
89+
90+
public Foo();// .ctor()
91+
92+
public Foo(boolean, byte, char, char, short, int, long, float, double, @org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() int[], @org.jetbrains.annotations.NotNull() long[], @org.jetbrains.annotations.NotNull() double[], @org.jetbrains.annotations.NotNull() java.lang.String[], @org.jetbrains.annotations.NotNull() java.lang.Class<?>, @org.jetbrains.annotations.NotNull() java.lang.Class<?>[], @org.jetbrains.annotations.NotNull() Em, @org.jetbrains.annotations.NotNull() Em[]);// .ctor(boolean, byte, char, char, short, int, long, float, double, java.lang.String, int[], long[], double[], java.lang.String[], java.lang.Class<?>, java.lang.Class<?>[], Em, Em[])
93+
94+
public final boolean getZ();// getZ()
95+
96+
public final byte getB();// getB()
97+
98+
public final char getC();// getC()
99+
100+
public final char getC2();// getC2()
101+
102+
public final double getD();// getD()
103+
104+
public final float getF();// getF()
105+
106+
public final int getI();// getI()
107+
108+
public final long getL();// getL()
109+
110+
public final short getSh();// getSh()
111+
112+
public final void foo(int);// foo(int)
113+
}
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
public enum Em /* Em*/ {
2+
FOO,
3+
BAR;
4+
5+
@org.jetbrains.annotations.NotNull()
6+
public static Em valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
7+
8+
@org.jetbrains.annotations.NotNull()
9+
public static Em[] values();// values()
10+
11+
private Em();// .ctor()
12+
}
13+
14+
public final class Foo /* Foo*/ {
15+
@org.jetbrains.annotations.NotNull()
16+
private final Em em;
17+
18+
@org.jetbrains.annotations.NotNull()
19+
private final Em[] emarr;
20+
21+
@org.jetbrains.annotations.NotNull()
22+
private final double[] darr;
23+
24+
@org.jetbrains.annotations.NotNull()
25+
private final int[] iarr;
26+
27+
@org.jetbrains.annotations.NotNull()
28+
private final java.lang.Class<?> cl;
29+
30+
@org.jetbrains.annotations.NotNull()
31+
private final java.lang.Class<?>[] clarr;
32+
33+
@org.jetbrains.annotations.NotNull()
34+
private final java.lang.String s;
35+
36+
@org.jetbrains.annotations.NotNull()
37+
private final java.lang.String[] sarr;
38+
39+
@org.jetbrains.annotations.NotNull()
40+
private final long[] larr;
41+
42+
private final boolean z;
43+
44+
private final byte b;
45+
46+
private final char c2;
47+
48+
private final char c;
49+
50+
private final double d;
51+
52+
private final float f;
53+
54+
private final int i;
55+
56+
private final long l;
57+
58+
private final short sh;
59+
60+
@org.jetbrains.annotations.NotNull()
61+
public final Em getEm();// getEm()
62+
63+
@org.jetbrains.annotations.NotNull()
64+
public final Em[] getEmarr();// getEmarr()
65+
66+
@org.jetbrains.annotations.NotNull()
67+
public final double[] getDarr();// getDarr()
68+
69+
@org.jetbrains.annotations.NotNull()
70+
public final int[] getIarr();// getIarr()
71+
72+
@org.jetbrains.annotations.NotNull()
73+
public final java.lang.Class<?> getCl();// getCl()
74+
75+
@org.jetbrains.annotations.NotNull()
76+
public final java.lang.Class<?>[] getClarr();// getClarr()
77+
78+
@org.jetbrains.annotations.NotNull()
79+
public final java.lang.String getS();// getS()
80+
81+
@org.jetbrains.annotations.NotNull()
82+
public final java.lang.String[] getSarr();// getSarr()
83+
84+
@org.jetbrains.annotations.NotNull()
85+
public final long[] getLarr();// getLarr()
86+
87+
public Foo();// .ctor()
88+
89+
public Foo(boolean, byte, char, char, short, int, long, float, double, @org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() int[], @org.jetbrains.annotations.NotNull() long[], @org.jetbrains.annotations.NotNull() double[], @org.jetbrains.annotations.NotNull() java.lang.String[], @org.jetbrains.annotations.NotNull() java.lang.Class<?>, @org.jetbrains.annotations.NotNull() java.lang.Class<?>[], @org.jetbrains.annotations.NotNull() Em, @org.jetbrains.annotations.NotNull() Em[]);// .ctor(boolean, byte, char, char, short, int, long, float, double, java.lang.String, int[], long[], double[], java.lang.String[], java.lang.Class<?>, java.lang.Class<?>[], Em, Em[])
90+
91+
public final boolean getZ();// getZ()
92+
93+
public final byte getB();// getB()
94+
95+
public final char getC();// getC()
96+
97+
public final char getC2();// getC2()
98+
99+
public final double getD();// getD()
100+
101+
public final float getF();// getF()
102+
103+
public final int getI();// getI()
104+
105+
public final long getL();// getL()
106+
107+
public final short getSh();// getSh()
108+
109+
public final void foo(int);// foo(int)
110+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Foo
2+
class Foo(
3+
val z: Boolean = true,
4+
val b: Byte = 1.toByte(),
5+
val c: Char = 'c',
6+
val c2: Char = '\n',
7+
val sh: Short = 10.toShort(),
8+
val i: Int = 10,
9+
val l: Long = -10L,
10+
val f: Float = 1.0f,
11+
val d: Double = -1.0,
12+
val s: String = "foo",
13+
val iarr: IntArray = intArrayOf(1, 2, 3),
14+
val larr: LongArray = longArrayOf(-1L, 0L, 1L),
15+
val darr: DoubleArray = doubleArrayOf(7.3),
16+
val sarr: Array<String> = arrayOf("a", "bc"),
17+
val cl: Class<*> = Foo::class.java,
18+
val clarr: Array<Class<*>> = arrayOf(Foo::class.java),
19+
val em: Em = Em.BAR,
20+
val emarr: Array<Em> = arrayOf(Em.FOO, Em.BAR)
21+
) {
22+
fun foo(a: Int = 5) {}
23+
}
24+
25+
enum class Em {
26+
FOO, BAR
27+
}

0 commit comments

Comments
 (0)