@informalsystems/quint
Version:
Core tool for the Quint specification language
40 lines (39 loc) • 1.75 kB
TypeScript
import { LookupTable } from '../names/base';
import { AnalysisOutput } from '../quintAnalyzer';
import { QuintDef, QuintModule } from '../ir/quintIr';
import { QuintType } from '../ir/quintTypes';
/**
* Inlines all type aliases in a set of QuintModules, LookupTable and AnalysisOutput.
*
* @param modules - The array of QuintModules to transform.
* @param table - The LookupTable containing the type aliases to be resolved.
* @param analysisOutput - The AnalysisOutput to transform.
*
* @returns An object containing the transformed QuintModules, LookupTable and AnalysisOutput.
*/
export declare function inlineTypeAliases(modules: QuintModule[], table: LookupTable, analysisOutput: AnalysisOutput): {
modules: QuintModule[];
table: LookupTable;
analysisOutput: AnalysisOutput;
};
/**
* Inlines all type aliases in the AnalysisOutput using the provided LookupTable.
*
* @param analysisOutput - The AnalysisOutput to transform.
* @param table - The LookupTable containing the type aliases to be resolved.
*
* @returns The transformed AnalysisOutput with all type aliases replaced with their resolved types.
*/
export declare function inlineAnalysisOutput(analysisOutput: AnalysisOutput, table: LookupTable): AnalysisOutput;
/**
* Inlines type aliases in a QuintDef using the provided LookupTable.
*
* @param lookupTable - The LookupTable containing the type aliases to be
* resolved.
* @param def - The QuintDef to transform.
*
* @returns The transformed QuintDef with all type aliases replaced with
* their resolved types.
*/
export declare function inlineAliasesInDef(def: QuintDef, lookupTable: LookupTable): QuintDef;
export declare function resolveAlias(lookupTable: LookupTable, type: QuintType): QuintType;