FIR: add implementation of reified type parameter references
This adds support of T::class.java for reified type parameters
This commit is contained in:
+1
@@ -108,6 +108,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
val namedArgumentExpression = element("NamedArgumentExpression", Expression, wrappedArgumentExpression)
|
||||
|
||||
val resolvedQualifier = element("ResolvedQualifier", Expression, expression)
|
||||
val resolvedReifiedParameterReference = element("ResolvedReifiedParameterReference", Expression, expression)
|
||||
val returnExpression = element("ReturnExpression", Expression, jump)
|
||||
val stringConcatenationCall = element("StringConcatenationCall", Expression, call, expression)
|
||||
val throwExpression = element("ThrowExpression", Expression, expression)
|
||||
|
||||
+2
@@ -347,6 +347,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
}
|
||||
}
|
||||
|
||||
impl(resolvedReifiedParameterReference)
|
||||
|
||||
impl(returnExpression) {
|
||||
lateinit("target")
|
||||
default("typeRef", "FirImplicitNothingTypeRef(source)")
|
||||
|
||||
+4
@@ -430,6 +430,10 @@ object NodeConfigurator : AbstractFieldConfigurator() {
|
||||
+typeArguments.withTransform()
|
||||
}
|
||||
|
||||
resolvedReifiedParameterReference.configure {
|
||||
+field("symbol", typeParameterSymbolType)
|
||||
}
|
||||
|
||||
stringConcatenationCall.configure {
|
||||
}
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ val abstractFirBasedSymbolType = type("fir.symbols", "AbstractFirBasedSymbol")
|
||||
val backingFieldSymbolType = type("fir.symbols.impl", "FirBackingFieldSymbol")
|
||||
val delegateFieldSymbolType = type("fir.symbols.impl", "FirDelegateFieldSymbol")
|
||||
val classSymbolType = type("fir.symbols.impl", "FirClassSymbol")
|
||||
val typeParameterSymbolType = type("fir.symbols.impl", "FirTypeParameterSymbol")
|
||||
|
||||
val pureAbstractElementType = generatedType("FirPureAbstractElement")
|
||||
val effectDeclarationType = type("fir.contracts.description", "ConeEffectDeclaration")
|
||||
|
||||
Reference in New Issue
Block a user