From 6570d3fd553455443c2fbb9ba867c1299f188700 Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Mon, 5 Feb 2024 21:08:15 +0100 Subject: [PATCH] [FIR] Minor fixes in `FirDelegateUsesExtensionPropertyTypeParameterChecker` Fix a link in DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER message --- ...FirDelegateUsesExtensionPropertyTypeParameterChecker.kt | 7 +++---- .../fir/analysis/diagnostics/FirErrorsDefaultMessages.kt | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDelegateUsesExtensionPropertyTypeParameterChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDelegateUsesExtensionPropertyTypeParameterChecker.kt index 8022e64d41d..9fee1b0ea8a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDelegateUsesExtensionPropertyTypeParameterChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDelegateUsesExtensionPropertyTypeParameterChecker.kt @@ -27,7 +27,7 @@ object FirDelegateUsesExtensionPropertyTypeParameterChecker : FirPropertyChecker val delegate = declaration.delegate ?: return val parameters = declaration.typeParameters.mapTo(hashSetOf()) { it.symbol } - val usedTypeParameterSymbol = delegate.resolvedType.findUsedTypeParameterSymbol(parameters, delegate, context, reporter) + val usedTypeParameterSymbol = delegate.resolvedType.findUsedTypeParameterSymbol(parameters, delegate, context) ?: return reporter.reportOn(declaration.source, FirErrors.DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER, usedTypeParameterSymbol, context) @@ -37,13 +37,12 @@ object FirDelegateUsesExtensionPropertyTypeParameterChecker : FirPropertyChecker typeParameterSymbols: HashSet, delegate: FirExpression, context: CheckerContext, - reporter: DiagnosticReporter, ): FirTypeParameterSymbol? { val expandedDelegateClassLikeType = delegate.resolvedType.lowerBoundIfFlexible().fullyExpandedType(context.session) .unwrapDefinitelyNotNull() as? ConeClassLikeType ?: return null val delegateClassSymbol = expandedDelegateClassLikeType.lookupTag.toSymbol(context.session) as? FirClassSymbol<*> ?: return null - val delegateClassScope by lazy { delegateClassSymbol.unsubstitutedScope(context) } + val delegateClassScope by lazy(LazyThreadSafetyMode.NONE) { delegateClassSymbol.unsubstitutedScope(context) } for (it in typeArguments) { val theType = it.type ?: continue val argumentAsTypeParameterSymbol = theType.toSymbol(context.session) as? FirTypeParameterSymbol @@ -59,7 +58,7 @@ object FirDelegateUsesExtensionPropertyTypeParameterChecker : FirPropertyChecker return argumentAsTypeParameterSymbol } } - val usedTypeParameterSymbol = theType.findUsedTypeParameterSymbol(typeParameterSymbols, delegate, context, reporter) + val usedTypeParameterSymbol = theType.findUsedTypeParameterSymbol(typeParameterSymbols, delegate, context) if (usedTypeParameterSymbol != null) { return usedTypeParameterSymbol } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt index 81b412b4ba2..41c51d821ec 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt @@ -1919,7 +1919,7 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() { ) map.put( DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER, - "Extension property type parameter ''{0}'' cannot be used in delegates. See https://youtrack.jetbrains.com/issue/KT-24643.", + "Extension property type parameter ''{0}'' cannot be used in delegates. See https://youtrack.jetbrains.com/issue/KT-24643", SYMBOL ) map.put(INITIALIZER_TYPE_MISMATCH, "Initializer type mismatch: expected ''{0}'', actual ''{1}''.", RENDER_TYPE, RENDER_TYPE, NOT_RENDERED)