[FIR] Add type parameters to FirQualifierExpression
It is needed for resolving qualifiers with type arguments like `Array<String>::class`
This commit is contained in:
+25
-12
@@ -434,30 +434,43 @@ class ExpressionsConverter(
|
|||||||
val firTypeArguments = mutableListOf<FirTypeProjection>()
|
val firTypeArguments = mutableListOf<FirTypeProjection>()
|
||||||
val valueArguments = mutableListOf<LighterASTNode>()
|
val valueArguments = mutableListOf<LighterASTNode>()
|
||||||
var additionalArgument: FirExpression? = null
|
var additionalArgument: FirExpression? = null
|
||||||
|
var hasArguments = false
|
||||||
callSuffix.forEachChildren {
|
callSuffix.forEachChildren {
|
||||||
when (it.tokenType) {
|
when (it.tokenType) {
|
||||||
REFERENCE_EXPRESSION -> name = it.asText
|
REFERENCE_EXPRESSION -> name = it.asText
|
||||||
TYPE_ARGUMENT_LIST -> firTypeArguments += declarationsConverter.convertTypeArguments(it)
|
TYPE_ARGUMENT_LIST -> firTypeArguments += declarationsConverter.convertTypeArguments(it)
|
||||||
VALUE_ARGUMENT_LIST, LAMBDA_ARGUMENT -> valueArguments += it
|
VALUE_ARGUMENT_LIST, LAMBDA_ARGUMENT -> {
|
||||||
|
hasArguments = true
|
||||||
|
valueArguments += it
|
||||||
|
}
|
||||||
else -> if (it.tokenType != TokenType.ERROR_ELEMENT) additionalArgument =
|
else -> if (it.tokenType != TokenType.ERROR_ELEMENT) additionalArgument =
|
||||||
getAsFirExpression(it, "Incorrect invoke receiver")
|
getAsFirExpression(it, "Incorrect invoke receiver")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return FirFunctionCallImpl(null).apply {
|
val (calleeReference, explicitReceiver) = when {
|
||||||
this.calleeReference = when {
|
name != null -> FirSimpleNamedReference(null, name.nameAsSafeName(), null) to null
|
||||||
name != null -> FirSimpleNamedReference(null, name.nameAsSafeName(), null)
|
additionalArgument != null -> {
|
||||||
additionalArgument != null -> {
|
FirSimpleNamedReference(null, OperatorNameConventions.INVOKE, null) to additionalArgument!!
|
||||||
explicitReceiver = additionalArgument!!
|
|
||||||
FirSimpleNamedReference(null, OperatorNameConventions.INVOKE, null)
|
|
||||||
}
|
|
||||||
else -> FirErrorNamedReferenceImpl(null, FirSimpleDiagnostic("Call has no callee", DiagnosticKind.Syntax))
|
|
||||||
}
|
}
|
||||||
|
else -> FirErrorNamedReferenceImpl(null, FirSimpleDiagnostic("Call has no callee", DiagnosticKind.Syntax)) to null
|
||||||
|
}
|
||||||
|
|
||||||
context.firFunctionCalls += this
|
return if (hasArguments) {
|
||||||
this.extractArgumentsFrom(valueArguments.flatMap { convertValueArguments(it) }, stubMode)
|
FirFunctionCallImpl(null).apply {
|
||||||
|
this.calleeReference = calleeReference
|
||||||
|
|
||||||
|
context.firFunctionCalls += this
|
||||||
|
this.extractArgumentsFrom(valueArguments.flatMap { convertValueArguments(it) }, stubMode)
|
||||||
|
context.firFunctionCalls.removeLast()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
FirQualifiedAccessExpressionImpl(null).apply {
|
||||||
|
this.calleeReference = calleeReference
|
||||||
|
}
|
||||||
|
}.apply {
|
||||||
|
this.explicitReceiver = explicitReceiver
|
||||||
typeArguments += firTypeArguments
|
typeArguments += firTypeArguments
|
||||||
context.firFunctionCalls.removeLast()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1234,28 +1234,39 @@ class RawFirBuilder(session: FirSession, val stubMode: Boolean) : BaseFirBuilder
|
|||||||
override fun visitCallExpression(expression: KtCallExpression, data: Unit): FirElement {
|
override fun visitCallExpression(expression: KtCallExpression, data: Unit): FirElement {
|
||||||
val calleeExpression = expression.calleeExpression
|
val calleeExpression = expression.calleeExpression
|
||||||
val source = expression.toFirSourceElement()
|
val source = expression.toFirSourceElement()
|
||||||
return FirFunctionCallImpl(source).apply {
|
|
||||||
val calleeReference = when (calleeExpression) {
|
val (calleeReference, explicitReceiver) = when (calleeExpression) {
|
||||||
is KtSimpleNameExpression -> FirSimpleNamedReference(
|
is KtSimpleNameExpression -> FirSimpleNamedReference(
|
||||||
calleeExpression.toFirSourceElement(), calleeExpression.getReferencedNameAsName(), null
|
calleeExpression.toFirSourceElement(), calleeExpression.getReferencedNameAsName(), null
|
||||||
)
|
) to null
|
||||||
null -> FirErrorNamedReferenceImpl(
|
null -> FirErrorNamedReferenceImpl(
|
||||||
null, FirSimpleDiagnostic("Call has no callee", DiagnosticKind.Syntax)
|
null, FirSimpleDiagnostic("Call has no callee", DiagnosticKind.Syntax)
|
||||||
)
|
) to null
|
||||||
else -> {
|
else -> {
|
||||||
explicitReceiver = calleeExpression.toFirExpression("Incorrect invoke receiver")
|
FirSimpleNamedReference(
|
||||||
FirSimpleNamedReference(
|
source, OperatorNameConventions.INVOKE, null
|
||||||
source, OperatorNameConventions.INVOKE, null
|
) to calleeExpression.toFirExpression("Incorrect invoke receiver")
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.calleeReference = calleeReference
|
}
|
||||||
context.firFunctionCalls += this
|
|
||||||
expression.extractArgumentsTo(this)
|
val result = if (expression.valueArgumentList == null && expression.lambdaArguments.isEmpty()) {
|
||||||
|
FirQualifiedAccessExpressionImpl(source).apply {
|
||||||
|
this.calleeReference = calleeReference
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
FirFunctionCallImpl(source).apply {
|
||||||
|
this.calleeReference = calleeReference
|
||||||
|
context.firFunctionCalls += this
|
||||||
|
expression.extractArgumentsTo(this)
|
||||||
|
context.firFunctionCalls.removeLast()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.apply {
|
||||||
|
this.explicitReceiver = explicitReceiver
|
||||||
for (typeArgument in expression.typeArguments) {
|
for (typeArgument in expression.typeArguments) {
|
||||||
typeArguments += typeArgument.convert<FirTypeProjection>()
|
typeArguments += typeArgument.convert<FirTypeProjection>()
|
||||||
}
|
}
|
||||||
context.firFunctionCalls.removeLast()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
fun test() {
|
||||||
|
Array<String>::class
|
||||||
|
}
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
FILE: qualifierWithTypeArguments.kt
|
||||||
|
public? final? fun test(): R|kotlin/Unit| {
|
||||||
|
<getClass>(Array#<String>)
|
||||||
|
}
|
||||||
Generated
+5
@@ -248,6 +248,11 @@ public class RawFirBuilderTestCaseGenerated extends AbstractRawFirBuilderTestCas
|
|||||||
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/nullability.kt");
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/nullability.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("qualifierWithTypeArguments.kt")
|
||||||
|
public void testQualifierWithTypeArguments() throws Exception {
|
||||||
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simpleReturns.kt")
|
@TestMetadata("simpleReturns.kt")
|
||||||
public void testSimpleReturns() throws Exception {
|
public void testSimpleReturns() throws Exception {
|
||||||
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.kt");
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.kt");
|
||||||
|
|||||||
+120
-122
@@ -29,7 +29,7 @@ digraph complex_kt {
|
|||||||
15 [label="Access variable R|<local>/url|"];
|
15 [label="Access variable R|<local>/url|"];
|
||||||
16 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|)"];
|
16 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|)"];
|
||||||
17 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: fromJson> {
|
17 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: fromJson> {
|
||||||
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(<Inapplicable(PARAMETER_MAPPING_ERROR): [kotlin/Array.Array]>#<R|class error: Symbol not found, for `PluginDTO`|>()).<Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]>#)
|
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|)
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
18 [label="Exit block"];
|
18 [label="Exit block"];
|
||||||
@@ -144,12 +144,11 @@ digraph complex_kt {
|
|||||||
53 [label="Access variable <Unresolved name: it>#"];
|
53 [label="Access variable <Unresolved name: it>#"];
|
||||||
54 [label="Access variable <Unresolved name: inputStream>#"];
|
54 [label="Access variable <Unresolved name: inputStream>#"];
|
||||||
55 [label="Function call: <Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#()"];
|
55 [label="Function call: <Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#()"];
|
||||||
56 [label="Function call: <Inapplicable(PARAMETER_MAPPING_ERROR): [kotlin/Array.Array]>#<R|class error: Symbol not found, for `PluginDTO`|>()"];
|
56 [label="Access variable R|kotlin/jvm/java|"];
|
||||||
57 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]>#"];
|
57 [label="Access variable R|kotlin/jvm/java|"];
|
||||||
58 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]>#"];
|
58 [label="Access variable R|kotlin/jvm/java|"];
|
||||||
59 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]>#"];
|
59 [label="Function call: <Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|)"];
|
||||||
60 [label="Function call: <Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(<Inapplicable(PARAMETER_MAPPING_ERROR): [kotlin/Array.Array]>#<R|class error: Symbol not found, for `PluginDTO`|>()).<Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]>#)"];
|
60 [label="Exit function anonymousFunction" style="filled" fillcolor=red];
|
||||||
61 [label="Exit function anonymousFunction" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
@@ -162,97 +161,96 @@ digraph complex_kt {
|
|||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
|
||||||
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
62 [label="Enter function close" style="filled" fillcolor=red];
|
61 [label="Enter function close" style="filled" fillcolor=red];
|
||||||
63 [label="Exit function close" style="filled" fillcolor=red];
|
62 [label="Exit function close" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
|
||||||
62 -> {63};
|
61 -> {62};
|
||||||
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=red
|
color=red
|
||||||
64 [label="Enter function closeFinally" style="filled" fillcolor=red];
|
63 [label="Enter function closeFinally" style="filled" fillcolor=red];
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
65 [label="Enter when"];
|
64 [label="Enter when"];
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
66 [label="Enter when branch condition "];
|
65 [label="Enter when branch condition "];
|
||||||
67 [label="Access variable this@R|/closeFinally|"];
|
66 [label="Access variable this@R|/closeFinally|"];
|
||||||
68 [label="Const: Null(null)"];
|
67 [label="Const: Null(null)"];
|
||||||
69 [label="Operator =="];
|
68 [label="Operator =="];
|
||||||
70 [label="Exit when branch condition"];
|
69 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
71 [label="Enter when branch condition "];
|
70 [label="Enter when branch condition "];
|
||||||
72 [label="Access variable R|<local>/cause|"];
|
71 [label="Access variable R|<local>/cause|"];
|
||||||
73 [label="Const: Null(null)"];
|
72 [label="Const: Null(null)"];
|
||||||
74 [label="Operator =="];
|
73 [label="Operator =="];
|
||||||
75 [label="Exit when branch condition"];
|
74 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
76 [label="Enter when branch condition else"];
|
75 [label="Enter when branch condition else"];
|
||||||
77 [label="Exit when branch condition"];
|
76 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
78 [label="Enter when branch result"];
|
77 [label="Enter when branch result"];
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
79 [label="Enter block"];
|
78 [label="Enter block"];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
80 [label="Try expression enter"];
|
79 [label="Try expression enter"];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
81 [label="Try main block enter"];
|
80 [label="Try main block enter"];
|
||||||
subgraph cluster_19 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
82 [label="Enter block"];
|
81 [label="Enter block"];
|
||||||
83 [label="Function call: this@R|/AutoCloseable|.R|/AutoCloseable.close|()"];
|
82 [label="Function call: this@R|/AutoCloseable|.R|/AutoCloseable.close|()"];
|
||||||
84 [label="Exit block"];
|
83 [label="Exit block"];
|
||||||
}
|
}
|
||||||
85 [label="Try main block exit"];
|
84 [label="Try main block exit"];
|
||||||
}
|
}
|
||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
86 [label="Catch enter"];
|
85 [label="Catch enter"];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
87 [label="Enter block"];
|
86 [label="Enter block"];
|
||||||
88 [label="Access variable R|<local>/cause|"];
|
87 [label="Access variable R|<local>/cause|"];
|
||||||
89 [label="Access variable R|<local>/closeException|"];
|
88 [label="Access variable R|<local>/closeException|"];
|
||||||
90 [label="Function call: R|<local>/cause|.R|kotlin/addSuppressed|(R|<local>/closeException|)"];
|
89 [label="Function call: R|<local>/cause|.R|kotlin/addSuppressed|(R|<local>/closeException|)"];
|
||||||
91 [label="Exit block"];
|
90 [label="Exit block"];
|
||||||
}
|
}
|
||||||
92 [label="Catch exit"];
|
91 [label="Catch exit"];
|
||||||
}
|
}
|
||||||
93 [label="Try expression exit"];
|
92 [label="Try expression exit"];
|
||||||
}
|
}
|
||||||
94 [label="Exit block"];
|
93 [label="Exit block"];
|
||||||
}
|
}
|
||||||
95 [label="Exit when branch result"];
|
94 [label="Exit when branch result"];
|
||||||
96 [label="Enter when branch result"];
|
95 [label="Enter when branch result"];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
97 [label="Enter block"];
|
96 [label="Enter block"];
|
||||||
98 [label="Function call: this@R|/AutoCloseable|.R|/AutoCloseable.close|()"];
|
97 [label="Function call: this@R|/AutoCloseable|.R|/AutoCloseable.close|()"];
|
||||||
99 [label="Exit block"];
|
98 [label="Exit block"];
|
||||||
}
|
}
|
||||||
100 [label="Exit when branch result"];
|
99 [label="Exit when branch result"];
|
||||||
101 [label="Enter when branch result"];
|
100 [label="Enter when branch result"];
|
||||||
subgraph cluster_23 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
102 [label="Enter block"];
|
101 [label="Enter block"];
|
||||||
103 [label="Exit block"];
|
102 [label="Exit block"];
|
||||||
}
|
}
|
||||||
104 [label="Exit when branch result"];
|
103 [label="Exit when branch result"];
|
||||||
105 [label="Exit when"];
|
104 [label="Exit when"];
|
||||||
}
|
}
|
||||||
106 [label="Jump: ^closeFinally when () {
|
105 [label="Jump: ^closeFinally when () {
|
||||||
==(this@R|/closeFinally|, Null(null)) -> {
|
==(this@R|/closeFinally|, Null(null)) -> {
|
||||||
}
|
}
|
||||||
==(R|<local>/cause|, Null(null)) -> {
|
==(R|<local>/cause|, Null(null)) -> {
|
||||||
@@ -269,33 +267,34 @@ digraph complex_kt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
107 [label="Stub" style="filled" fillcolor=gray];
|
106 [label="Stub" style="filled" fillcolor=gray];
|
||||||
108 [label="Exit function closeFinally" style="filled" fillcolor=red];
|
107 [label="Exit function closeFinally" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {100 70};
|
||||||
70 -> {101 71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {95 75};
|
||||||
75 -> {96 76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {107 85 81};
|
||||||
81 -> {108 86 82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {92};
|
||||||
85 -> {93};
|
85 -> {107 86};
|
||||||
86 -> {108 87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
@@ -303,84 +302,84 @@ digraph complex_kt {
|
|||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95};
|
94 -> {104};
|
||||||
95 -> {105};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {104};
|
||||||
100 -> {105};
|
100 -> {101};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {107};
|
||||||
106 -> {108};
|
105 -> {106} [style=dotted];
|
||||||
106 -> {107} [style=dotted];
|
106 -> {107} [style=dotted];
|
||||||
107 -> {108} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_24 {
|
subgraph cluster_24 {
|
||||||
color=red
|
color=red
|
||||||
109 [label="Enter function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
108 [label="Enter function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||||
110 [label="Access variable this@R|/firstIsInstanceOrNull|"];
|
109 [label="Access variable this@R|/firstIsInstanceOrNull|"];
|
||||||
111 [label="Variable declaration: lval <range>: R|kotlin/sequences/Sequence<*>|"];
|
110 [label="Variable declaration: lval <range>: R|kotlin/sequences/Sequence<*>|"];
|
||||||
112 [label="Access variable R|<local>/<range>|"];
|
111 [label="Access variable R|<local>/<range>|"];
|
||||||
113 [label="Function call: R|<local>/<range>|.R|FakeOverride<kotlin/sequences/Sequence.iterator: R|kotlin/collections/Iterator<kotlin/Any?>|>|()"];
|
112 [label="Function call: R|<local>/<range>|.R|FakeOverride<kotlin/sequences/Sequence.iterator: R|kotlin/collections/Iterator<kotlin/Any?>|>|()"];
|
||||||
114 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Any?>|"];
|
113 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Any?>|"];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
115 [label="Enter while loop"];
|
114 [label="Enter while loop"];
|
||||||
subgraph cluster_26 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
116 [label="Enter loop condition"];
|
115 [label="Enter loop condition"];
|
||||||
117 [label="Access variable R|<local>/<iterator>|"];
|
116 [label="Access variable R|<local>/<iterator>|"];
|
||||||
118 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/Iterator.hasNext|()"];
|
117 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/Iterator.hasNext|()"];
|
||||||
119 [label="Exit loop condition"];
|
118 [label="Exit loop condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_27 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
120 [label="Enter loop block"];
|
119 [label="Enter loop block"];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
121 [label="Enter block"];
|
120 [label="Enter block"];
|
||||||
122 [label="Access variable R|<local>/<iterator>|"];
|
121 [label="Access variable R|<local>/<iterator>|"];
|
||||||
123 [label="Function call: R|<local>/<iterator>|.R|FakeOverride<kotlin/collections/Iterator.next: R|kotlin/Any?|>|()"];
|
122 [label="Function call: R|<local>/<iterator>|.R|FakeOverride<kotlin/collections/Iterator.next: R|kotlin/Any?|>|()"];
|
||||||
124 [label="Variable declaration: lval element: R|kotlin/Any?|"];
|
123 [label="Variable declaration: lval element: R|kotlin/Any?|"];
|
||||||
subgraph cluster_29 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
125 [label="Enter when"];
|
124 [label="Enter when"];
|
||||||
subgraph cluster_30 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
126 [label="Enter when branch condition "];
|
125 [label="Enter when branch condition "];
|
||||||
127 [label="Access variable R|<local>/element|"];
|
126 [label="Access variable R|<local>/element|"];
|
||||||
128 [label="Type operator: element is T"];
|
127 [label="Type operator: element is T"];
|
||||||
129 [label="Exit when branch condition"];
|
128 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
130 [label="Synthetic else branch"];
|
129 [label="Synthetic else branch"];
|
||||||
131 [label="Enter when branch result"];
|
130 [label="Enter when branch result"];
|
||||||
subgraph cluster_31 {
|
subgraph cluster_31 {
|
||||||
color=blue
|
color=blue
|
||||||
132 [label="Enter block"];
|
131 [label="Enter block"];
|
||||||
133 [label="Access variable R|<local>/element|"];
|
132 [label="Access variable R|<local>/element|"];
|
||||||
134 [label="Jump: ^firstIsInstanceOrNull R|<local>/element|"];
|
133 [label="Jump: ^firstIsInstanceOrNull R|<local>/element|"];
|
||||||
135 [label="Stub" style="filled" fillcolor=gray];
|
134 [label="Stub" style="filled" fillcolor=gray];
|
||||||
136 [label="Exit block" style="filled" fillcolor=gray];
|
135 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
137 [label="Exit when branch result" style="filled" fillcolor=gray];
|
136 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
138 [label="Exit when"];
|
137 [label="Exit when"];
|
||||||
}
|
}
|
||||||
139 [label="Exit block"];
|
138 [label="Exit block"];
|
||||||
}
|
}
|
||||||
140 [label="Exit loop block"];
|
139 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
141 [label="Exit whileloop"];
|
140 [label="Exit whileloop"];
|
||||||
}
|
}
|
||||||
142 [label="Const: Null(null)"];
|
141 [label="Const: Null(null)"];
|
||||||
143 [label="Jump: ^firstIsInstanceOrNull Null(null)"];
|
142 [label="Jump: ^firstIsInstanceOrNull Null(null)"];
|
||||||
144 [label="Stub" style="filled" fillcolor=gray];
|
143 [label="Stub" style="filled" fillcolor=gray];
|
||||||
145 [label="Exit function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
144 [label="Exit function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
@@ -390,8 +389,8 @@ digraph complex_kt {
|
|||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {140 119};
|
||||||
119 -> {141 120};
|
119 -> {120};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
@@ -400,24 +399,23 @@ digraph complex_kt {
|
|||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {130 129};
|
||||||
129 -> {131 130};
|
129 -> {137};
|
||||||
130 -> {138};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {144};
|
||||||
134 -> {145};
|
133 -> {134} [style=dotted];
|
||||||
134 -> {135} [style=dotted];
|
134 -> {135} [style=dotted];
|
||||||
135 -> {136} [style=dotted];
|
135 -> {136} [style=dotted];
|
||||||
136 -> {137} [style=dotted];
|
136 -> {137} [style=dotted];
|
||||||
137 -> {138} [style=dotted];
|
137 -> {138};
|
||||||
138 -> {139};
|
138 -> {139};
|
||||||
139 -> {140};
|
139 -> {115};
|
||||||
140 -> {116};
|
140 -> {141};
|
||||||
141 -> {142};
|
141 -> {142};
|
||||||
142 -> {143};
|
142 -> {144};
|
||||||
143 -> {145};
|
142 -> {143} [style=dotted];
|
||||||
143 -> {144} [style=dotted];
|
143 -> {144} [style=dotted];
|
||||||
144 -> {145} [style=dotted];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ fun fetchPluginReleaseDate(pluginId: PluginId, version: String, channel: String?
|
|||||||
|
|
||||||
val pluginDTOs: Array<PluginDTO> = try {
|
val pluginDTOs: Array<PluginDTO> = try {
|
||||||
<!UNRESOLVED_REFERENCE!>HttpRequests<!>.<!UNRESOLVED_REFERENCE!>request<!>(url).<!UNRESOLVED_REFERENCE!>connect<!> {
|
<!UNRESOLVED_REFERENCE!>HttpRequests<!>.<!UNRESOLVED_REFERENCE!>request<!>(url).<!UNRESOLVED_REFERENCE!>connect<!> {
|
||||||
<!UNRESOLVED_REFERENCE!>GsonBuilder<!>().<!UNRESOLVED_REFERENCE!>create<!>().<!UNRESOLVED_REFERENCE!>fromJson<!>(<!UNRESOLVED_REFERENCE!>it<!>.<!UNRESOLVED_REFERENCE!>inputStream<!>.<!AMBIGUITY!>reader<!>(), <!INAPPLICABLE_CANDIDATE!>Array<!><PluginDTO>::class.<!INAPPLICABLE_CANDIDATE!>java<!>)
|
<!UNRESOLVED_REFERENCE!>GsonBuilder<!>().<!UNRESOLVED_REFERENCE!>create<!>().<!UNRESOLVED_REFERENCE!>fromJson<!>(<!UNRESOLVED_REFERENCE!>it<!>.<!UNRESOLVED_REFERENCE!>inputStream<!>.<!AMBIGUITY!>reader<!>(), Array<PluginDTO>::class.java)
|
||||||
}
|
}
|
||||||
} catch (ioException: JsonIOException) {
|
} catch (ioException: JsonIOException) {
|
||||||
throw <!UNRESOLVED_REFERENCE!>IOException<!>(ioException)
|
throw <!UNRESOLVED_REFERENCE!>IOException<!>(ioException)
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ FILE: complex.kt
|
|||||||
lval url: R|kotlin/String| = <strcat>(String(https://plugins.jetbrains.com/api/plugins/), R|<local>/pluginId|.<Unresolved name: idString>#.R|kotlin/toString|(), String(/updates?version=), R|<local>/version|.R|kotlin/Any.toString|())
|
lval url: R|kotlin/String| = <strcat>(String(https://plugins.jetbrains.com/api/plugins/), R|<local>/pluginId|.<Unresolved name: idString>#.R|kotlin/toString|(), String(/updates?version=), R|<local>/version|.R|kotlin/Any.toString|())
|
||||||
lval pluginDTOs: R|kotlin/Array<class error: Symbol not found, for `PluginDTO`>| = try {
|
lval pluginDTOs: R|kotlin/Array<class error: Symbol not found, for `PluginDTO`>| = try {
|
||||||
<Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: fromJson> {
|
<Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: fromJson> {
|
||||||
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(<Inapplicable(PARAMETER_MAPPING_ERROR): [kotlin/Array.Array]>#<R|class error: Symbol not found, for `PluginDTO`|>()).<Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]>#)
|
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ val kotlinClass: KClass<String> = String::class
|
|||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
val stringClass = String::class.java
|
val stringClass = String::class.java
|
||||||
val arrayStringClass = <!INAPPLICABLE_CANDIDATE!>Array<!><String>::class.<!INAPPLICABLE_CANDIDATE!>java<!>
|
val arrayStringClass = Array<String>::class.java
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ FILE: reflectionClass.kt
|
|||||||
public get(): R|kotlin/reflect/KClass<kotlin/String>|
|
public get(): R|kotlin/reflect/KClass<kotlin/String>|
|
||||||
public final fun foo(): R|kotlin/Unit| {
|
public final fun foo(): R|kotlin/Unit| {
|
||||||
lval stringClass: R|java/lang/Class<kotlin/String>| = <getClass>(Q|kotlin/String|).R|kotlin/jvm/java|
|
lval stringClass: R|java/lang/Class<kotlin/String>| = <getClass>(Q|kotlin/String|).R|kotlin/jvm/java|
|
||||||
lval arrayStringClass: <ERROR TYPE REF: Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]> = <getClass>(<Inapplicable(PARAMETER_MAPPING_ERROR): [kotlin/Array.Array]>#<R|kotlin/String|>()).<Inapplicable(WRONG_RECEIVER): [kotlin/jvm/java]>#
|
lval arrayStringClass: R|java/lang/Class<kotlin/Array<*>>| = <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,6 +170,14 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun List<FirTypeProjection>.renderTypeArguments() {
|
||||||
|
if (isNotEmpty()) {
|
||||||
|
print("<")
|
||||||
|
renderSeparated()
|
||||||
|
print(">")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration) {
|
override fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration) {
|
||||||
memberDeclaration.annotations.renderAnnotations()
|
memberDeclaration.annotations.renderAnnotations()
|
||||||
if (memberDeclaration !is FirProperty || !memberDeclaration.isLocal) {
|
if (memberDeclaration !is FirProperty || !memberDeclaration.isLocal) {
|
||||||
@@ -926,6 +934,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
|||||||
qualifiedAccessExpression.annotations.renderAnnotations()
|
qualifiedAccessExpression.annotations.renderAnnotations()
|
||||||
visitQualifiedAccess(qualifiedAccessExpression)
|
visitQualifiedAccess(qualifiedAccessExpression)
|
||||||
qualifiedAccessExpression.calleeReference.accept(this)
|
qualifiedAccessExpression.calleeReference.accept(this)
|
||||||
|
qualifiedAccessExpression.typeArguments.renderTypeArguments()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression) {
|
override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression) {
|
||||||
@@ -964,11 +973,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
|||||||
functionCall.annotations.renderAnnotations()
|
functionCall.annotations.renderAnnotations()
|
||||||
visitQualifiedAccess(functionCall)
|
visitQualifiedAccess(functionCall)
|
||||||
functionCall.calleeReference.accept(this)
|
functionCall.calleeReference.accept(this)
|
||||||
if (functionCall.typeArguments.isNotEmpty()) {
|
functionCall.typeArguments.renderTypeArguments()
|
||||||
print("<")
|
|
||||||
functionCall.typeArguments.renderSeparated()
|
|
||||||
print(">")
|
|
||||||
}
|
|
||||||
visitCall(functionCall)
|
visitCall(functionCall)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -19,6 +20,7 @@ abstract class FirArraySetCall : FirPureAbstractElement(), FirQualifiedAccess, F
|
|||||||
abstract override val source: FirSourceElement?
|
abstract override val source: FirSourceElement?
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
@@ -31,6 +33,8 @@ abstract class FirArraySetCall : FirPureAbstractElement(), FirQualifiedAccess, F
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitArraySetCall(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitArraySetCall(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
||||||
|
|||||||
+4
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
@@ -20,6 +21,7 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
|
|||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
@@ -27,6 +29,8 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableReferenceAccess(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableReferenceAccess(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccess
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccess
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccess
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccess
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccess
|
||||||
|
|||||||
@@ -21,24 +21,24 @@ abstract class FirComponentCall : FirFunctionCall() {
|
|||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
abstract override val arguments: List<FirExpression>
|
abstract override val arguments: List<FirExpression>
|
||||||
abstract override val typeArguments: List<FirTypeProjection>
|
|
||||||
abstract override val calleeReference: FirNamedReference
|
abstract override val calleeReference: FirNamedReference
|
||||||
abstract override val explicitReceiver: FirExpression
|
abstract override val explicitReceiver: FirExpression
|
||||||
abstract val componentIndex: Int
|
abstract val componentIndex: Int
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitComponentCall(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitComponentCall(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||||
|
|
||||||
abstract override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
abstract override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||||
|
|
||||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirComponentCall
|
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||||
|
|
||||||
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirComponentCall
|
|
||||||
|
|
||||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirComponentCall
|
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||||
|
|||||||
+4
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
@@ -21,6 +22,7 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() {
|
|||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
@@ -31,6 +33,8 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() {
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitExpressionWithSmartcast(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitExpressionWithSmartcast(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
|
||||||
|
|||||||
@@ -21,15 +21,17 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
|
|||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
abstract override val arguments: List<FirExpression>
|
abstract override val arguments: List<FirExpression>
|
||||||
abstract val typeArguments: List<FirTypeProjection>
|
|
||||||
abstract override val calleeReference: FirNamedReference
|
abstract override val calleeReference: FirNamedReference
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunctionCall(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunctionCall(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||||
@@ -38,7 +40,5 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
|
|||||||
|
|
||||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||||
|
|
||||||
abstract fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
|
||||||
|
|
||||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -18,6 +19,7 @@ interface FirQualifiedAccess : FirQualifiedAccessWithoutCallee, FirResolvable {
|
|||||||
override val source: FirSourceElement?
|
override val source: FirSourceElement?
|
||||||
override val annotations: List<FirAnnotationCall>
|
override val annotations: List<FirAnnotationCall>
|
||||||
override val safe: Boolean
|
override val safe: Boolean
|
||||||
|
override val typeArguments: List<FirTypeProjection>
|
||||||
override val explicitReceiver: FirExpression?
|
override val explicitReceiver: FirExpression?
|
||||||
override val dispatchReceiver: FirExpression
|
override val dispatchReceiver: FirExpression
|
||||||
override val extensionReceiver: FirExpression
|
override val extensionReceiver: FirExpression
|
||||||
@@ -25,6 +27,8 @@ interface FirQualifiedAccess : FirQualifiedAccessWithoutCallee, FirResolvable {
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccess(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccess(this, data)
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
||||||
|
|
||||||
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
||||||
|
|||||||
+4
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
@@ -21,6 +22,7 @@ abstract class FirQualifiedAccessExpression : FirPureAbstractElement(), FirExpre
|
|||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
@@ -28,6 +30,8 @@ abstract class FirQualifiedAccessExpression : FirPureAbstractElement(), FirExpre
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccessExpression(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccessExpression(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
|
||||||
|
|||||||
+4
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.expressions
|
package org.jetbrains.kotlin.fir.expressions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -17,12 +18,15 @@ interface FirQualifiedAccessWithoutCallee : FirStatement {
|
|||||||
override val source: FirSourceElement?
|
override val source: FirSourceElement?
|
||||||
override val annotations: List<FirAnnotationCall>
|
override val annotations: List<FirAnnotationCall>
|
||||||
val safe: Boolean
|
val safe: Boolean
|
||||||
|
val typeArguments: List<FirTypeProjection>
|
||||||
val explicitReceiver: FirExpression?
|
val explicitReceiver: FirExpression?
|
||||||
val dispatchReceiver: FirExpression
|
val dispatchReceiver: FirExpression
|
||||||
val extensionReceiver: FirExpression
|
val extensionReceiver: FirExpression
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccessWithoutCallee(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccessWithoutCallee(this, data)
|
||||||
|
|
||||||
|
fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirQualifiedAccessWithoutCallee
|
||||||
|
|
||||||
fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessWithoutCallee
|
fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessWithoutCallee
|
||||||
|
|
||||||
fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessWithoutCallee
|
fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessWithoutCallee
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -24,6 +25,9 @@ abstract class FirResolvedQualifier : FirPureAbstractElement(), FirExpression {
|
|||||||
abstract val packageFqName: FqName
|
abstract val packageFqName: FqName
|
||||||
abstract val relativeClassFqName: FqName?
|
abstract val relativeClassFqName: FqName?
|
||||||
abstract val classId: ClassId?
|
abstract val classId: ClassId?
|
||||||
|
abstract val typeArguments: List<FirTypeProjection>
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedQualifier(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedQualifier(this, data)
|
||||||
|
|
||||||
|
abstract fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirResolvedQualifier
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirThisReference
|
import org.jetbrains.kotlin.fir.references.FirThisReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
@@ -20,6 +21,7 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
|
|||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
@@ -27,6 +29,8 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitThisReceiverExpression(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitThisReceiverExpression(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirThisReceiverExpression
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirThisReceiverExpression
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirThisReceiverExpression
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirThisReceiverExpression
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirThisReceiverExpression
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -19,6 +20,7 @@ abstract class FirVariableAssignment : FirPureAbstractElement(), FirQualifiedAcc
|
|||||||
abstract override val source: FirSourceElement?
|
abstract override val source: FirSourceElement?
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val safe: Boolean
|
abstract override val safe: Boolean
|
||||||
|
abstract override val typeArguments: List<FirTypeProjection>
|
||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
@@ -28,6 +30,8 @@ abstract class FirVariableAssignment : FirPureAbstractElement(), FirQualifiedAcc
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitVariableAssignment(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitVariableAssignment(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirVariableAssignment
|
||||||
|
|
||||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirVariableAssignment
|
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirVariableAssignment
|
||||||
|
|
||||||
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirVariableAssignment
|
abstract override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirVariableAssignment
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -26,6 +27,7 @@ class FirArraySetCallImpl(
|
|||||||
) : FirArraySetCall(), FirModifiableQualifiedAccess, FirAbstractAnnotatedElement {
|
) : FirArraySetCall(), FirModifiableQualifiedAccess, FirAbstractAnnotatedElement {
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override var safe: Boolean = false
|
override var safe: Boolean = false
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
override var explicitReceiver: FirExpression? = null
|
override var explicitReceiver: FirExpression? = null
|
||||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||||
@@ -40,6 +42,7 @@ class FirArraySetCallImpl(
|
|||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
explicitReceiver?.accept(visitor, data)
|
explicitReceiver?.accept(visitor, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver.accept(visitor, data)
|
dispatchReceiver.accept(visitor, data)
|
||||||
@@ -54,6 +57,7 @@ class FirArraySetCallImpl(
|
|||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
|
transformTypeArguments(transformer, data)
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
||||||
@@ -67,6 +71,11 @@ class FirArraySetCallImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+9
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
@@ -26,6 +27,7 @@ class FirCallableReferenceAccessImpl(
|
|||||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override var safe: Boolean = false
|
override var safe: Boolean = false
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
override var explicitReceiver: FirExpression? = null
|
override var explicitReceiver: FirExpression? = null
|
||||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||||
@@ -34,6 +36,7 @@ class FirCallableReferenceAccessImpl(
|
|||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
typeRef.accept(visitor, data)
|
typeRef.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
explicitReceiver?.accept(visitor, data)
|
explicitReceiver?.accept(visitor, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver.accept(visitor, data)
|
dispatchReceiver.accept(visitor, data)
|
||||||
@@ -47,6 +50,7 @@ class FirCallableReferenceAccessImpl(
|
|||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccessImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccessImpl {
|
||||||
typeRef = typeRef.transformSingle(transformer, data)
|
typeRef = typeRef.transformSingle(transformer, data)
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
|
transformTypeArguments(transformer, data)
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
||||||
@@ -58,6 +62,11 @@ class FirCallableReferenceAccessImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccessImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccessImpl {
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccessImpl {
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+8
-8
@@ -31,17 +31,17 @@ class FirComponentCallImpl(
|
|||||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override val safe: Boolean get() = false
|
override val safe: Boolean get() = false
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
override val dispatchReceiver: FirExpression get() = FirNoReceiverExpression
|
override val dispatchReceiver: FirExpression get() = FirNoReceiverExpression
|
||||||
override val extensionReceiver: FirExpression get() = FirNoReceiverExpression
|
override val extensionReceiver: FirExpression get() = FirNoReceiverExpression
|
||||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||||
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
|
||||||
override var calleeReference: FirNamedReference = FirSimpleNamedReference(source, Name.identifier("component$componentIndex"), null)
|
override var calleeReference: FirNamedReference = FirSimpleNamedReference(source, Name.identifier("component$componentIndex"), null)
|
||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
typeRef.accept(visitor, data)
|
typeRef.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
arguments.forEach { it.accept(visitor, data) }
|
|
||||||
typeArguments.forEach { it.accept(visitor, data) }
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
|
arguments.forEach { it.accept(visitor, data) }
|
||||||
calleeReference.accept(visitor, data)
|
calleeReference.accept(visitor, data)
|
||||||
explicitReceiver.accept(visitor, data)
|
explicitReceiver.accept(visitor, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
@@ -55,13 +55,18 @@ class FirComponentCallImpl(
|
|||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
||||||
typeRef = typeRef.transformSingle(transformer, data)
|
typeRef = typeRef.transformSingle(transformer, data)
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
transformArguments(transformer, data)
|
|
||||||
transformTypeArguments(transformer, data)
|
transformTypeArguments(transformer, data)
|
||||||
|
transformArguments(transformer, data)
|
||||||
transformCalleeReference(transformer, data)
|
transformCalleeReference(transformer, data)
|
||||||
explicitReceiver = explicitReceiver.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@@ -75,11 +80,6 @@ class FirComponentCallImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
|
||||||
typeArguments.transformInplace(transformer, data)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
||||||
calleeReference = calleeReference.transformSingle(transformer, data)
|
calleeReference = calleeReference.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+6
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
|||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
@@ -30,6 +31,7 @@ class FirExpressionWithSmartcastImpl(
|
|||||||
override val source: FirSourceElement? get() = originalExpression.source
|
override val source: FirSourceElement? get() = originalExpression.source
|
||||||
override val annotations: List<FirAnnotationCall> get() = originalExpression.annotations
|
override val annotations: List<FirAnnotationCall> get() = originalExpression.annotations
|
||||||
override val safe: Boolean get() = originalExpression.safe
|
override val safe: Boolean get() = originalExpression.safe
|
||||||
|
override val typeArguments: List<FirTypeProjection> get() = originalExpression.typeArguments
|
||||||
override val explicitReceiver: FirExpression? get() = originalExpression.explicitReceiver
|
override val explicitReceiver: FirExpression? get() = originalExpression.explicitReceiver
|
||||||
override val dispatchReceiver: FirExpression get() = originalExpression.dispatchReceiver
|
override val dispatchReceiver: FirExpression get() = originalExpression.dispatchReceiver
|
||||||
override val extensionReceiver: FirExpression get() = originalExpression.extensionReceiver
|
override val extensionReceiver: FirExpression get() = originalExpression.extensionReceiver
|
||||||
@@ -61,5 +63,9 @@ class FirExpressionWithSmartcastImpl(
|
|||||||
throw IllegalStateException()
|
throw IllegalStateException()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast {
|
||||||
|
throw IllegalStateException()
|
||||||
|
}
|
||||||
|
|
||||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
|
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
|
||||||
}
|
}
|
||||||
+8
-8
@@ -27,16 +27,17 @@ class FirFunctionCallImpl(
|
|||||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override var safe: Boolean = false
|
override var safe: Boolean = false
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
override var explicitReceiver: FirExpression? = null
|
override var explicitReceiver: FirExpression? = null
|
||||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||||
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
|
||||||
override lateinit var calleeReference: FirNamedReference
|
override lateinit var calleeReference: FirNamedReference
|
||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
typeRef.accept(visitor, data)
|
typeRef.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
explicitReceiver?.accept(visitor, data)
|
explicitReceiver?.accept(visitor, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver.accept(visitor, data)
|
dispatchReceiver.accept(visitor, data)
|
||||||
@@ -45,13 +46,13 @@ class FirFunctionCallImpl(
|
|||||||
extensionReceiver.accept(visitor, data)
|
extensionReceiver.accept(visitor, data)
|
||||||
}
|
}
|
||||||
arguments.forEach { it.accept(visitor, data) }
|
arguments.forEach { it.accept(visitor, data) }
|
||||||
typeArguments.forEach { it.accept(visitor, data) }
|
|
||||||
calleeReference.accept(visitor, data)
|
calleeReference.accept(visitor, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
||||||
typeRef = typeRef.transformSingle(transformer, data)
|
typeRef = typeRef.transformSingle(transformer, data)
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
|
transformTypeArguments(transformer, data)
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
||||||
@@ -60,11 +61,15 @@ class FirFunctionCallImpl(
|
|||||||
extensionReceiver = extensionReceiver.transformSingle(transformer, data)
|
extensionReceiver = extensionReceiver.transformSingle(transformer, data)
|
||||||
}
|
}
|
||||||
transformArguments(transformer, data)
|
transformArguments(transformer, data)
|
||||||
transformTypeArguments(transformer, data)
|
|
||||||
transformCalleeReference(transformer, data)
|
transformCalleeReference(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
@@ -85,11 +90,6 @@ class FirFunctionCallImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
|
||||||
typeArguments.transformInplace(transformer, data)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
||||||
calleeReference = calleeReference.transformSingle(transformer, data)
|
calleeReference = calleeReference.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+4
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee
|
||||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -21,11 +22,14 @@ interface FirModifiableQualifiedAccess : FirQualifiedAccessWithoutCallee, FirAbs
|
|||||||
override val source: FirSourceElement?
|
override val source: FirSourceElement?
|
||||||
override val annotations: MutableList<FirAnnotationCall>
|
override val annotations: MutableList<FirAnnotationCall>
|
||||||
override var safe: Boolean
|
override var safe: Boolean
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection>
|
||||||
override var explicitReceiver: FirExpression?
|
override var explicitReceiver: FirExpression?
|
||||||
override var dispatchReceiver: FirExpression
|
override var dispatchReceiver: FirExpression
|
||||||
override var extensionReceiver: FirExpression
|
override var extensionReceiver: FirExpression
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
||||||
|
|
||||||
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
||||||
|
|||||||
+9
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
@@ -26,6 +27,7 @@ class FirQualifiedAccessExpressionImpl(
|
|||||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override var safe: Boolean = false
|
override var safe: Boolean = false
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
override var explicitReceiver: FirExpression? = null
|
override var explicitReceiver: FirExpression? = null
|
||||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||||
@@ -34,6 +36,7 @@ class FirQualifiedAccessExpressionImpl(
|
|||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
typeRef.accept(visitor, data)
|
typeRef.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
explicitReceiver?.accept(visitor, data)
|
explicitReceiver?.accept(visitor, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver.accept(visitor, data)
|
dispatchReceiver.accept(visitor, data)
|
||||||
@@ -47,6 +50,7 @@ class FirQualifiedAccessExpressionImpl(
|
|||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpressionImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpressionImpl {
|
||||||
typeRef = typeRef.transformSingle(transformer, data)
|
typeRef = typeRef.transformSingle(transformer, data)
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
|
transformTypeArguments(transformer, data)
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
||||||
@@ -58,6 +62,11 @@ class FirQualifiedAccessExpressionImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpressionImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpressionImpl {
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpressionImpl {
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+9
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
||||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
@@ -30,15 +31,23 @@ class FirResolvedQualifierImpl(
|
|||||||
override val classId: ClassId? get() = relativeClassFqName?.let {
|
override val classId: ClassId? get() = relativeClassFqName?.let {
|
||||||
ClassId(packageFqName, it, false)
|
ClassId(packageFqName, it, false)
|
||||||
}
|
}
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
typeRef.accept(visitor, data)
|
typeRef.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedQualifierImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedQualifierImpl {
|
||||||
typeRef = typeRef.transformSingle(transformer, data)
|
typeRef = typeRef.transformSingle(transformer, data)
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
|
transformTypeArguments(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirResolvedQualifierImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
||||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirThisReference
|
import org.jetbrains.kotlin.fir.references.FirThisReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
@@ -27,6 +28,7 @@ class FirThisReceiverExpressionImpl(
|
|||||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override var safe: Boolean = false
|
override var safe: Boolean = false
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
override var explicitReceiver: FirExpression? = null
|
override var explicitReceiver: FirExpression? = null
|
||||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||||
@@ -34,6 +36,7 @@ class FirThisReceiverExpressionImpl(
|
|||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
typeRef.accept(visitor, data)
|
typeRef.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
explicitReceiver?.accept(visitor, data)
|
explicitReceiver?.accept(visitor, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver.accept(visitor, data)
|
dispatchReceiver.accept(visitor, data)
|
||||||
@@ -47,6 +50,7 @@ class FirThisReceiverExpressionImpl(
|
|||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirThisReceiverExpressionImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirThisReceiverExpressionImpl {
|
||||||
typeRef = typeRef.transformSingle(transformer, data)
|
typeRef = typeRef.transformSingle(transformer, data)
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
|
transformTypeArguments(transformer, data)
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
||||||
@@ -58,6 +62,11 @@ class FirThisReceiverExpressionImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirThisReceiverExpressionImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirThisReceiverExpressionImpl {
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirThisReceiverExpressionImpl {
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+9
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -24,6 +25,7 @@ class FirVariableAssignmentImpl(
|
|||||||
override var rValue: FirExpression
|
override var rValue: FirExpression
|
||||||
) : FirVariableAssignment(), FirModifiableQualifiedAccess, FirAbstractAnnotatedElement {
|
) : FirVariableAssignment(), FirModifiableQualifiedAccess, FirAbstractAnnotatedElement {
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
|
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||||
override var explicitReceiver: FirExpression? = null
|
override var explicitReceiver: FirExpression? = null
|
||||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||||
@@ -36,6 +38,7 @@ class FirVariableAssignmentImpl(
|
|||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeArguments.forEach { it.accept(visitor, data) }
|
||||||
explicitReceiver?.accept(visitor, data)
|
explicitReceiver?.accept(visitor, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver.accept(visitor, data)
|
dispatchReceiver.accept(visitor, data)
|
||||||
@@ -49,6 +52,7 @@ class FirVariableAssignmentImpl(
|
|||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirVariableAssignmentImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirVariableAssignmentImpl {
|
||||||
annotations.transformInplace(transformer, data)
|
annotations.transformInplace(transformer, data)
|
||||||
|
transformTypeArguments(transformer, data)
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
if (dispatchReceiver !== explicitReceiver) {
|
if (dispatchReceiver !== explicitReceiver) {
|
||||||
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
||||||
@@ -61,6 +65,11 @@ class FirVariableAssignmentImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirVariableAssignmentImpl {
|
||||||
|
typeArguments.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirVariableAssignmentImpl {
|
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirVariableAssignmentImpl {
|
||||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+2
-1
@@ -173,6 +173,7 @@ object NodeConfigurator : AbstractFieldConfigurator() {
|
|||||||
|
|
||||||
qualifiedAccessWithoutCallee.configure {
|
qualifiedAccessWithoutCallee.configure {
|
||||||
+booleanField("safe")
|
+booleanField("safe")
|
||||||
|
+typeArguments.withTransform()
|
||||||
+receivers
|
+receivers
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,7 +184,6 @@ object NodeConfigurator : AbstractFieldConfigurator() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
functionCall.configure {
|
functionCall.configure {
|
||||||
+typeArguments.withTransform()
|
|
||||||
+field("calleeReference", namedReference)
|
+field("calleeReference", namedReference)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,6 +428,7 @@ object NodeConfigurator : AbstractFieldConfigurator() {
|
|||||||
+field("packageFqName", fqNameType)
|
+field("packageFqName", fqNameType)
|
||||||
+field("relativeClassFqName", fqNameType, nullable = true)
|
+field("relativeClassFqName", fqNameType, nullable = true)
|
||||||
+field("classId", classIdType, nullable = true)
|
+field("classId", classIdType, nullable = true)
|
||||||
|
+typeArguments.withTransform()
|
||||||
}
|
}
|
||||||
|
|
||||||
stringConcatenationCall.configure {
|
stringConcatenationCall.configure {
|
||||||
|
|||||||
+10
-10
@@ -34,20 +34,20 @@ FILE fqName:<root> fileName:/callableRefToGenericMember.kt
|
|||||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
PROPERTY name:test1 visibility:public modality:FINAL [val]
|
PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||||
FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.reflect.KFunction0<kotlin.Unit> visibility:private [final,static]
|
FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.reflect.KFunction1<<root>.A<*>, kotlin.Unit> visibility:private [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
FUNCTION_REFERENCE 'public final fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.reflect.KFunction0<kotlin.Unit> origin=null
|
FUNCTION_REFERENCE 'public final fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.reflect.KFunction1<<root>.A<*>, kotlin.Unit> origin=null
|
||||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KFunction0<kotlin.Unit>
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KFunction1<<root>.A<*>, kotlin.Unit>
|
||||||
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
|
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.reflect.KFunction0<kotlin.Unit> declared in <root>'
|
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.reflect.KFunction1<<root>.A<*>, kotlin.Unit> declared in <root>'
|
||||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.reflect.KFunction0<kotlin.Unit> visibility:private [final,static]' type=kotlin.reflect.KFunction0<kotlin.Unit> origin=null
|
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.reflect.KFunction1<<root>.A<*>, kotlin.Unit> visibility:private [final,static]' type=kotlin.reflect.KFunction1<<root>.A<*>, kotlin.Unit> origin=null
|
||||||
PROPERTY name:test2 visibility:public modality:FINAL [val]
|
PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||||
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.reflect.KProperty0<kotlin.Int> visibility:private [final,static]
|
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.reflect.KProperty1<<root>.A<*>, kotlin.Int> visibility:private [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
PROPERTY_REFERENCE 'public final bar: kotlin.Int [val]' field='FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final]' getter='public final fun <get-bar> (): kotlin.Int declared in <root>.A' setter=null type=kotlin.reflect.KProperty0<kotlin.Int> origin=null
|
PROPERTY_REFERENCE 'public final bar: kotlin.Int [val]' field='FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final]' getter='public final fun <get-bar> (): kotlin.Int declared in <root>.A' setter=null type=kotlin.reflect.KProperty1<<root>.A<*>, kotlin.Int> origin=null
|
||||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KProperty0<kotlin.Int>
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KProperty1<<root>.A<*>, kotlin.Int>
|
||||||
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.reflect.KProperty0<kotlin.Int> declared in <root>'
|
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.reflect.KProperty1<<root>.A<*>, kotlin.Int> declared in <root>'
|
||||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.reflect.KProperty0<kotlin.Int> visibility:private [final,static]' type=kotlin.reflect.KProperty0<kotlin.Int> origin=null
|
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.reflect.KProperty1<<root>.A<*>, kotlin.Int> visibility:private [final,static]' type=kotlin.reflect.KProperty1<<root>.A<*>, kotlin.Int> origin=null
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ FILE fqName:<root> fileName:/genericPropertyRef.kt
|
|||||||
FIELD DELEGATE name:additionalText$delegate type:<root>.DVal visibility:private [final,static]
|
FIELD DELEGATE name:additionalText$delegate type:<root>.DVal visibility:private [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
|
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
|
||||||
kmember: PROPERTY_REFERENCE 'public final text: kotlin.String? [var]' field='FIELD PROPERTY_BACKING_FIELD name:text type:kotlin.String? visibility:private' getter='public final fun <get-text> (): kotlin.String? declared in <root>.Value' setter='public final fun <set-text> (<set-?>: kotlin.String?): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty0<kotlin.String?> origin=null
|
kmember: PROPERTY_REFERENCE 'public final text: kotlin.String? [var]' field='FIELD PROPERTY_BACKING_FIELD name:text type:kotlin.String? visibility:private' getter='public final fun <get-text> (): kotlin.String? declared in <root>.Value' setter='public final fun <set-text> (<set-?>: kotlin.String?): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<*>, kotlin.String?> origin=null
|
||||||
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalText> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalText> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
||||||
correspondingProperty: PROPERTY name:additionalText visibility:public modality:FINAL [delegated,val]
|
correspondingProperty: PROPERTY name:additionalText visibility:public modality:FINAL [delegated,val]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
@@ -81,7 +81,7 @@ FILE fqName:<root> fileName:/genericPropertyRef.kt
|
|||||||
FIELD DELEGATE name:additionalValue$delegate type:<root>.DVal visibility:private [final,static]
|
FIELD DELEGATE name:additionalValue$delegate type:<root>.DVal visibility:private [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
|
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
|
||||||
kmember: PROPERTY_REFERENCE 'public final value: T of <uninitialized parent> [var]' field=null getter='public final fun <get-value> (): T of <uninitialized parent> declared in <root>.Value' setter='public final fun <set-value> (<set-?>: T of <uninitialized parent>): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty0<T of <uninitialized parent>> origin=null
|
kmember: PROPERTY_REFERENCE 'public final value: kotlin.Any? [var]' field=null getter='public final fun <get-value> (): kotlin.Any? declared in <root>.Value' setter='public final fun <set-value> (<set-?>: kotlin.Any?): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<*>, kotlin.Any?> origin=null
|
||||||
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalValue> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalValue> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
||||||
correspondingProperty: PROPERTY name:additionalValue visibility:public modality:FINAL [delegated,val]
|
correspondingProperty: PROPERTY name:additionalValue visibility:public modality:FINAL [delegated,val]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
|
|||||||
+5
@@ -248,6 +248,11 @@ public class FirVisualizerForRawFirDataGenerated extends AbstractFirVisualizer {
|
|||||||
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/nullability.kt");
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/nullability.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("qualifierWithTypeArguments.kt")
|
||||||
|
public void testQualifierWithTypeArguments() throws Exception {
|
||||||
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simpleReturns.kt")
|
@TestMetadata("simpleReturns.kt")
|
||||||
public void testSimpleReturns() throws Exception {
|
public void testSimpleReturns() throws Exception {
|
||||||
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.kt");
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.kt");
|
||||||
|
|||||||
+5
@@ -248,6 +248,11 @@ public class PsiVisualizerForRawFirDataGenerated extends AbstractPsiVisualizer {
|
|||||||
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/nullability.kt");
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/nullability.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("qualifierWithTypeArguments.kt")
|
||||||
|
public void testQualifierWithTypeArguments() throws Exception {
|
||||||
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simpleReturns.kt")
|
@TestMetadata("simpleReturns.kt")
|
||||||
public void testSimpleReturns() throws Exception {
|
public void testSimpleReturns() throws Exception {
|
||||||
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.kt");
|
runTest("compiler/fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user