[FIR] Add diagnostic when annotation argument is resolved ambiguously

Annotation arguments that are resolved in COMPILER_REQUIRED_ANNOTATIONS
phase are resolved again in ANNOTATION_ARGUMENTS phase. If they resolve
to a different symbol, report an error.

KT-56177
This commit is contained in:
Kirill Rakhman
2023-02-23 18:16:39 +01:00
committed by Space Team
parent 9dda5e4fcd
commit 2139914061
27 changed files with 253 additions and 5 deletions
@@ -251,3 +251,15 @@ class ConeAmbiguouslyResolvedAnnotationFromPlugin(
- types stage: $typeFromTypesPhase
"""
}
class ConeAmbiguouslyResolvedAnnotationArgument(
val symbolFromCompilerPhase: FirBasedSymbol<*>,
val symbolFromAnnotationArgumentsPhase: FirBasedSymbol<*>?
) : ConeDiagnostic {
override val reason: String
get() = """
Annotation symbol resolved differently on compiler annotation and symbols stages:
- compiler annotations: $symbolFromCompilerPhase
- compiler arguments stage: $symbolFromAnnotationArgumentsPhase
"""
}