FIR: implement Java fields (in provider, type enhancement, scopes)
Related to KT-29218
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* 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.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.BaseTransformedType
|
||||
import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariable
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
@BaseTransformedType
|
||||
interface FirField : @VisitedSupertype FirDeclaration, FirCallableMember, FirVariable {
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitField(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirCallableMember>.acceptChildren(visitor, data)
|
||||
initializer?.accept(visitor, data)
|
||||
delegate?.accept(visitor, data)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* 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.symbols.impl
|
||||
|
||||
typealias FirFieldSymbol = FirPropertySymbol
|
||||
+8
@@ -64,6 +64,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformDeclaration(errorDeclaration, data)
|
||||
}
|
||||
|
||||
open fun transformField(field: FirField, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformDeclaration(field, data)
|
||||
}
|
||||
|
||||
open fun transformNamedDeclaration(namedDeclaration: FirNamedDeclaration, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformDeclaration(namedDeclaration, data)
|
||||
}
|
||||
@@ -496,6 +500,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformExpression(expression, data)
|
||||
}
|
||||
|
||||
final override fun visitField(field: FirField, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformField(field, data)
|
||||
}
|
||||
|
||||
final override fun visitFile(file: FirFile, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformFile(file, data)
|
||||
}
|
||||
|
||||
@@ -64,6 +64,10 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitDeclaration(errorDeclaration, data)
|
||||
}
|
||||
|
||||
open fun visitField(field: FirField, data: D): R {
|
||||
return visitDeclaration(field, data)
|
||||
}
|
||||
|
||||
open fun visitNamedDeclaration(namedDeclaration: FirNamedDeclaration, data: D): R {
|
||||
return visitDeclaration(namedDeclaration, data)
|
||||
}
|
||||
|
||||
+8
@@ -64,6 +64,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitDeclaration(errorDeclaration, null)
|
||||
}
|
||||
|
||||
open fun visitField(field: FirField) {
|
||||
visitDeclaration(field, null)
|
||||
}
|
||||
|
||||
open fun visitNamedDeclaration(namedDeclaration: FirNamedDeclaration) {
|
||||
visitDeclaration(namedDeclaration, null)
|
||||
}
|
||||
@@ -496,6 +500,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitExpression(expression)
|
||||
}
|
||||
|
||||
final override fun visitField(field: FirField, data: Nothing?) {
|
||||
visitField(field)
|
||||
}
|
||||
|
||||
final override fun visitFile(file: FirFile, data: Nothing?) {
|
||||
visitFile(file)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user