/** * The Map operations: what one call of a compiler-owned Map member answers. * * D115 §三: this was one private method of `CollectionInference`. Its cases run * in the order the one method evaluated them in, and it answers `null` for a * property Map does not publish. */ import { type ValueType } from "../../types.ts"; import { type CollectionCall, type CollectionLoweringFacts } from "./call.ts"; import { type DiagnosticFix } from "../../diagnostic.ts"; import { type Span } from "../../source.ts"; /** What the Map family asks of the analyzer that hosts it, and nothing more. */ export interface MapCallsHost { /** What the emitter will lower each collection call to. */ readonly lowering: CollectionLoweringFacts; expandAliases(type: ValueType): ValueType; requireAssignable(actual: ValueType, expected: ValueType, valueSpan: Span): void; requireMembershipIntersection(probe: ValueType, domain: ValueType, span: Span, operation: string): boolean; typeError(message: string, errorSpan: Span, fix?: DiagnosticFix): void; } export declare class MapCalls { private readonly host; constructor(host: MapCallsHost); /** The Map operations. */ inferMapCall(call: CollectionCall, object: Extract): ValueType | null; } //# sourceMappingURL=map.d.ts.map