FIR checker: DSL_SCOPE_VIOLATION

This commit is contained in:
Tianyu Geng
2021-09-14 22:29:35 -07:00
committed by TeamCityServer
parent 7aaac2573c
commit 826ea122a9
53 changed files with 331 additions and 550 deletions
@@ -3292,6 +3292,13 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.DSL_SCOPE_VIOLATION) { firDiagnostic ->
DslScopeViolationImpl(
firSymbolBuilder.buildSymbol(firDiagnostic.a.fir),
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.TOPLEVEL_TYPEALIASES_ONLY) { firDiagnostic ->
ToplevelTypealiasesOnlyImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -2298,6 +2298,11 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val property: KtVariableSymbol
}
abstract class DslScopeViolation : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = DslScopeViolation::class
abstract val calleeSymbol: KtSymbol
}
abstract class ToplevelTypealiasesOnly : KtFirDiagnostic<KtTypeAlias>() {
override val diagnosticClass get() = ToplevelTypealiasesOnly::class
}
@@ -2767,6 +2767,12 @@ internal class PropertyAsOperatorImpl(
override val token: ValidityToken,
) : KtFirDiagnostic.PropertyAsOperator(), KtAbstractFirDiagnostic<PsiElement>
internal class DslScopeViolationImpl(
override val calleeSymbol: KtSymbol,
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.DslScopeViolation(), KtAbstractFirDiagnostic<PsiElement>
internal class ToplevelTypealiasesOnlyImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
@@ -24532,6 +24532,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
runTest("compiler/testData/diagnostics/tests/resolve/dslMarker/twoLanguages.kt");
}
@Test
@TestMetadata("typeAliasToBuiltinFunctionType.kt")
public void testTypeAliasToBuiltinFunctionType() throws Exception {
runTest("compiler/testData/diagnostics/tests/resolve/dslMarker/typeAliasToBuiltinFunctionType.kt");
}
@Test
@TestMetadata("unsupportedFeature.kt")
public void testUnsupportedFeature() throws Exception {