Handle phase for FirEnumEntry correctly

This commit is contained in:
Mikhail Glukhikh
2019-12-30 18:33:46 +03:00
parent 05ee6fdd77
commit 2f6a48f70c
4 changed files with 10 additions and 3 deletions
@@ -92,6 +92,10 @@ class FirStatusResolveTransformer : FirAbstractTreeTransformer<FirDeclarationSta
return transformDeclaration(property, data)
}
override fun transformEnumEntry(enumEntry: FirEnumEntry, data: FirDeclarationStatus?): CompositeTransformResult<FirDeclaration> {
return transformDeclaration(enumEntry, data)
}
override fun transformValueParameter(
valueParameter: FirValueParameter,
data: FirDeclarationStatus?
@@ -59,6 +59,9 @@ class FirTypeResolveTransformer : FirAbstractTreeTransformerWithSuperTypes(
}
}
override fun transformEnumEntry(enumEntry: FirEnumEntry, data: Nothing?): CompositeTransformResult<FirDeclaration> {
return transformDeclaration(enumEntry, data)
}
override fun transformProperty(property: FirProperty, data: Nothing?): CompositeTransformResult<FirDeclaration> {
return withScopeCleanup {
@@ -17,6 +17,6 @@ fun test() {
useEnum(TestEnum.SECOND)
useEnum(TestEnum.THIRD)
<!INAPPLICABLE_CANDIDATE!>useVararg<!>(TestEnum.FIRST, TestEnum.SECOND)
useVararg(TestEnum.FIRST, TestEnum.SECOND)
<!INAPPLICABLE_CANDIDATE!>useVararg<!>(1, 2, 3, 4, 5)
}
@@ -39,12 +39,12 @@ FILE: enumEntryUse.kt
}
public final fun useEnum(some: R|TestEnum|): R|kotlin/Unit| {
}
public final fun useVararg(vararg some: R|kotlin/Array<kotlin/Array<kotlin/Array<kotlin/Array<kotlin/Array<kotlin/Array<TestEnum>>>>>>|): R|kotlin/Unit| {
public final fun useVararg(vararg some: R|kotlin/Array<TestEnum>|): R|kotlin/Unit| {
}
public final fun test(): R|kotlin/Unit| {
R|/use|(Q|TestEnum|.R|/TestEnum.FIRST|)
R|/useEnum|(Q|TestEnum|.R|/TestEnum.SECOND|)
R|/useEnum|(Q|TestEnum|.R|/TestEnum.THIRD|)
<Inapplicable(INAPPLICABLE): [/useVararg]>#(Q|TestEnum|.R|/TestEnum.FIRST|, Q|TestEnum|.R|/TestEnum.SECOND|)
R|/useVararg|(Q|TestEnum|.R|/TestEnum.FIRST|, Q|TestEnum|.R|/TestEnum.SECOND|)
<Inapplicable(INAPPLICABLE): [/useVararg]>#(Int(1), Int(2), Int(3), Int(4), Int(5))
}