FIR: split transformer into three (imports / types / descriptors)
This commit is contained in:
@@ -6,8 +6,10 @@
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.BaseTransformedType
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
|
||||
@@ -5,16 +5,19 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.BaseTransformedType
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@BaseTransformedType
|
||||
interface FirImport : FirElement {
|
||||
val importedFqName: FqName?
|
||||
|
||||
val isAllUnder: Boolean
|
||||
|
||||
val aliasName: String?
|
||||
val aliasName: Name?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitImport(this, data)
|
||||
|
||||
@@ -6,5 +6,9 @@
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirDescriptorOwner
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirResolvedClass : FirClass, FirDescriptorOwner<FirResolvedClass>
|
||||
interface FirResolvedClass : FirClass, FirDescriptorOwner<FirResolvedClass> {
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitResolvedClass(this, data)
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright 2010-2018 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.UnambiguousFqName
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirResolvedImport : FirImport {
|
||||
val resolvedFqName: UnambiguousFqName
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitResolvedImport(this, data)
|
||||
}
|
||||
@@ -9,11 +9,12 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirImport
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class FirImportImpl(
|
||||
override val session: FirSession,
|
||||
override val psi: PsiElement?,
|
||||
override val importedFqName: FqName?,
|
||||
override val isAllUnder: Boolean,
|
||||
override val aliasName: String?
|
||||
override val aliasName: Name?
|
||||
) : FirImport
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2010-2018 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.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.UnambiguousFqName
|
||||
import org.jetbrains.kotlin.fir.declarations.FirImport
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
class FirResolvedImportImpl(
|
||||
val delegate: FirImport,
|
||||
override val resolvedFqName: UnambiguousFqName
|
||||
) : FirResolvedImport, FirImport by delegate {
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitResolvedImport(this, data)
|
||||
}
|
||||
+13
-5
@@ -94,10 +94,14 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformDeclaration(variable, data)
|
||||
}
|
||||
|
||||
open fun <E : FirElement> transformImport(import: E, data: D): CompositeTransformResult<E> {
|
||||
open fun transformImport(import: FirImport, data: D): CompositeTransformResult<FirImport> {
|
||||
return transformElement(import, data)
|
||||
}
|
||||
|
||||
open fun transformResolvedImport(resolvedImport: FirResolvedImport, data: D): CompositeTransformResult<FirImport> {
|
||||
return transformImport(resolvedImport, data)
|
||||
}
|
||||
|
||||
open fun <E : FirElement> transformPackageFragment(packageFragment: E, data: D): CompositeTransformResult<E> {
|
||||
return transformElement(packageFragment, data)
|
||||
}
|
||||
@@ -210,6 +214,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformFunction(function, data)
|
||||
}
|
||||
|
||||
final override fun visitImport(import: FirImport, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformImport(import, data)
|
||||
}
|
||||
|
||||
final override fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformMemberDeclaration(memberDeclaration, data)
|
||||
}
|
||||
@@ -282,10 +290,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformAnonymousInitializer(anonymousInitializer, data)
|
||||
}
|
||||
|
||||
final override fun visitImport(import: FirImport, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformImport(import, data)
|
||||
}
|
||||
|
||||
final override fun visitBody(body: FirBody, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformBody(body, data)
|
||||
}
|
||||
@@ -306,6 +310,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformPropertyAccessor(propertyAccessor, data)
|
||||
}
|
||||
|
||||
final override fun visitResolvedImport(resolvedImport: FirResolvedImport, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformResolvedImport(resolvedImport, data)
|
||||
}
|
||||
|
||||
final override fun visitTypeAlias(typeAlias: FirTypeAlias, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformTypeAlias(typeAlias, data)
|
||||
}
|
||||
|
||||
@@ -98,6 +98,10 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitElement(import, data)
|
||||
}
|
||||
|
||||
open fun visitResolvedImport(resolvedImport: FirResolvedImport, data: D): R {
|
||||
return visitImport(resolvedImport, data)
|
||||
}
|
||||
|
||||
open fun visitPackageFragment(packageFragment: FirPackageFragment, data: D): R {
|
||||
return visitElement(packageFragment, data)
|
||||
}
|
||||
|
||||
+12
-4
@@ -98,6 +98,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitElement(import, null)
|
||||
}
|
||||
|
||||
open fun visitResolvedImport(resolvedImport: FirResolvedImport) {
|
||||
visitImport(resolvedImport, null)
|
||||
}
|
||||
|
||||
open fun visitPackageFragment(packageFragment: FirPackageFragment) {
|
||||
visitElement(packageFragment, null)
|
||||
}
|
||||
@@ -210,6 +214,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitFunction(function)
|
||||
}
|
||||
|
||||
final override fun visitImport(import: FirImport, data: Nothing?) {
|
||||
visitImport(import)
|
||||
}
|
||||
|
||||
final override fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration, data: Nothing?) {
|
||||
visitMemberDeclaration(memberDeclaration)
|
||||
}
|
||||
@@ -282,10 +290,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitAnonymousInitializer(anonymousInitializer)
|
||||
}
|
||||
|
||||
final override fun visitImport(import: FirImport, data: Nothing?) {
|
||||
visitImport(import)
|
||||
}
|
||||
|
||||
final override fun visitBody(body: FirBody, data: Nothing?) {
|
||||
visitBody(body)
|
||||
}
|
||||
@@ -306,6 +310,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitPropertyAccessor(propertyAccessor)
|
||||
}
|
||||
|
||||
final override fun visitResolvedImport(resolvedImport: FirResolvedImport, data: Nothing?) {
|
||||
visitResolvedImport(resolvedImport)
|
||||
}
|
||||
|
||||
final override fun visitTypeAlias(typeAlias: FirTypeAlias, data: Nothing?) {
|
||||
visitTypeAlias(typeAlias)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user