Raw FIR: get rid of array gets, use array sets only for modifications

(a[b] += c etc. cannot be replaced with get/set calls easily)
This commit is contained in:
Mikhail Glukhikh
2019-04-05 13:15:59 +03:00
parent a0c4e2f05f
commit d736a7da6b
11 changed files with 30 additions and 95 deletions
@@ -858,14 +858,6 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
visitCall(operatorCall)
}
override fun visitArrayGetCall(arrayGetCall: FirArrayGetCall) {
arrayGetCall.annotations.renderAnnotations()
arrayGetCall.array.accept(this)
print("[")
arrayGetCall.arguments.renderSeparated()
print("]")
}
override fun visitComponentCall(componentCall: FirComponentCall) {
componentCall.annotations.renderAnnotations()
componentCall.explicitReceiver.accept(this)
@@ -1,20 +0,0 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.expressions
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirArrayGetCall : FirCall {
val array: FirExpression
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitArrayGetCall(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
array.accept(visitor, data)
super.acceptChildren(visitor, data)
}
}
@@ -1,25 +0,0 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirArrayGetCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirArrayGetCallImpl(
session: FirSession,
psi: PsiElement?,
override var array: FirExpression
) : FirAbstractCall(session, psi), FirArrayGetCall {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
array = array.transformSingle(transformer, data)
return super<FirAbstractCall>.transformChildren(transformer, data)
}
}
@@ -200,10 +200,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformCall(annotationCall, data)
}
open fun transformArrayGetCall(arrayGetCall: FirArrayGetCall, data: D): CompositeTransformResult<FirStatement> {
return transformCall(arrayGetCall, data)
}
open fun transformArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): CompositeTransformResult<FirStatement> {
return transformCall(arrayOfCall, data)
}
@@ -396,10 +392,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformAnonymousObject(anonymousObject, data)
}
final override fun visitArrayGetCall(arrayGetCall: FirArrayGetCall, data: D): CompositeTransformResult<FirElement> {
return transformArrayGetCall(arrayGetCall, data)
}
final override fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): CompositeTransformResult<FirElement> {
return transformArrayOfCall(arrayOfCall, data)
}
@@ -200,10 +200,6 @@ abstract class FirVisitor<out R, in D> {
return visitCall(annotationCall, data)
}
open fun visitArrayGetCall(arrayGetCall: FirArrayGetCall, data: D): R {
return visitCall(arrayGetCall, data)
}
open fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): R {
return visitCall(arrayOfCall, data)
}
@@ -200,10 +200,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitCall(annotationCall, null)
}
open fun visitArrayGetCall(arrayGetCall: FirArrayGetCall) {
visitCall(arrayGetCall, null)
}
open fun visitArrayOfCall(arrayOfCall: FirArrayOfCall) {
visitCall(arrayOfCall, null)
}
@@ -396,10 +392,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitAnonymousObject(anonymousObject)
}
final override fun visitArrayGetCall(arrayGetCall: FirArrayGetCall, data: Nothing?) {
visitArrayGetCall(arrayGetCall)
}
final override fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: Nothing?) {
visitArrayOfCall(arrayOfCall)
}