Comment opaue type violations
This commit is contained in:
parent
bc86988453
commit
05ce6d2872
|
@ -17,68 +17,69 @@ import { tagged, tag } from "./types";
|
||||||
// This file is here to compensate for genType not fully recursively converting types
|
// This file is here to compensate for genType not fully recursively converting types
|
||||||
|
|
||||||
// Raw rescript types.
|
// Raw rescript types.
|
||||||
export type rescriptExport =
|
// Umur: Rescript expression values are opaque!
|
||||||
| 0 // EvVoid
|
// export type rescriptExport =
|
||||||
| {
|
// | 0 // EvVoid
|
||||||
TAG: 0; // EvArray
|
// | {
|
||||||
_0: rescriptExport[];
|
// TAG: 0; // EvArray
|
||||||
}
|
// _0: rescriptExport[];
|
||||||
| {
|
// }
|
||||||
TAG: 1; // EvString
|
// | {
|
||||||
_0: string[];
|
// TAG: 1; // EvString
|
||||||
}
|
// _0: string[];
|
||||||
| {
|
// }
|
||||||
TAG: 2; // EvBool
|
// | {
|
||||||
_0: boolean;
|
// TAG: 2; // EvBool
|
||||||
}
|
// _0: boolean;
|
||||||
| {
|
// }
|
||||||
TAG: 3; // EvCall
|
// | {
|
||||||
_0: string;
|
// TAG: 3; // EvCall
|
||||||
}
|
// _0: string;
|
||||||
| {
|
// }
|
||||||
TAG: 4; // EvDistribution
|
// | {
|
||||||
_0: rescriptDist;
|
// TAG: 4; // EvDistribution
|
||||||
}
|
// _0: rescriptDist;
|
||||||
| {
|
// }
|
||||||
TAG: 5; // EvLambda
|
// | {
|
||||||
_0: lambdaValue;
|
// TAG: 5; // EvLambda
|
||||||
}
|
// _0: lambdaValue;
|
||||||
| {
|
// }
|
||||||
TAG: 6; // EvNumber
|
// | {
|
||||||
_0: number;
|
// TAG: 6; // EvNumber
|
||||||
}
|
// _0: number;
|
||||||
| {
|
// }
|
||||||
TAG: 7; // EvRecord
|
// | {
|
||||||
_0: { [key: string]: rescriptExport };
|
// TAG: 7; // EvRecord
|
||||||
}
|
// _0: { [key: string]: rescriptExport };
|
||||||
| {
|
// }
|
||||||
TAG: 8; // EvString
|
// | {
|
||||||
_0: string;
|
// TAG: 8; // EvString
|
||||||
}
|
// _0: string;
|
||||||
| {
|
// }
|
||||||
TAG: 9; // EvSymbol
|
// | {
|
||||||
_0: string;
|
// TAG: 9; // EvSymbol
|
||||||
}
|
// _0: string;
|
||||||
| {
|
// }
|
||||||
TAG: 10; // EvDate
|
// | {
|
||||||
_0: Date;
|
// TAG: 10; // EvDate
|
||||||
}
|
// _0: Date;
|
||||||
| {
|
// }
|
||||||
TAG: 11; // EvTimeDuration
|
// | {
|
||||||
_0: number;
|
// TAG: 11; // EvTimeDuration
|
||||||
}
|
// _0: number;
|
||||||
| {
|
// }
|
||||||
TAG: 12; // EvDeclaration
|
// | {
|
||||||
_0: rescriptLambdaDeclaration;
|
// TAG: 12; // EvDeclaration
|
||||||
}
|
// _0: rescriptLambdaDeclaration;
|
||||||
| {
|
// }
|
||||||
TAG: 13; // EvTypeIdentifier
|
// | {
|
||||||
_0: string;
|
// TAG: 13; // EvTypeIdentifier
|
||||||
}
|
// _0: string;
|
||||||
| {
|
// }
|
||||||
TAG: 14; // EvModule
|
// | {
|
||||||
_0: { [key: string]: rescriptExport };
|
// TAG: 14; // EvModule
|
||||||
};
|
// _0: { [key: string]: rescriptExport };
|
||||||
|
// };
|
||||||
|
|
||||||
type rescriptDist =
|
type rescriptDist =
|
||||||
| { TAG: 0; _0: rescriptPointSetDist }
|
| { TAG: 0; _0: rescriptPointSetDist }
|
||||||
|
@ -116,86 +117,88 @@ type rescriptDeclarationArg =
|
||||||
max: Date;
|
max: Date;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type squiggleExpression =
|
// Umur: Squiggle expressions are opaque!
|
||||||
| tagged<"symbol", string>
|
// export type squiggleExpression =
|
||||||
| tagged<"string", string>
|
// | tagged<"symbol", string>
|
||||||
| tagged<"call", string>
|
// | tagged<"string", string>
|
||||||
| tagged<"lambda", lambdaValue>
|
// | tagged<"call", string>
|
||||||
| tagged<"array", squiggleExpression[]>
|
// | tagged<"lambda", lambdaValue>
|
||||||
| tagged<"arraystring", string[]>
|
// | tagged<"array", squiggleExpression[]>
|
||||||
| tagged<"boolean", boolean>
|
// | tagged<"arraystring", string[]>
|
||||||
| tagged<"distribution", Distribution>
|
// | tagged<"boolean", boolean>
|
||||||
| tagged<"number", number>
|
// | tagged<"distribution", Distribution>
|
||||||
| tagged<"date", Date>
|
// | tagged<"number", number>
|
||||||
| tagged<"timeDuration", number>
|
// | tagged<"date", Date>
|
||||||
| tagged<"lambdaDeclaration", lambdaDeclaration>
|
// | tagged<"timeDuration", number>
|
||||||
| tagged<"record", { [key: string]: squiggleExpression }>
|
// | tagged<"lambdaDeclaration", lambdaDeclaration>
|
||||||
| tagged<"type", { [key: string]: squiggleExpression }>
|
// | tagged<"record", { [key: string]: squiggleExpression }>
|
||||||
| tagged<"typeIdentifier", string>
|
// | tagged<"type", { [key: string]: squiggleExpression }>
|
||||||
| tagged<"module", { [key: string]: squiggleExpression }>
|
// | tagged<"typeIdentifier", string>
|
||||||
| tagged<"void", string>;
|
// | tagged<"module", { [key: string]: squiggleExpression }>
|
||||||
|
// | tagged<"void", string>;
|
||||||
|
|
||||||
export { lambdaValue };
|
export { lambdaValue };
|
||||||
|
|
||||||
export function convertRawToTypescript(
|
// Umur: Opaque type no conversion!
|
||||||
result: rescriptExport,
|
// export function convertRawToTypescript(
|
||||||
environment: environment
|
// result: rescriptExport,
|
||||||
): squiggleExpression {
|
// environment: environment
|
||||||
if (typeof result === "number") {
|
// ): squiggleExpression {
|
||||||
// EvVoid
|
// if (typeof result === "number") {
|
||||||
return tag("void", "");
|
// // EvVoid
|
||||||
}
|
// return tag("void", "");
|
||||||
switch (result.TAG) {
|
// }
|
||||||
case 0: // EvArray
|
// switch (result.TAG) {
|
||||||
return tag(
|
// case 0: // EvArray
|
||||||
"array",
|
// return tag(
|
||||||
result._0.map((x) => convertRawToTypescript(x, environment))
|
// "array",
|
||||||
);
|
// result._0.map((x) => convertRawToTypescript(x, environment))
|
||||||
case 1: // EvArrayString
|
// );
|
||||||
return tag("arraystring", result._0);
|
// case 1: // EvArrayString
|
||||||
case 2: // EvBool
|
// return tag("arraystring", result._0);
|
||||||
return tag("boolean", result._0);
|
// case 2: // EvBool
|
||||||
case 3: // EvCall
|
// return tag("boolean", result._0);
|
||||||
return tag("call", result._0);
|
// case 3: // EvCall
|
||||||
case 4: // EvDistribution
|
// return tag("call", result._0);
|
||||||
return tag(
|
// case 4: // EvDistribution
|
||||||
"distribution",
|
// return tag(
|
||||||
new Distribution(
|
// "distribution",
|
||||||
convertRawDistributionToGenericDist(result._0),
|
// new Distribution(
|
||||||
environment
|
// convertRawDistributionToGenericDist(result._0),
|
||||||
)
|
// environment
|
||||||
);
|
// )
|
||||||
case 5: // EvDistribution
|
// );
|
||||||
return tag("lambda", result._0);
|
// case 5: // EvDistribution
|
||||||
case 6: // EvNumber
|
// return tag("lambda", result._0);
|
||||||
return tag("number", result._0);
|
// case 6: // EvNumber
|
||||||
case 7: // EvRecord
|
// return tag("number", result._0);
|
||||||
return tag(
|
// case 7: // EvRecord
|
||||||
"record",
|
// return tag(
|
||||||
_.mapValues(result._0, (x) => convertRawToTypescript(x, environment))
|
// "record",
|
||||||
);
|
// _.mapValues(result._0, (x) => convertRawToTypescript(x, environment))
|
||||||
case 8: // EvString
|
// );
|
||||||
return tag("string", result._0);
|
// case 8: // EvString
|
||||||
case 9: // EvSymbol
|
// return tag("string", result._0);
|
||||||
return tag("symbol", result._0);
|
// case 9: // EvSymbol
|
||||||
case 10: // EvDate
|
// return tag("symbol", result._0);
|
||||||
return tag("date", result._0);
|
// case 10: // EvDate
|
||||||
case 11: // EvTimeDuration
|
// return tag("date", result._0);
|
||||||
return tag("number", result._0);
|
// case 11: // EvTimeDuration
|
||||||
case 12: // EvDeclaration
|
// return tag("number", result._0);
|
||||||
return tag("lambdaDeclaration", {
|
// case 12: // EvDeclaration
|
||||||
fn: result._0.fn,
|
// return tag("lambdaDeclaration", {
|
||||||
args: result._0.args.map(convertDeclaration),
|
// fn: result._0.fn,
|
||||||
});
|
// args: result._0.args.map(convertDeclaration),
|
||||||
case 13: // EvSymbol
|
// });
|
||||||
return tag("typeIdentifier", result._0);
|
// case 13: // EvSymbol
|
||||||
case 14: // EvModule
|
// return tag("typeIdentifier", result._0);
|
||||||
return tag(
|
// case 14: // EvModule
|
||||||
"module",
|
// return tag(
|
||||||
_.mapValues(result._0, (x) => convertRawToTypescript(x, environment))
|
// "module",
|
||||||
);
|
// _.mapValues(result._0, (x) => convertRawToTypescript(x, environment))
|
||||||
}
|
// );
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
function convertDeclaration(
|
function convertDeclaration(
|
||||||
declarationArg: rescriptDeclarationArg
|
declarationArg: rescriptDeclarationArg
|
||||||
|
|
Loading…
Reference in New Issue
Block a user