From 24041828a94443d4e264e83fe1f97e98308b59c8 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Thu, 14 Mar 2019 17:49:34 +0300 Subject: [PATCH] FIR: Improve rendering for type operators --- .../rawBuilder/declarations/genericFunctions.txt | 2 +- .../testData/rawBuilder/expressions/branches.txt | 2 +- .../testData/rawBuilder/expressions/modifications.txt | 2 +- .../testData/rawBuilder/expressions/typeOperators.txt | 8 ++++---- .../fir/resolve/testData/resolve/builtins/lists.txt | 4 ++-- .../fir/resolve/testData/resolve/genericFunctions.txt | 2 +- .../tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt | 10 ++++++++++ 7 files changed, 20 insertions(+), 10 deletions(-) diff --git a/compiler/fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.txt b/compiler/fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.txt index 0a7815734d1..0e02378bb79 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.txt @@ -2,7 +2,7 @@ FILE: genericFunctions.kt public? final? interface Any { } public? final? inline fun Any.safeAs(): T? { - ^safeAs as?/T(this#) + ^safeAs (this# as? T) } public? abstract class Summator { public? constructor(): super() diff --git a/compiler/fir/psi2fir/testData/rawBuilder/expressions/branches.txt b/compiler/fir/psi2fir/testData/rawBuilder/expressions/branches.txt index ce909762d37..3c50e8ac7ea 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/expressions/branches.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/expressions/branches.txt @@ -52,7 +52,7 @@ FILE: branches.kt in($subj$, rangeTo#(Int(1), Int(2))) -> { String(Fail) } - is/Number($subj$) -> { + ($subj$ is Number) -> { String(Number) } else -> { diff --git a/compiler/fir/psi2fir/testData/rawBuilder/expressions/modifications.txt b/compiler/fir/psi2fir/testData/rawBuilder/expressions/modifications.txt index 54c294cce51..40a42b78470 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/expressions/modifications.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/expressions/modifications.txt @@ -11,6 +11,6 @@ FILE: modifications.kt this# += String(Omega) } public? final? fun Any.modify(): kotlin/Unit { - lval : = as/List(this#) + lval : = (this# as List) # += Int(42) } diff --git a/compiler/fir/psi2fir/testData/rawBuilder/expressions/typeOperators.txt b/compiler/fir/psi2fir/testData/rawBuilder/expressions/typeOperators.txt index c577d0b795f..1019d3686a7 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/expressions/typeOperators.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/expressions/typeOperators.txt @@ -2,14 +2,14 @@ FILE: typeOperators.kt public? final? interface IThing { } public? final? fun test1(x: Any): { - ^test1 is/IThing(x#) + ^test1 (x# is IThing) } public? final? fun test2(x: Any): { - ^test2 !is/IThing(x#) + ^test2 (x# !is IThing) } public? final? fun test3(x: Any): { - ^test3 as/IThing(x#) + ^test3 (x# as IThing) } public? final? fun test4(x: Any): { - ^test4 as?/IThing(x#) + ^test4 (x# as? IThing) } diff --git a/compiler/fir/resolve/testData/resolve/builtins/lists.txt b/compiler/fir/resolve/testData/resolve/builtins/lists.txt index 223f64a802a..62ef3892704 100644 --- a/compiler/fir/resolve/testData/resolve/builtins/lists.txt +++ b/compiler/fir/resolve/testData/resolve/builtins/lists.txt @@ -8,8 +8,8 @@ FILE: lists.kt } public final fun R|kotlin/collections/List|.convert(): R|MyStringList| { - ^convert as/R|MyStringList|(this#) + ^convert (this# as R|MyStringList|) } public final fun ret(l: R|kotlin/collections/MutableList|): R|MyMutableStringList| { - ^ret as/R|MyMutableStringList|(this#) + ^ret (this# as R|MyMutableStringList|) } diff --git a/compiler/fir/resolve/testData/resolve/genericFunctions.txt b/compiler/fir/resolve/testData/resolve/genericFunctions.txt index f8462f3e785..ad0543225f3 100644 --- a/compiler/fir/resolve/testData/resolve/genericFunctions.txt +++ b/compiler/fir/resolve/testData/resolve/genericFunctions.txt @@ -2,7 +2,7 @@ FILE: genericFunctions.kt public abstract interface Any { } public final inline fun R|Any|.safeAs(): R|T|? { - ^safeAs as?/R|T|(this#) + ^safeAs (this# as? R|T|) } public abstract class Summator { public constructor(): super() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index db4166bf2ba..cf377e3aa2e 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -607,6 +607,16 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() { print(")") } + override fun visitTypeOperatorCall(typeOperatorCall: FirTypeOperatorCall) { + print("(") + typeOperatorCall.argument.accept(this) + print(" ") + print(typeOperatorCall.operation.operator) + print(" ") + typeOperatorCall.typeRef.accept(this) + print(")") + } + override fun visitAnnotationCall(annotationCall: FirAnnotationCall) { print("@") annotationCall.useSiteTarget?.let {