semantifold 0.12.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/build/src/backends/effects.js +5 -2
- package/build/src/backends/java.js +33 -14
- package/build/src/backends/javascript.js +83 -18
- package/build/src/backends/php.d.ts.map +1 -1
- package/build/src/backends/php.js +88 -16
- package/build/src/backends/ruby.js +37 -12
- package/build/src/backends/scalars.js +2 -2
- package/build/src/backends/shared.d.ts +2 -1
- package/build/src/backends/shared.d.ts.map +1 -1
- package/build/src/backends/shared.js +299 -42
- package/build/src/backends/typescript.js +83 -18
- package/build/src/backends/writer.d.ts +18 -4
- package/build/src/backends/writer.d.ts.map +1 -1
- package/build/src/backends/writer.js +40 -4
- package/build/src/frontends/java.d.ts +9 -1
- package/build/src/frontends/java.d.ts.map +1 -1
- package/build/src/frontends/java.js +90 -43
- package/build/src/frontends/javascript-typescript.d.ts +3 -1
- package/build/src/frontends/javascript-typescript.d.ts.map +1 -1
- package/build/src/frontends/javascript-typescript.js +133 -52
- package/build/src/frontends/php.d.ts +13 -1
- package/build/src/frontends/php.d.ts.map +1 -1
- package/build/src/frontends/php.js +226 -59
- package/build/src/frontends/ruby.d.ts +4 -1
- package/build/src/frontends/ruby.d.ts.map +1 -1
- package/build/src/frontends/ruby.js +113 -37
- package/build/src/frontends/types.d.ts +9 -2
- package/build/src/frontends/types.d.ts.map +1 -1
- package/build/src/frontends/types.js +26 -9
- package/build/src/language-registry.d.ts.map +1 -1
- package/build/src/language-registry.js +14 -6
- package/build/src/mapping.d.ts.map +1 -1
- package/build/src/mapping.js +4 -2
- package/build/src/semantic/effects.d.ts.map +1 -1
- package/build/src/semantic/effects.js +20 -6
- package/build/src/semantic/lifetime.js +28 -4
- package/build/src/semantic/provenance.d.ts.map +1 -1
- package/build/src/semantic/provenance.js +61 -9
- package/build/src/semantic/types.d.ts +214 -23
- package/build/src/semantic/types.d.ts.map +1 -1
- package/build/src/semantic/types.js +58 -11
- package/build/src/semantic/validate.d.ts +31 -2
- package/build/src/semantic/validate.d.ts.map +1 -1
- package/build/src/semantic/validate.js +450 -60
- package/docs/adr/20261026-typed-error-handling-extension.md +55 -0
- package/docs/adr-bounded-subtyping.md +180 -0
- package/docs/adr-numeric-tower.md +156 -0
- package/docs/architecture.md +1 -1
- package/docs/language-support.md +8 -8
- package/docs/testing.md +5 -3
- package/package.json +1 -1
- package/src/backends/effects.js +3 -1
- package/src/backends/java.js +33 -14
- package/src/backends/javascript.js +83 -18
- package/src/backends/php.js +89 -16
- package/src/backends/ruby.js +36 -12
- package/src/backends/scalars.js +1 -1
- package/src/backends/shared.js +298 -47
- package/src/backends/typescript.js +83 -18
- package/src/backends/writer.js +41 -3
- package/src/frontends/java.js +95 -43
- package/src/frontends/javascript-typescript.js +145 -53
- package/src/frontends/php.js +243 -58
- package/src/frontends/ruby.js +117 -35
- package/src/frontends/types.js +26 -8
- package/src/language-registry.js +13 -5
- package/src/mapping.js +3 -1
- package/src/semantic/effects.js +18 -5
- package/src/semantic/lifetime.js +29 -3
- package/src/semantic/provenance.js +60 -14
- package/src/semantic/types.js +62 -10
- package/src/semantic/validate.js +481 -61
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
export type RecordRegistry = Map<string, import("./types.js").RecordDeclaration>;
|
|
2
2
|
export type ClassRegistry = Map<string, import("./types.js").ClassDeclaration>;
|
|
3
|
+
export type InterfaceRegistry = Map<string, import("./types.js").InterfaceDeclaration>;
|
|
3
4
|
export type ErrorRegistry = Map<string, import("./types.js").ErrorDeclaration>;
|
|
5
|
+
export type InterfaceContractMember = {
|
|
6
|
+
/**
|
|
7
|
+
* - Declaring interface identity.
|
|
8
|
+
*/
|
|
9
|
+
interfaceId: string;
|
|
10
|
+
/**
|
|
11
|
+
* - Declaring interface method identity.
|
|
12
|
+
*/
|
|
13
|
+
methodId: string;
|
|
14
|
+
/**
|
|
15
|
+
* - Contract method name.
|
|
16
|
+
*/
|
|
17
|
+
name: string;
|
|
18
|
+
/**
|
|
19
|
+
* - Source-ordered contract parameters.
|
|
20
|
+
*/
|
|
21
|
+
parameters: import("./types.js").Parameter[];
|
|
22
|
+
/**
|
|
23
|
+
* - Contract return type.
|
|
24
|
+
*/
|
|
25
|
+
returnType: import("./types.js").SemanticFunctionReturnType;
|
|
26
|
+
/**
|
|
27
|
+
* - Declaring method source location.
|
|
28
|
+
*/
|
|
29
|
+
location: import("./types.js").SourceLocation;
|
|
30
|
+
};
|
|
4
31
|
export type Binding = {
|
|
5
32
|
/**
|
|
6
33
|
* - Whether assignment is allowed.
|
|
@@ -90,12 +117,13 @@ export type SemanticFail = (code: string, detail: string, location: import("./ty
|
|
|
90
117
|
* Enforces the coherent release-candidate semantic subset after adaptation.
|
|
91
118
|
* @param {import("./types.js").SemanticModule} module - Adapted semantic module.
|
|
92
119
|
* @param {import("./types.js").SemanticLanguage} language - Source language.
|
|
93
|
-
* @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Program imports visible during validation.
|
|
120
|
+
* @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, interfaces?: Map<string, import("./types.js").InterfaceDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Program imports visible during validation.
|
|
94
121
|
* @returns {import("./types.js").SemanticModule} Validated module.
|
|
95
122
|
*/
|
|
96
123
|
export declare function validateParsedModule(module: import("./types.js").SemanticModule, language: import("./types.js").SemanticLanguage, visible?: {
|
|
97
124
|
classes?: Map<string, import("./types.js").ClassDeclaration>;
|
|
98
125
|
functions?: Map<string, import("./types.js").FunctionDeclaration>;
|
|
126
|
+
interfaces?: Map<string, import("./types.js").InterfaceDeclaration>;
|
|
99
127
|
records?: Map<string, import("./types.js").RecordDeclaration>;
|
|
100
128
|
errors?: Map<string, import("./types.js").ErrorDeclaration>;
|
|
101
129
|
callEffects?: Map<string, Set<string>>;
|
|
@@ -104,12 +132,13 @@ export declare function validateParsedModule(module: import("./types.js").Semant
|
|
|
104
132
|
* Validates scalar types and bindings for a caller-supplied semantic module before emission.
|
|
105
133
|
* @param {import("./types.js").SemanticModule} module - Semantic module.
|
|
106
134
|
* @param {import("./types.js").BackendLanguage} language - Backend language or binary target.
|
|
107
|
-
* @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Resolved program imports.
|
|
135
|
+
* @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, interfaces?: Map<string, import("./types.js").InterfaceDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Resolved program imports.
|
|
108
136
|
* @returns {void}
|
|
109
137
|
*/
|
|
110
138
|
export declare function validateBackendTypes(module: import("./types.js").SemanticModule, language: import("./types.js").BackendLanguage, visible?: {
|
|
111
139
|
classes?: Map<string, import("./types.js").ClassDeclaration>;
|
|
112
140
|
functions?: Map<string, import("./types.js").FunctionDeclaration>;
|
|
141
|
+
interfaces?: Map<string, import("./types.js").InterfaceDeclaration>;
|
|
113
142
|
records?: Map<string, import("./types.js").RecordDeclaration>;
|
|
114
143
|
errors?: Map<string, import("./types.js").ErrorDeclaration>;
|
|
115
144
|
callEffects?: Map<string, Set<string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/semantic/validate.js"],"names":[],"mappings":"AAYI,YAA+D,cAAc,GAAnE,GAAG,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,iBAAiB,CAAC,CAAgB;AAC7E,YAA8D,aAAa,GAAjE,GAAG,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,gBAAgB,CAAC,CAAe;AAC3E,YAA8D,aAAa,GAAjE,GAAG,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,gBAAgB,CAAC,CAAe;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/semantic/validate.js"],"names":[],"mappings":"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"}
|