Skip to content

Commit bd15d1c

Browse files
Mikhael BogdanovSpace
authored andcommitted
[FIR]: Pass special origins for local functions (named and anonymous)
(cherry picked from commit 8ab546b)
1 parent cd39bfe commit bd15d1c

File tree

7 files changed

+8
-8
lines changed

7 files changed

+8
-8
lines changed

compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ class Fir2IrVisitor(
209209
override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?): IrElement {
210210
val irFunction = if (simpleFunction.visibility == Visibilities.Local) {
211211
declarationStorage.createIrFunction(
212-
simpleFunction, irParent = conversionScope.parent(), isLocal = true
212+
simpleFunction, irParent = conversionScope.parent(), origin = IrDeclarationOrigin.LOCAL_FUNCTION, isLocal = true
213213
)
214214
} else {
215215
declarationStorage.getCachedIrFunction(simpleFunction)!!
@@ -224,7 +224,7 @@ class Fir2IrVisitor(
224224
override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction, data: Any?): IrElement {
225225
return anonymousFunction.convertWithOffsets { startOffset, endOffset ->
226226
val irFunction = declarationStorage.createIrFunction(
227-
anonymousFunction, irParent = conversionScope.parent(), isLocal = true
227+
anonymousFunction, irParent = conversionScope.parent(), origin = IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA, isLocal = true
228228
)
229229
conversionScope.withFunction(irFunction) {
230230
memberGenerator.convertFunctionContent(irFunction, anonymousFunction, containingClass = null)

compiler/testData/codegen/box/fir/noSymbolForIntRangeIterator.fir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ FILE fqName:<root> fileName:/noSymbolForIntRangeIterator.kt
4949
CONST Int type=kotlin.Int value=10
5050
VAR name:y type:kotlin.Int [val]
5151
CONST Int type=kotlin.Int value=10
52-
FUN name:localFunc visibility:local modality:FINAL <> () returnType:kotlin.Unit
52+
FUN LOCAL_FUNCTION name:localFunc visibility:local modality:FINAL <> () returnType:kotlin.Unit
5353
BLOCK_BODY
5454
BLOCK type=kotlin.Unit origin=FOR_LOOP
5555
VAR FOR_LOOP_ITERATOR name:tmp_1 type:kotlin.collections.IntIterator [val]

compiler/testData/ir/irText/declarations/parameters/lambdas.fir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ FILE fqName:<root> fileName:/lambdas.kt
4848
FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> visibility:private [final,static]
4949
EXPRESSION_BODY
5050
FUN_EXPR type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> origin=LAMBDA
51-
FUN name:<no name provided> visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.Int) returnType:kotlin.Unit
51+
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<no name provided> visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.Int) returnType:kotlin.Unit
5252
VALUE_PARAMETER name:i index:0 type:kotlin.Int
5353
VALUE_PARAMETER name:j index:1 type:kotlin.Int
5454
BLOCK_BODY

compiler/testData/ir/irText/expressions/kt47245.fir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ FILE fqName:<root> fileName:/kt47245.kt
1515
CALL 'public final fun next (): kotlin.Int [operator] declared in kotlin.collections.IntIterator' type=kotlin.Int origin=FOR_LOOP_NEXT
1616
$this: GET_VAR 'val tmp_0: kotlin.collections.IntIterator [val] declared in <root>.test' type=kotlin.collections.IntIterator origin=null
1717
BLOCK type=kotlin.Unit origin=null
18-
FUN name:x visibility:local modality:FINAL <> () returnType:kotlin.Unit
18+
FUN LOCAL_FUNCTION name:x visibility:local modality:FINAL <> () returnType:kotlin.Unit
1919
BLOCK_BODY

compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.fir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ FILE fqName:<root> fileName:/variableAsFunctionCallWithGenerics.kt
2727
BLOCK_BODY
2828
RETURN type=kotlin.Nothing from='public final fun <get-kt26531Val> <T> (): kotlin.Function0<T of <root>.<get-kt26531Val>> declared in <root>'
2929
FUN_EXPR type=kotlin.Function0<T of <root>.<get-kt26531Val>> origin=LAMBDA
30-
FUN name:<no name provided> visibility:local modality:FINAL <> () returnType:T of <root>.<get-kt26531Val>
30+
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<no name provided> visibility:local modality:FINAL <> () returnType:T of <root>.<get-kt26531Val>
3131
BLOCK_BODY
3232
RETURN type=kotlin.Nothing from='local final fun <no name provided> (): T of <root>.<get-kt26531Val> declared in <root>.<get-kt26531Val>'
3333
GET_VAR '<this>: T of <root>.<get-kt26531Val> declared in <root>.<get-kt26531Val>' type=T of <root>.<get-kt26531Val> origin=null

compiler/testData/ir/irText/lambdas/anonymousFunction.fir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FILE fqName:<root> fileName:/anonymousFunction.kt
33
FIELD PROPERTY_BACKING_FIELD name:anonymous type:kotlin.Function0<kotlin.Unit> visibility:private [final,static]
44
EXPRESSION_BODY
55
FUN_EXPR type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
6-
FUN name:<no name provided> visibility:local modality:FINAL <> () returnType:kotlin.Unit
6+
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<no name provided> visibility:local modality:FINAL <> () returnType:kotlin.Unit
77
BLOCK_BODY
88
CALL 'public final fun println (): kotlin.Unit [inline] declared in kotlin.io.ConsoleKt' type=kotlin.Unit origin=null
99
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anonymous> visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Unit>

compiler/testData/ir/irText/lambdas/localFunction.fir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FILE fqName:<root> fileName:/localFunction.kt
33
BLOCK_BODY
44
VAR name:x type:kotlin.Int [var]
55
CONST Int type=kotlin.Int value=0
6-
FUN name:local visibility:local modality:FINAL <> () returnType:kotlin.Unit
6+
FUN LOCAL_FUNCTION name:local visibility:local modality:FINAL <> () returnType:kotlin.Unit
77
BLOCK_BODY
88
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int [val]
99
GET_VAR 'var x: kotlin.Int [var] declared in <root>.outer' type=kotlin.Int origin=null

0 commit comments

Comments
 (0)