diff --git a/analysis/analysis-api/testData/components/scopeProvider/typeScope/substitutedTypeFromLib.txt b/analysis/analysis-api/testData/components/scopeProvider/typeScope/substitutedTypeFromLib.txt index 9cf77ce6f68..62152ca8ef5 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/typeScope/substitutedTypeFromLib.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/typeScope/substitutedTypeFromLib.txt @@ -148,7 +148,7 @@ KtFunctionSymbol: isSuspend: false modality: FINAL name: copy - origin: SOURCE_MEMBER_GENERATED + origin: LIBRARY receiverParameter: null returnType: KtUsualClassType: annotationsList: [] @@ -176,7 +176,7 @@ KtFunctionSymbol: isNoinline: false isVararg: false name: first - origin: SOURCE_MEMBER_GENERATED + origin: LIBRARY receiverParameter: null returnType: KtTypeParameterType: annotationsList: [] @@ -195,7 +195,7 @@ KtFunctionSymbol: isNoinline: false isVararg: false name: second - origin: SOURCE_MEMBER_GENERATED + origin: LIBRARY receiverParameter: null returnType: KtTypeParameterType: annotationsList: [] @@ -400,3 +400,4 @@ KtKotlinPropertySymbol: symbolKind: CLASS_MEMBER typeParameters: [] visibility: Public + diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt index 20bf6c3083e..1c5918d1a3f 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt @@ -226,7 +226,7 @@ internal fun deserializeClassToSymbol( classOrObject, context.dispatchReceiver, zippedParameters, - createResolvedStatus = true, + isFromLibrary = true, createClassTypeRefWithSourceKind = { firPrimaryConstructor.returnTypeRef.copyWithNewSourceKind(it) }, createParameterTypeRefWithSourceKind = { property, newKind -> property.returnTypeRef.copyWithNewSourceKind(newKind) diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilder.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilder.kt index 9750552d1de..b578da05355 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilder.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilder.kt @@ -73,7 +73,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context name: Name, isExpect: Boolean, forceLocalContext: Boolean = false, - l: () -> T + l: () -> T, ) = when { forceLocalContext -> withForcedLocalContext { withChildClassNameRegardlessLocalContext(name, isExpect, l) @@ -86,7 +86,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context inline fun withChildClassNameRegardlessLocalContext( name: Name, isExpect: Boolean, - l: () -> T + l: () -> T, ): T { context.className = context.className.child(name) val previousIsExpect = context.containerIsExpect @@ -134,7 +134,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context status: Boolean, declarationSource: KtSourceElement? = null, currentFirTypeParameters: List, - block: () -> T + block: () -> T, ): T { addCapturedTypeParameters(status, declarationSource, currentFirTypeParameters) return try { @@ -147,7 +147,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context protected open fun addCapturedTypeParameters( status: Boolean, declarationSource: KtSourceElement?, - currentFirTypeParameters: List + currentFirTypeParameters: List, ) { context.pushFirTypeParameters(status, currentFirTypeParameters) } @@ -218,7 +218,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context fun FirExpression.toReturn( baseSource: KtSourceElement? = source, labelName: String? = null, - fromKtReturnExpression: Boolean = false + fromKtReturnExpression: Boolean = false, ): FirReturnExpression { return buildReturnExpression { fun FirFunctionTarget.bindToErrorFunction(message: String, kind: DiagnosticKind) { @@ -466,7 +466,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context protected fun ExceptionAttachmentBuilder.withSourceElementEntry(name: String, element: T?) { when (element) { is PsiElement -> withPsiEntry(name, element) - else -> withEntry(name, element) { it.asText} + else -> withEntry(name, element) { it.asText } } } @@ -474,7 +474,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context fun convertUnaryPlusMinusCallOnIntegerLiteralIfNecessary( source: T, receiver: FirExpression, - operationToken: IElementType + operationToken: IElementType, ): FirExpression? { if (receiver !is FirConstExpression<*>) return null if (receiver.kind != ConstantValueKind.IntegerLiteral) return null @@ -498,7 +498,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context fun Array.toInterpolatingCall( base: T, getElementType: (T) -> IElementType = { it.elementType }, - convertTemplateEntry: T?.(String) -> FirExpression + convertTemplateEntry: T?.(String) -> FirExpression, ): FirExpression { return buildStringConcatenationCall { val sb = StringBuilder() @@ -555,7 +555,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context receiver: T?, callName: Name, prefix: Boolean, - convert: T.() -> FirExpression + convert: T.() -> FirExpression, ): FirExpression { val unwrappedReceiver = receiver.unwrap() ?: return buildErrorExpression { diagnostic = ConeSyntaxDiagnostic("Inc/dec without operand") @@ -630,7 +630,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context receiver: T, callName: Name, prefix: Boolean, - convert: T.() -> FirExpression + convert: T.() -> FirExpression, ): FirExpression { val array = receiver.arrayExpression return buildBlockPossiblyUnderSafeCall( @@ -740,7 +740,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context receiver: T?, convert: T.() -> FirExpression, sourceElementForError: KtSourceElement?, - init: FirBlockBuilder.(receiver: FirExpression) -> Unit = {} + init: FirBlockBuilder.(receiver: FirExpression) -> Unit = {}, ): FirExpression { val receiverFir = receiver?.convert() ?: buildErrorExpression { source = sourceElementForError @@ -779,7 +779,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context // since there should be different nodes for desugaring as `.set(.., get().plus($rhs1))` and `.get(...).plusAssign($rhs2)` // Once KT-50861 is fixed, those two parameters shall be eliminated rhsAST: T?, - convert: T.() -> FirExpression + convert: T.() -> FirExpression, ): FirStatement { val unwrappedLhs = this.unwrap() ?: return buildErrorExpression { diagnostic = ConeSyntaxDiagnostic("Inc/dec without operand") @@ -880,7 +880,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context safeCallNonAssignment: FirSafeCallExpression, baseSource: KtSourceElement?, rhsExpression: FirExpression, - annotations: List + annotations: List, ): FirSafeCallExpression { val nestedAccess = safeCallNonAssignment.selector as FirQualifiedAccessExpression @@ -905,7 +905,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context operation: FirOperation, annotations: List, rhs: T?, - convert: T.() -> FirExpression + convert: T.() -> FirExpression, ): FirStatement { require(receiver is FirFunctionCall) { "Array access should be desugared to a function call, but $receiver is found" @@ -974,7 +974,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context source, currentDispatchReceiverType(), zippedParameters, - createResolvedStatus = false, + isFromLibrary = false, createClassTypeRefWithSourceKind, createParameterTypeRefWithSourceKind, { src, kind -> src?.toFirSourceElement(kind) }, @@ -1024,7 +1024,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context protected fun buildExpressionWithErrorLabel( element: FirElement?, errorLabelSource: KtSourceElement?, - elementSource: KtSourceElement + elementSource: KtSourceElement, ): FirElement { return if (element != null) { if (errorLabelSource != null) { @@ -1044,7 +1044,7 @@ abstract class AbstractRawFirBuilder(val baseSession: FirSession, val context protected fun convertFirSelector( firSelector: FirQualifiedAccessExpression, source: KtSourceElement?, - receiver: FirExpression + receiver: FirExpression, ): FirQualifiedAccessExpression { return if (firSelector is FirImplicitInvokeCall) { buildImplicitInvokeCall { @@ -1113,7 +1113,7 @@ fun FirRegularClassBuilder.createDa sourceElement: TSource, dispatchReceiver: ConeClassLikeType?, zippedParameters: List>, - createResolvedStatus: Boolean, + isFromLibrary: Boolean, createClassTypeRefWithSourceKind: (KtFakeSourceElementKind) -> FirTypeRef, createParameterTypeRefWithSourceKind: (FirProperty, KtFakeSourceElementKind) -> FirTypeRef, toFirSource: (TBase?, KtFakeSourceElementKind) -> KtSourceElement?, @@ -1143,17 +1143,19 @@ fun FirRegularClassBuilder.createDa } } + val declarationOrigin = if (isFromLibrary) FirDeclarationOrigin.Library else FirDeclarationOrigin.Synthetic.DataClassMember + return buildSimpleFunction { val classTypeRef = createClassTypeRefWithSourceKind(KtFakeSourceElementKind.DataClassGeneratedMembers) this.source = toFirSource(sourceElement, KtFakeSourceElementKind.DataClassGeneratedMembers) moduleData = this@createDataClassCopyFunction.moduleData - origin = FirDeclarationOrigin.Synthetic.DataClassMember + origin = declarationOrigin returnTypeRef = classTypeRef name = StandardNames.DATA_CLASS_COPY symbol = FirNamedFunctionSymbol(CallableId(classId.packageFqName, classId.relativeClassName, StandardNames.DATA_CLASS_COPY)) dispatchReceiverType = dispatchReceiver resolvePhase = this@createDataClassCopyFunction.resolvePhase - status = if (createResolvedStatus) { + status = if (isFromLibrary) { FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL, EffectiveVisibility.Public) } else { FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL) @@ -1167,7 +1169,7 @@ fun FirRegularClassBuilder.createDa source = parameterSource containingFunctionSymbol = this@buildSimpleFunction.symbol moduleData = this@createDataClassCopyFunction.moduleData - origin = FirDeclarationOrigin.Synthetic.DataClassMember + origin = declarationOrigin returnTypeRef = propertyReturnTypeRef name = propertyName symbol = FirValueParameterSymbol(propertyName)