FIR: introduce type resolvers #KT-24019 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
aa20d88dff
commit
3e7b9c4e27
@@ -371,7 +371,12 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
is ConeClassType -> {
|
||||
val sb = StringBuilder()
|
||||
val fqName = fqName
|
||||
sb.append(fqName.packageFqName.asString().replace('.', '/'))
|
||||
val packageFqName = fqName.packageFqName
|
||||
if (packageFqName.isRoot) {
|
||||
sb.append("<root>")
|
||||
} else {
|
||||
sb.append(packageFqName.asString().replace('.', '/'))
|
||||
}
|
||||
sb.append('.')
|
||||
sb.append(fqName.classFqName.asString())
|
||||
sb.append(typeArguments.joinToString { it ->
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* 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.FirDescriptorOwner
|
||||
|
||||
interface FirResolvedClass : FirClass, FirDescriptorOwner<FirResolvedClass>
|
||||
+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.FirBasedDescriptor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvedClass
|
||||
|
||||
class FirResolvedClassImpl(val delegate: FirClass, override val descriptor: FirBasedDescriptor<FirResolvedClass>) :
|
||||
FirResolvedClass, FirClass by delegate {
|
||||
|
||||
init {
|
||||
descriptor.bind(this)
|
||||
}
|
||||
|
||||
}
|
||||
+8
@@ -66,6 +66,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformClass(enumEntry, data)
|
||||
}
|
||||
|
||||
open fun transformResolvedClass(resolvedClass: FirResolvedClass, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformClass(resolvedClass, data)
|
||||
}
|
||||
|
||||
open fun transformTypeAlias(typeAlias: FirTypeAlias, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformMemberDeclaration(typeAlias, data)
|
||||
}
|
||||
@@ -246,6 +250,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformEnumEntry(enumEntry, data)
|
||||
}
|
||||
|
||||
final override fun visitResolvedClass(resolvedClass: FirResolvedClass, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformResolvedClass(resolvedClass, data)
|
||||
}
|
||||
|
||||
final override fun visitCallableMember(callableMember: FirCallableMember, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformCallableMember(callableMember, data)
|
||||
}
|
||||
|
||||
@@ -66,6 +66,10 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitClass(enumEntry, data)
|
||||
}
|
||||
|
||||
open fun visitResolvedClass(resolvedClass: FirResolvedClass, data: D): R {
|
||||
return visitClass(resolvedClass, data)
|
||||
}
|
||||
|
||||
open fun visitTypeAlias(typeAlias: FirTypeAlias, data: D): R {
|
||||
return visitMemberDeclaration(typeAlias, data)
|
||||
}
|
||||
|
||||
+8
@@ -66,6 +66,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitClass(enumEntry, null)
|
||||
}
|
||||
|
||||
open fun visitResolvedClass(resolvedClass: FirResolvedClass) {
|
||||
visitClass(resolvedClass, null)
|
||||
}
|
||||
|
||||
open fun visitTypeAlias(typeAlias: FirTypeAlias) {
|
||||
visitMemberDeclaration(typeAlias, null)
|
||||
}
|
||||
@@ -246,6 +250,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitEnumEntry(enumEntry)
|
||||
}
|
||||
|
||||
final override fun visitResolvedClass(resolvedClass: FirResolvedClass, data: Nothing?) {
|
||||
visitResolvedClass(resolvedClass)
|
||||
}
|
||||
|
||||
final override fun visitCallableMember(callableMember: FirCallableMember, data: Nothing?) {
|
||||
visitCallableMember(callableMember)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user