FIR: transform types inside functions & properties
This commit is contained in:
@@ -84,7 +84,11 @@ class RawFirBuilder(val session: FirSession) {
|
|||||||
isGetter: Boolean
|
isGetter: Boolean
|
||||||
): FirPropertyAccessor {
|
): FirPropertyAccessor {
|
||||||
if (this == null) {
|
if (this == null) {
|
||||||
return FirDefaultPropertyAccessor(session, property, isGetter, propertyType)
|
return if (isGetter) {
|
||||||
|
FirDefaultPropertyGetter(session, property, propertyType)
|
||||||
|
} else {
|
||||||
|
FirDefaultPropertySetter(session, property, propertyType)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
val firAccessor = FirPropertyAccessorImpl(
|
val firAccessor = FirPropertyAccessorImpl(
|
||||||
session,
|
session,
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@ class FirTypeResolverImpl : FirTypeResolver {
|
|||||||
ConeKotlinErrorType(type.reason)
|
ConeKotlinErrorType(type.reason)
|
||||||
}
|
}
|
||||||
is FirFunctionType, is FirDynamicType, is FirImplicitType, is FirDelegatedType -> {
|
is FirFunctionType, is FirDynamicType, is FirImplicitType, is FirDelegatedType -> {
|
||||||
ConeKotlinErrorType("Not supported: $type")
|
ConeKotlinErrorType("Not supported: ${type::class.simpleName}")
|
||||||
}
|
}
|
||||||
else -> error("!")
|
else -> error("!")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,3 +28,7 @@ fun <T : FirElement, D> MutableList<T>.transformInplace(transformer: FirTransfor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun <T : FirElement, D> T.transformSingle(transformer: FirTransformer<D>, data: D): T {
|
||||||
|
return this.transform<T, D>(transformer, data).single
|
||||||
|
}
|
||||||
+14
-3
@@ -8,9 +8,12 @@ package org.jetbrains.kotlin.fir.declarations.impl
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
||||||
|
import org.jetbrains.kotlin.fir.transformSingle
|
||||||
import org.jetbrains.kotlin.fir.types.FirType
|
import org.jetbrains.kotlin.fir.types.FirType
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
abstract class FirAbstractCallableMember(
|
abstract class FirAbstractCallableMember(
|
||||||
@@ -20,6 +23,14 @@ abstract class FirAbstractCallableMember(
|
|||||||
visibility: Visibility,
|
visibility: Visibility,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
final override val isOverride: Boolean,
|
final override val isOverride: Boolean,
|
||||||
final override val receiverType: FirType?,
|
final override var receiverType: FirType?,
|
||||||
final override val returnType: FirType
|
final override var returnType: FirType
|
||||||
) : FirAbstractMemberDeclaration(session, psi, name, visibility, modality), FirCallableMember
|
) : FirAbstractMemberDeclaration(session, psi, name, visibility, modality), FirCallableMember {
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
receiverType = receiverType?.transformSingle(transformer, data)
|
||||||
|
returnType = returnType.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
+9
@@ -6,10 +6,13 @@
|
|||||||
package org.jetbrains.kotlin.fir.declarations.impl
|
package org.jetbrains.kotlin.fir.declarations.impl
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBody
|
import org.jetbrains.kotlin.fir.expressions.FirBody
|
||||||
|
import org.jetbrains.kotlin.fir.transformInplace
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
|
|
||||||
abstract class FirAbstractFunction(
|
abstract class FirAbstractFunction(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
@@ -17,4 +20,10 @@ abstract class FirAbstractFunction(
|
|||||||
final override val body: FirBody?
|
final override val body: FirBody?
|
||||||
) : FirAbstractAnnotatedDeclaration(session, psi), FirFunction {
|
) : FirAbstractAnnotatedDeclaration(session, psi), FirFunction {
|
||||||
final override val valueParameters = mutableListOf<FirValueParameter>()
|
final override val valueParameters = mutableListOf<FirValueParameter>()
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
valueParameters.transformInplace(transformer, data)
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+44
-14
@@ -7,32 +7,62 @@ package org.jetbrains.kotlin.fir.declarations.impl
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBody
|
import org.jetbrains.kotlin.fir.expressions.FirBody
|
||||||
|
import org.jetbrains.kotlin.fir.transformInplace
|
||||||
|
import org.jetbrains.kotlin.fir.transformSingle
|
||||||
import org.jetbrains.kotlin.fir.types.FirType
|
import org.jetbrains.kotlin.fir.types.FirType
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirUnitType
|
import org.jetbrains.kotlin.fir.types.impl.FirUnitType
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
|
|
||||||
class FirDefaultPropertyAccessor(
|
abstract class FirDefaultPropertyAccessor(
|
||||||
override val session: FirSession,
|
final override val session: FirSession,
|
||||||
override val psi: PsiElement?,
|
final override val psi: PsiElement?,
|
||||||
override val isGetter: Boolean,
|
final override val isGetter: Boolean
|
||||||
propertyType: FirType
|
|
||||||
) : FirPropertyAccessor {
|
) : FirPropertyAccessor {
|
||||||
override val visibility =
|
final override val visibility =
|
||||||
Visibilities.UNKNOWN
|
Visibilities.UNKNOWN
|
||||||
|
|
||||||
override val valueParameters: List<FirValueParameter> =
|
final override val body: FirBody? =
|
||||||
if (isGetter) emptyList() else listOf(FirDefaultSetterValueParameter(session, psi, propertyType))
|
|
||||||
|
|
||||||
override val returnType: FirType =
|
|
||||||
if (isGetter) propertyType else FirUnitType(session, psi)
|
|
||||||
|
|
||||||
override val body: FirBody? =
|
|
||||||
null
|
null
|
||||||
|
|
||||||
override val annotations: List<FirAnnotationCall>
|
final override val annotations: List<FirAnnotationCall>
|
||||||
get() = emptyList()
|
get() = emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
class FirDefaultPropertyGetter(
|
||||||
|
session: FirSession,
|
||||||
|
psi: PsiElement?,
|
||||||
|
propertyType: FirType
|
||||||
|
): FirDefaultPropertyAccessor(session, psi, isGetter = true) {
|
||||||
|
override val valueParameters: List<FirValueParameter> = emptyList()
|
||||||
|
|
||||||
|
override var returnType: FirType = propertyType
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
returnType = returnType.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class FirDefaultPropertySetter(
|
||||||
|
session: FirSession,
|
||||||
|
psi: PsiElement?,
|
||||||
|
propertyType: FirType
|
||||||
|
): FirDefaultPropertyAccessor(session, psi, isGetter = false) {
|
||||||
|
override val valueParameters = mutableListOf(FirDefaultSetterValueParameter(session, psi, propertyType))
|
||||||
|
|
||||||
|
override var returnType: FirType = FirUnitType(session, psi)
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
valueParameters.transformInplace(transformer, data)
|
||||||
|
returnType = returnType.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+10
-1
@@ -6,16 +6,19 @@
|
|||||||
package org.jetbrains.kotlin.fir.declarations.impl
|
package org.jetbrains.kotlin.fir.declarations.impl
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.fir.transformSingle
|
||||||
import org.jetbrains.kotlin.fir.types.FirType
|
import org.jetbrains.kotlin.fir.types.FirType
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirDefaultSetterValueParameter(
|
class FirDefaultSetterValueParameter(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
psi: PsiElement?,
|
psi: PsiElement?,
|
||||||
override val returnType: FirType
|
override var returnType: FirType
|
||||||
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter {
|
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter {
|
||||||
override val isCrossinline = false
|
override val isCrossinline = false
|
||||||
|
|
||||||
@@ -25,6 +28,12 @@ class FirDefaultSetterValueParameter(
|
|||||||
|
|
||||||
override val defaultValue: FirExpression? = null
|
override val defaultValue: FirExpression? = null
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
returnType = returnType.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val name = Name.identifier("value")
|
val name = Name.identifier("value")
|
||||||
}
|
}
|
||||||
|
|||||||
+9
@@ -8,11 +8,14 @@ package org.jetbrains.kotlin.fir.declarations.impl
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirNamedFunction
|
import org.jetbrains.kotlin.fir.declarations.FirNamedFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBody
|
import org.jetbrains.kotlin.fir.expressions.FirBody
|
||||||
|
import org.jetbrains.kotlin.fir.transformInplace
|
||||||
import org.jetbrains.kotlin.fir.types.FirType
|
import org.jetbrains.kotlin.fir.types.FirType
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirMemberFunctionImpl(
|
class FirMemberFunctionImpl(
|
||||||
@@ -33,4 +36,10 @@ class FirMemberFunctionImpl(
|
|||||||
) : FirAbstractCallableMember(session, psi, name, visibility, modality, isOverride, receiverType, returnType),
|
) : FirAbstractCallableMember(session, psi, name, visibility, modality, isOverride, receiverType, returnType),
|
||||||
FirNamedFunction {
|
FirNamedFunction {
|
||||||
override val valueParameters = mutableListOf<FirValueParameter>()
|
override val valueParameters = mutableListOf<FirValueParameter>()
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
valueParameters.transformInplace(transformer, data)
|
||||||
|
|
||||||
|
return super<FirAbstractCallableMember>.transformChildren(transformer, data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+13
-3
@@ -8,11 +8,14 @@ package org.jetbrains.kotlin.fir.declarations.impl
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.fir.transformSingle
|
||||||
import org.jetbrains.kotlin.fir.types.FirType
|
import org.jetbrains.kotlin.fir.types.FirType
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirMemberPropertyImpl(
|
class FirMemberPropertyImpl(
|
||||||
@@ -27,8 +30,15 @@ class FirMemberPropertyImpl(
|
|||||||
returnType: FirType,
|
returnType: FirType,
|
||||||
override val isVar: Boolean,
|
override val isVar: Boolean,
|
||||||
override val initializer: FirExpression?,
|
override val initializer: FirExpression?,
|
||||||
override val getter: FirPropertyAccessor,
|
override var getter: FirPropertyAccessor,
|
||||||
override val setter: FirPropertyAccessor,
|
override var setter: FirPropertyAccessor,
|
||||||
override val delegate: FirExpression?
|
override val delegate: FirExpression?
|
||||||
) : FirAbstractCallableMember(session, psi, name, visibility, modality, isOverride, receiverType, returnType),
|
) : FirAbstractCallableMember(session, psi, name, visibility, modality, isOverride, receiverType, returnType),
|
||||||
FirProperty
|
FirProperty {
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
getter = getter.transformSingle(transformer, data)
|
||||||
|
setter = setter.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
return super<FirAbstractCallableMember>.transformChildren(transformer, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
+11
-2
@@ -7,16 +7,25 @@ package org.jetbrains.kotlin.fir.declarations.impl
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBody
|
import org.jetbrains.kotlin.fir.expressions.FirBody
|
||||||
|
import org.jetbrains.kotlin.fir.transformSingle
|
||||||
import org.jetbrains.kotlin.fir.types.FirType
|
import org.jetbrains.kotlin.fir.types.FirType
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
|
|
||||||
class FirPropertyAccessorImpl(
|
class FirPropertyAccessorImpl(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
psi: PsiElement?,
|
psi: PsiElement?,
|
||||||
override val isGetter: Boolean,
|
override val isGetter: Boolean,
|
||||||
override val visibility: Visibility,
|
override val visibility: Visibility,
|
||||||
override val returnType: FirType,
|
override var returnType: FirType,
|
||||||
body: FirBody?
|
body: FirBody?
|
||||||
) : FirAbstractFunction(session, psi, body), FirPropertyAccessor
|
) : FirAbstractFunction(session, psi, body), FirPropertyAccessor {
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
returnType = returnType.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
return super<FirAbstractFunction>.transformChildren(transformer, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
+11
-2
@@ -6,20 +6,29 @@
|
|||||||
package org.jetbrains.kotlin.fir.declarations.impl
|
package org.jetbrains.kotlin.fir.declarations.impl
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.fir.transformSingle
|
||||||
import org.jetbrains.kotlin.fir.types.FirType
|
import org.jetbrains.kotlin.fir.types.FirType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
|
|
||||||
class FirValueParameterImpl(
|
class FirValueParameterImpl(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
psi: PsiElement?,
|
psi: PsiElement?,
|
||||||
val isProperty: Boolean,
|
val isProperty: Boolean,
|
||||||
name: Name,
|
name: Name,
|
||||||
override val returnType: FirType,
|
override var returnType: FirType,
|
||||||
override val defaultValue: FirExpression?,
|
override val defaultValue: FirExpression?,
|
||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean,
|
override val isNoinline: Boolean,
|
||||||
override val isVararg: Boolean
|
override val isVararg: Boolean
|
||||||
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter
|
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter {
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
returnType = returnType.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
interface SomeInterface {
|
||||||
|
fun foo(x: Int, y: String): String
|
||||||
|
|
||||||
|
val bar: Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
class SomeClass : SomeInterface {
|
||||||
|
private val baz = 42
|
||||||
|
|
||||||
|
override fun foo(x: Int, y: String): String {
|
||||||
|
return y + x + baz
|
||||||
|
}
|
||||||
|
|
||||||
|
override var bar: Boolean
|
||||||
|
get() = true
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
|
var fau: Double
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
FILE: simpleClass.kt
|
||||||
|
unknown final interface SomeInterface() {
|
||||||
|
unknown final function foo(x: R/error: Failed to resolve qualified type/, y: R/error: Failed to resolve qualified type/): R/error: Failed to resolve qualified type/
|
||||||
|
|
||||||
|
unknown final property bar(val): R/error: Failed to resolve qualified type/
|
||||||
|
unknown get(): R/error: Failed to resolve qualified type/
|
||||||
|
|
||||||
|
}
|
||||||
|
unknown final class SomeClass() : R/<root>.SomeInterface/ {
|
||||||
|
private final property baz(val): R/error: Not supported: FirImplicitTypeImpl/ = STUB
|
||||||
|
unknown get(): R/error: Not supported: FirImplicitTypeImpl/
|
||||||
|
|
||||||
|
unknown final override function foo(x: R/error: Failed to resolve qualified type/, y: R/error: Failed to resolve qualified type/): R/error: Failed to resolve qualified type/ {
|
||||||
|
}
|
||||||
|
|
||||||
|
unknown final override property bar(var): R/error: Failed to resolve qualified type/
|
||||||
|
unknown get(): R/error: Not supported: FirImplicitTypeImpl/ {
|
||||||
|
STUB
|
||||||
|
}
|
||||||
|
unknown set(value: R/error: Failed to resolve qualified type/): R/error: Not supported: FirImplicitTypeImpl/ {
|
||||||
|
}
|
||||||
|
|
||||||
|
unknown final property fau(var): R/error: Failed to resolve qualified type/
|
||||||
|
unknown get(): R/error: Failed to resolve qualified type/
|
||||||
|
unknown set(value: R/error: Failed to resolve qualified type/): R/kotlin.Unit/
|
||||||
|
|
||||||
|
}
|
||||||
@@ -37,6 +37,12 @@ public class FirResolveTestCaseGenerated extends AbstractFirResolveTestCase {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("simpleClass.kt")
|
||||||
|
public void testSimpleClass() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/fir/resolve/simpleClass.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("TwoDeclarationsInSameFile.kt")
|
@TestMetadata("TwoDeclarationsInSameFile.kt")
|
||||||
public void testTwoDeclarationsInSameFile() throws Exception {
|
public void testTwoDeclarationsInSameFile() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/fir/resolve/TwoDeclarationsInSameFile.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/fir/resolve/TwoDeclarationsInSameFile.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user