diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue.kt index d8617561cdf..50241d895cc 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue.kt @@ -85,12 +85,6 @@ public sealed class CodeFragmentCapturedValue( get() = "this@$name" } - /** Represents a captured named local function. */ - public class LocalFunction( - name: Name, - isCrossingInlineBounds: Boolean, - ) : CodeFragmentCapturedValue(name.asString(), isMutated = false, isCrossingInlineBounds) - /** Represents an externally provided value. */ public class ForeignValue( name: Name, diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.capturing.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.capturing.txt index 3d1f7671d8d..8f6923a8842 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.capturing.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.capturing.txt @@ -1,6 +1,3 @@ -LocalFunction[name: call; isMutated: false; displayText: call] - fun call(a: R|kotlin/Int|, b: R|kotlin/String|): R|kotlin/Unit| - R|(kotlin/Int, kotlin/String) -> kotlin/Unit| Local[name: x; isMutated: false; displayText: x] lval x: R|kotlin/Int| R|kotlin/Int| diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt index 8fbb48011c4..e6ecff33f07 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt @@ -22,10 +22,11 @@ MODULE_FRAGMENT name: CONSTRUCTOR visibility:public <> () returnType:.CodeFragment [primary] BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' - FUN name:run visibility:public modality:FINAL <> (p0:kotlin.Function2, p1:kotlin.Int, p2:kotlin.String) returnType:kotlin.Unit - VALUE_PARAMETER name:p0 index:0 type:kotlin.Function2 - VALUE_PARAMETER name:p1 index:1 type:kotlin.Int - VALUE_PARAMETER name:p2 index:2 type:kotlin.String + FUN name:run visibility:public modality:FINAL <> (p0:kotlin.Int, p1:kotlin.String) returnType:kotlin.Unit + VALUE_PARAMETER name:p0 index:0 type:kotlin.Int + VALUE_PARAMETER name:p1 index:1 type:kotlin.String EXPRESSION_BODY BLOCK type=kotlin.Unit origin=null - GET_VAR 'p0: kotlin.Function2 declared in .CodeFragment.run' type=kotlin.Function2 origin=null + CALL 'local final fun call (a: kotlin.Int, b: kotlin.String): kotlin.Unit declared in .test' type=kotlin.Unit origin=null + a: GET_VAR 'p0: kotlin.Int declared in .CodeFragment.run' type=kotlin.Int origin=null + b: GET_VAR 'p1: kotlin.String declared in .CodeFragment.run' type=kotlin.String origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt index 23fe40979b5..79040982afb 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt @@ -1,7 +1,7 @@ public final class CodeFragment { // source: 'fragment.kt' public method (): void - public final static method run(p0: kotlin.jvm.functions.Function2, p1: int, p2: java.lang.String): void + public final static method run(p0: int, p1: java.lang.String): void } public final class LocalFunctionKt \ No newline at end of file diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt index 5a8cebd8e16..71836cc3a80 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt @@ -27,14 +27,12 @@ import org.jetbrains.kotlin.fir.labelName import org.jetbrains.kotlin.fir.references.FirSuperReference import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.references.toResolvedCallableSymbol -import org.jetbrains.kotlin.fir.resolve.constructFunctionType import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef -import org.jetbrains.kotlin.fir.types.specialFunctionTypeKind import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.psi @@ -195,12 +193,6 @@ private class CodeFragmentCapturedValueVisitor( } is FirNamedFunctionSymbol -> { if (symbol.isLocal) { - val isCrossingInlineBounds = isCrossingInlineBounds(element, symbol) - val capturedValue = CodeFragmentCapturedValue.LocalFunction(symbol.name, isCrossingInlineBounds) - val firFunction = symbol.fir - val functionType = firFunction.constructFunctionType(firFunction.specialFunctionTypeKind(session)) - val typeRef = buildResolvedTypeRef { type = functionType } - register(symbol, CodeFragmentCapturedSymbol(capturedValue, symbol, typeRef)) registerFile(symbol) } }