K2 Scripting: mark parameters and DD containers with dedicated origins
needed for properly processing script CFG
This commit is contained in:
committed by
Space Team
parent
8c30f3b2bc
commit
b0f44e8f69
+5
-2
@@ -87,12 +87,13 @@ internal fun generateTemporaryVariable(
|
||||
name: Name,
|
||||
initializer: FirExpression,
|
||||
typeRef: FirTypeRef? = null,
|
||||
origin: FirDeclarationOrigin = FirDeclarationOrigin.Source,
|
||||
extractAnnotationsTo: (KtAnnotated.(FirAnnotationContainerBuilder) -> Unit),
|
||||
): FirVariable =
|
||||
buildProperty {
|
||||
this.source = source
|
||||
this.moduleData = moduleData
|
||||
origin = FirDeclarationOrigin.Source
|
||||
this.origin = origin
|
||||
returnTypeRef = typeRef ?: FirImplicitTypeRefImplWithoutSource
|
||||
this.name = name
|
||||
this.initializer = initializer
|
||||
@@ -108,6 +109,7 @@ internal fun generateTemporaryVariable(
|
||||
source: KtSourceElement?,
|
||||
specialName: String,
|
||||
initializer: FirExpression,
|
||||
origin: FirDeclarationOrigin = FirDeclarationOrigin.Source,
|
||||
extractAnnotationsTo: (KtAnnotated.(FirAnnotationContainerBuilder) -> Unit),
|
||||
): FirVariable =
|
||||
generateTemporaryVariable(
|
||||
@@ -115,7 +117,8 @@ internal fun generateTemporaryVariable(
|
||||
source,
|
||||
Name.special("<$specialName>"),
|
||||
initializer,
|
||||
null,
|
||||
typeRef = null,
|
||||
origin,
|
||||
extractAnnotationsTo,
|
||||
)
|
||||
|
||||
|
||||
@@ -1294,6 +1294,7 @@ open class PsiRawFirBuilder(
|
||||
declaration.toFirSourceElement(),
|
||||
"destruct",
|
||||
declaration.initializer.toFirExpression { ConeSyntaxDiagnostic("Initializer required for destructuring declaration") },
|
||||
origin = FirDeclarationOrigin.Synthetic.ScriptTopLevelDestructuringDeclarationContainer,
|
||||
extractAnnotationsTo = { extractAnnotationsTo(it) }
|
||||
).apply {
|
||||
isDestructuringDeclarationContainerVariable = true
|
||||
|
||||
Reference in New Issue
Block a user