/** * Lambda parameter emission and lowering. * * Extracted from functions.ts — contains parameter type resolution, * typed parameter AST emission, default-value lowering, and destructuring * prelude generation for lambda expressions. */ import { IrExpression, IrParameter, IrType } from "@tsonic/frontend"; import { EmitterContext } from "../types.js"; import type { CSharpExpressionAst, CSharpLambdaParameterAst, CSharpStatementAst } from "../core/format/backend-ast/types.js"; export type EmittedLambdaParameter = { readonly parameter?: IrParameter; readonly ast?: CSharpLambdaParameterAst; readonly emittedName: string; readonly bindsDirectly: boolean; readonly resolvedType?: IrType; readonly bindingSourceExpression?: CSharpExpressionAst; readonly bindingSourceType?: IrType; }; export declare const seedLocalNameMapFromParameters: (params: readonly EmittedLambdaParameter[], context: EmitterContext) => EmitterContext; export type ContextualFunctionType = Extract; export declare const resolveContextualFunctionType: (expr: Extract, expectedType: IrType | undefined, context: EmitterContext) => ContextualFunctionType | undefined; /** * Emit lambda parameters as typed AST nodes. */ export declare const emitLambdaParametersAst: (parameters: readonly IrParameter[], context: EmitterContext, contextualFunctionType?: ContextualFunctionType) => [readonly EmittedLambdaParameter[], EmitterContext]; export declare const lowerLambdaParameterPreludeAst: (parameters: readonly EmittedLambdaParameter[], context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext]; //# sourceMappingURL=lambda-parameters.d.ts.map