/** * Unary and update operator expression emitters * * NEW NUMERIC SPEC: * - Literals use raw lexeme (no contextual widening) * - Integer casts only from IrCastExpression (not inferred from expectedType) */ import { IrExpression, IrType } from "@tsonic/frontend"; import { EmitterContext } from "../../types.js"; import type { CSharpExpressionAst } from "../../core/format/backend-ast/types.js"; /** * Emit a unary operator expression as CSharpExpressionAst (-, +, !, ~, typeof, void, delete) * * NEW NUMERIC SPEC: No contextual type propagation for numeric literals. * Explicit casts come from IrCastExpression nodes. * * @param expr - The unary expression * @param context - Emitter context * @param expectedType - Used for void IIFE return type */ export declare const emitUnary: (expr: Extract, context: EmitterContext, expectedType?: IrType) => [CSharpExpressionAst, EmitterContext]; /** * Emit an update operator expression as CSharpExpressionAst (++, --) */ export declare const emitUpdate: (expr: Extract, context: EmitterContext) => [CSharpExpressionAst, EmitterContext]; //# sourceMappingURL=unary-emitter.d.ts.map