@elaraai/east 1.0.4 → 1.0.5

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.
Files changed (57) hide show
  1. package/README.md +3 -2
  2. package/dist/src/ast_to_ir.coerce_to.spec.js +7 -7
  3. package/dist/src/ast_to_ir.coerce_to.spec.js.map +1 -1
  4. package/dist/src/ast_to_ir.d.ts.map +1 -1
  5. package/dist/src/ast_to_ir.js +13 -68
  6. package/dist/src/ast_to_ir.js.map +1 -1
  7. package/dist/src/builtins.js +2 -2
  8. package/dist/src/builtins.js.map +1 -1
  9. package/dist/src/comparison.js +2 -2
  10. package/dist/src/comparison.js.map +1 -1
  11. package/dist/src/compile.d.ts.map +1 -1
  12. package/dist/src/compile.js +10 -14
  13. package/dist/src/compile.js.map +1 -1
  14. package/dist/src/expr/ast.d.ts.map +1 -1
  15. package/dist/src/expr/ast.js +5 -4
  16. package/dist/src/expr/ast.js.map +1 -1
  17. package/dist/src/expr/asyncfunction.d.ts.map +1 -1
  18. package/dist/src/expr/asyncfunction.js +7 -3
  19. package/dist/src/expr/asyncfunction.js.map +1 -1
  20. package/dist/src/expr/block.d.ts.map +1 -1
  21. package/dist/src/expr/block.js +5 -4
  22. package/dist/src/expr/block.js.map +1 -1
  23. package/dist/src/expr/function.d.ts.map +1 -1
  24. package/dist/src/expr/function.js +7 -3
  25. package/dist/src/expr/function.js.map +1 -1
  26. package/dist/src/expr/matrix.d.ts +7 -8
  27. package/dist/src/expr/matrix.d.ts.map +1 -1
  28. package/dist/src/expr/matrix.js +8 -8
  29. package/dist/src/expr/matrix.js.map +1 -1
  30. package/dist/src/expr/vector.d.ts +8 -9
  31. package/dist/src/expr/vector.d.ts.map +1 -1
  32. package/dist/src/expr/vector.js +9 -9
  33. package/dist/src/expr/vector.js.map +1 -1
  34. package/dist/src/index.d.ts +1 -0
  35. package/dist/src/index.d.ts.map +1 -1
  36. package/dist/src/index.js +1 -0
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/src/internal.d.ts +1 -0
  39. package/dist/src/internal.d.ts.map +1 -1
  40. package/dist/src/internal.js +1 -0
  41. package/dist/src/internal.js.map +1 -1
  42. package/dist/src/location.js +2 -2
  43. package/dist/src/location.js.map +1 -1
  44. package/dist/src/serialization/binary-utils.d.ts.map +1 -1
  45. package/dist/src/serialization/binary-utils.js +29 -42
  46. package/dist/src/serialization/binary-utils.js.map +1 -1
  47. package/dist/src/type_diff.d.ts +218 -0
  48. package/dist/src/type_diff.d.ts.map +1 -0
  49. package/dist/src/type_diff.js +434 -0
  50. package/dist/src/type_diff.js.map +1 -0
  51. package/dist/src/types.d.ts +18 -3
  52. package/dist/src/types.d.ts.map +1 -1
  53. package/dist/src/types.js +31 -5
  54. package/dist/src/types.js.map +1 -1
  55. package/dist/src/types.spec.js +14 -1
  56. package/dist/src/types.spec.js.map +1 -1
  57. package/package.json +1 -1
package/README.md CHANGED
@@ -281,8 +281,9 @@ We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for deta
281
281
  - [@elaraai/east-node-io](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, compression
282
282
  - [@elaraai/east-node-cli](https://www.npmjs.com/package/@elaraai/east-node-cli): CLI for running East IR programs in Node.js
283
283
 
284
- - **[East C](https://github.com/elaraai/east-workspace/tree/main/libs/east-c)**: C11 native runtime for executing East IR. Tarballed for `linux-x64` and `linux-arm64`, attached to each GitHub Release.
285
- - `east-c`: Core runtimetype system, IR interpreter, 200+ builtins, serialization (Beast2, JSON, CSV, East text)
284
+ - **[East C](https://github.com/elaraai/east-workspace/tree/main/libs/east-c)**: C11 native runtime for executing East IR. Distributed via npm (launcher + per-platform optional dependencies) and as tarballs on each GitHub Release.
285
+ - [@elaraai/east-c-cli](https://www.npmjs.com/package/@elaraai/east-c-cli): npm launcherinstalls the matching native binary as an optional dependency
286
+ - `east-c`: Core runtime — type system, IR interpreter, builtins, serialization (Beast2, JSON, CSV, East text)
286
287
  - `east-c-std`: Console, FileSystem, Fetch, Crypto, Time, Path, Random
287
288
  - `east-c-cli`: CLI for running East IR programs natively
288
289
 
@@ -97,10 +97,10 @@ describe("coerce_to: identity (isTypeEqual → no-op)", () => {
97
97
  // ─── §2. Invalid widening throws ──────────────────────────────────────────
98
98
  describe("coerce_to: invalid widening throws", () => {
99
99
  it("Integer → String throws", () => {
100
- assert.throws(() => coerce_to(mkValue(IntegerType, 1n), IntegerType, StringType, LOC), /Cannot coerce value/);
100
+ assert.throws(() => coerce_to(mkValue(IntegerType, 1n), IntegerType, StringType, LOC), /East type mismatch/);
101
101
  });
102
102
  it("String → Integer throws", () => {
103
- assert.throws(() => coerce_to(mkValue(StringType, "x"), StringType, IntegerType, LOC), /Cannot coerce value/);
103
+ assert.throws(() => coerce_to(mkValue(StringType, "x"), StringType, IntegerType, LOC), /East type mismatch/);
104
104
  });
105
105
  it("VariantType adding a case that isn't in source is a widening (valid)", () => {
106
106
  const narrow = VariantType({ some: IntegerType });
@@ -113,7 +113,7 @@ describe("coerce_to: invalid widening throws", () => {
113
113
  it("wide → narrow (removing a case the source has) throws", () => {
114
114
  const narrow = VariantType({ some: IntegerType });
115
115
  const wide = VariantType({ some: IntegerType, none: NullType });
116
- assert.throws(() => coerce_to(mkVariable(wide), wide, narrow, LOC), /Cannot coerce value/);
116
+ assert.throws(() => coerce_to(mkVariable(wide), wide, narrow, LOC), /East type mismatch/);
117
117
  });
118
118
  });
119
119
  // ─── §3. Variant rewrite: narrow → wide (OptionType widening) ─────────────
@@ -329,22 +329,22 @@ describe("coerce_to: invariant containers (Array/Set/Dict/Vector/Matrix/Ref)", (
329
329
  it("Array<narrow> !<: Array<wide> — throws on widening attempt", () => {
330
330
  const narrow = ArrayType(VariantType({ some: IntegerType }));
331
331
  const wide = ArrayType(OptionType(IntegerType));
332
- assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /Cannot coerce value/);
332
+ assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /East type mismatch/);
333
333
  });
334
334
  it("Set<narrow> !<: Set<wide> — throws on widening attempt", () => {
335
335
  const narrow = SetType(VariantType({ some: IntegerType }));
336
336
  const wide = SetType(OptionType(IntegerType));
337
- assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /Cannot coerce value/);
337
+ assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /East type mismatch/);
338
338
  });
339
339
  it("Dict<K, narrow> !<: Dict<K, wide> — throws on widening attempt", () => {
340
340
  const narrow = DictType(StringType, VariantType({ some: IntegerType }));
341
341
  const wide = DictType(StringType, OptionType(IntegerType));
342
- assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /Cannot coerce value/);
342
+ assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /East type mismatch/);
343
343
  });
344
344
  it("Ref<narrow> !<: Ref<wide> — throws on widening attempt (invariant)", () => {
345
345
  const narrow = RefType(VariantType({ some: IntegerType }));
346
346
  const wide = RefType(OptionType(IntegerType));
347
- assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /Cannot coerce value/);
347
+ assert.throws(() => coerce_to(mkVariable(narrow), narrow, wide, LOC), /East type mismatch/);
348
348
  });
349
349
  it("Vector/Matrix element types are constrained to scalars so variant widening is unrepresentable", () => {
350
350
  // Vector/Matrix accept only Float/Integer/Boolean elements (enforced at type
@@ -1 +1 @@
1
- {"version":3,"file":"ast_to_ir.coerce_to.spec.js","sourceRoot":"","sources":["../../src/ast_to_ir.coerce_to.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast_to_ir.coerce_to.spec.js","sourceRoot":"","sources":["../../src/ast_to_ir.coerce_to.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ast_to_ir.d.ts","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAuB,KAAK,QAAQ,EAAsJ,MAAM,YAAY,CAAC;AAKpN,0EAA0E;AAC1E,qBAAa,mBAAoB,SAAQ,KAAK;IACzB,eAAe,EAAE,MAAM;gBAAvB,eAAe,EAAE,MAAM;CAG3C;AAED,KAAK,GAAG,GAAG;IACT,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAA;AAGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,EAAE,EACZ,WAAW,EAAE,QAAQ,EACrB,WAAW,EAAE,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,EAAE,CAiEJ;AAGD;;cAEc;AACd,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,GAAmK,GAAG,EAAE,CA05BhN"}
1
+ {"version":3,"file":"ast_to_ir.d.ts","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGvD,OAAO,EAAuB,KAAK,QAAQ,EAAsJ,MAAM,YAAY,CAAC;AAKpN,0EAA0E;AAC1E,qBAAa,mBAAoB,SAAQ,KAAK;IACzB,eAAe,EAAE,MAAM;gBAAvB,eAAe,EAAE,MAAM;CAG3C;AAED,KAAK,GAAG,GAAG;IACT,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAA;AAGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,EAAE,EACZ,WAAW,EAAE,QAAQ,EACrB,WAAW,EAAE,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,EAAE,CA+DJ;AAGD;;cAEc;AACd,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,GAAmK,GAAG,EAAE,CAk0BhN"}
@@ -1,4 +1,5 @@
1
1
  import { toEastTypeValue } from "./type_of_type.js";
2
+ import { typeMismatchError } from "./type_diff.js";
2
3
  import { ArrayType, DictType, FunctionType, getTypeId, isSubtype, isTypeEqual, NeverType, NullType, printType, RefType, SetType, StructType, VariantType, VectorType, MatrixType } from "./types.js";
3
4
  import { variant } from "./containers/variant.js";
4
5
  import { applyTypeParameters, Builtins } from "./builtins.js";
@@ -28,7 +29,7 @@ export function coerce_to(value_ir, source_type, target_type, loc_id, visited) {
28
29
  if (isTypeEqual(source_type, target_type))
29
30
  return value_ir;
30
31
  if (!isSubtype(source_type, target_type)) {
31
- throw new Error(`Cannot coerce value of type ${printType(source_type)} to ${printType(target_type)} at loc_id ${loc_id}`);
32
+ throw typeMismatchError(source_type, target_type, { loc_id });
32
33
  }
33
34
  const sid = getTypeId(source_type);
34
35
  const tid = getTypeId(target_type);
@@ -117,10 +118,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
117
118
  captured: false,
118
119
  });
119
120
  if (!isTypeEqual(ast.value.type, ast.variable.type)) {
120
- if (!isSubtype(ast.value.type, ast.variable.type)) {
121
- throw new Error(`Cannot initialize variable of type ${printType(ast.variable.type)} ` +
122
- `with value of type ${printType(ast.value.type)} at loc_id ${ast.loc_id}`);
123
- }
124
121
  value = coerce_to(value, ast.value.type, ast.variable.type, ast.loc_id);
125
122
  }
126
123
  ctx.n_vars += 1;
@@ -140,10 +137,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
140
137
  }
141
138
  let value = ast_to_ir(ast.value, ctx);
142
139
  if (!isTypeEqual(ast.value.type, ast.variable.type)) {
143
- if (!isSubtype(ast.value.type, ast.variable.type)) {
144
- throw new Error(`Cannot assign value of type ${printType(ast.value.type)} ` +
145
- `to variable of type ${printType(ast.variable.type)} at loc_id ${ast.loc_id}`);
146
- }
147
140
  value = coerce_to(value, ast.value.type, ast.variable.type, ast.loc_id);
148
141
  }
149
142
  return variant("Assign", {
@@ -188,9 +181,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
188
181
  let arg_ir = ast_to_ir(arg, ctx);
189
182
  const expectedType = applyTypeParameters(builtin_def.inputs[i], type_map, [], []);
190
183
  if (arg.type.type !== "Never" && !isTypeEqual(arg.type, expectedType)) {
191
- if (!isSubtype(arg.type, expectedType)) {
192
- throw new Error(`Builtin ${builtin_name} with type parameters [${ast.type_parameters.map(tp => printType(tp)).join(", ")}] argument ${i} of type ${printType(arg.type)} is not compatible with expected type ${printType(expectedType)} at loc_id ${ast.loc_id}`);
193
- }
194
184
  arg_ir = coerce_to(arg_ir, arg.type, expectedType, ast.loc_id);
195
185
  }
196
186
  return arg_ir;
@@ -222,13 +212,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
222
212
  throw new Error(`Struct type does not have field '${name}' at loc_id ${ast.loc_id}`);
223
213
  }
224
214
  if (!isTypeEqual(fieldAst.type, expectedType)) {
225
- if (isSubtype(fieldAst.type, expectedType)) {
226
- value = coerce_to(value, fieldAst.type, expectedType, ast.loc_id);
227
- }
228
- else {
229
- throw new Error(`Cannot assign field '${name}' of type ${printType(ast.type.fields[name])} ` +
230
- `with value of type ${printType(fieldAst.type)} at loc_id ${ast.loc_id}`);
231
- }
215
+ value = coerce_to(value, fieldAst.type, expectedType, ast.loc_id);
232
216
  }
233
217
  return { name, value };
234
218
  }),
@@ -245,14 +229,11 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
245
229
  else if (ast.ast_type === "Variant") {
246
230
  const expectedType = ast.type.cases[ast.case];
247
231
  let value = ast_to_ir(ast.value, ctx);
232
+ if (!expectedType) {
233
+ throw new Error(`Variant type does not have case '${ast.case}' at loc_id ${ast.loc_id}`);
234
+ }
248
235
  if (!isTypeEqual(ast.value.type, expectedType)) {
249
- if (isSubtype(ast.value.type, expectedType)) {
250
- value = coerce_to(value, ast.value.type, expectedType, ast.loc_id);
251
- }
252
- else {
253
- throw new Error(`Cannot assign case '${ast.case}' of type ${printType(expectedType)} ` +
254
- `with value of type ${printType(ast.value.type)} at loc_id ${ast.loc_id}`);
255
- }
236
+ value = coerce_to(value, ast.value.type, expectedType, ast.loc_id);
256
237
  }
257
238
  return variant("Variant", {
258
239
  type: toEastTypeValue(ast.type),
@@ -350,9 +331,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
350
331
  let arg = ast_to_ir(argument, ctx);
351
332
  const expectedType = ast.function.type.inputs[i];
352
333
  if (!isTypeEqual(argument.type, expectedType)) {
353
- if (!isSubtype(argument.type, expectedType)) {
354
- throw new Error(`Argument ${i} of type ${printType(argument.type)} is not compatible with expected type ${printType(expectedType)} at loc_id ${ast.loc_id}`);
355
- }
356
334
  arg = coerce_to(arg, argument.type, expectedType, ast.loc_id);
357
335
  }
358
336
  return arg;
@@ -373,9 +351,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
373
351
  let arg = ast_to_ir(argument, ctx);
374
352
  const expectedType = ast.function.type.inputs[i];
375
353
  if (!isTypeEqual(argument.type, expectedType)) {
376
- if (!isSubtype(argument.type, expectedType)) {
377
- throw new Error(`Argument ${i} of type ${printType(argument.type)} is not compatible with expected type ${printType(expectedType)} at loc_id ${ast.loc_id}`);
378
- }
379
354
  arg = coerce_to(arg, argument.type, expectedType, ast.loc_id);
380
355
  }
381
356
  return arg;
@@ -386,9 +361,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
386
361
  const valueType = ast.type.value;
387
362
  let value = ast_to_ir(ast.value, ctx);
388
363
  if (!isTypeEqual(ast.value.type, valueType)) {
389
- if (!isSubtype(ast.value.type, valueType)) {
390
- throw new Error(`Ref value of type ${printType(ast.value.type)} is not compatible with expected type ${printType(valueType)} at loc_id ${ast.loc_id}`);
391
- }
392
364
  value = coerce_to(value, ast.value.type, valueType, ast.loc_id);
393
365
  }
394
366
  return variant("NewRef", {
@@ -402,12 +374,9 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
402
374
  return variant("NewArray", {
403
375
  type: toEastTypeValue(ast.type),
404
376
  loc_id: ast.loc_id,
405
- values: ast.values.map((v, i) => {
377
+ values: ast.values.map((v) => {
406
378
  let value = ast_to_ir(v, ctx);
407
379
  if (!isTypeEqual(v.type, valueType)) {
408
- if (!isSubtype(v.type, valueType)) {
409
- throw new Error(`Array value at entry ${i} of type ${printType(v.type)} is not compatible with expected type ${printType(valueType)} at loc_id ${ast.loc_id}`);
410
- }
411
380
  value = coerce_to(value, v.type, valueType, ast.loc_id);
412
381
  }
413
382
  return value;
@@ -419,12 +388,9 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
419
388
  return variant("NewSet", {
420
389
  type: toEastTypeValue(ast.type),
421
390
  loc_id: ast.loc_id,
422
- values: ast.values.map((k, i) => {
391
+ values: ast.values.map((k) => {
423
392
  let key = ast_to_ir(k, ctx);
424
393
  if (!isTypeEqual(k.type, keyType)) {
425
- if (!isSubtype(k.type, keyType)) {
426
- throw new Error(`Set key at entry ${i} of type ${printType(k.type)} is not compatible with expected type ${printType(keyType)} at loc_id ${ast.loc_id}`);
427
- }
428
394
  key = coerce_to(key, k.type, keyType, ast.loc_id);
429
395
  }
430
396
  return key;
@@ -437,19 +403,13 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
437
403
  return variant("NewDict", {
438
404
  type: toEastTypeValue(ast.type),
439
405
  loc_id: ast.loc_id,
440
- values: ast.values.map(([k, v], i) => {
406
+ values: ast.values.map(([k, v]) => {
441
407
  let key = ast_to_ir(k, ctx);
442
408
  if (!isTypeEqual(k.type, keyType)) {
443
- if (!isSubtype(k.type, keyType)) {
444
- throw new Error(`Dict key at entry ${i} of type ${printType(k.type)} is not compatible with expected type ${printType(keyType)} at loc_id ${ast.loc_id}`);
445
- }
446
409
  key = coerce_to(key, k.type, keyType, ast.loc_id);
447
410
  }
448
411
  let value = ast_to_ir(v, ctx);
449
412
  if (!isTypeEqual(v.type, valueType)) {
450
- if (!isSubtype(v.type, valueType)) {
451
- throw new Error(`Dict value at entry ${i} of type ${printType(v.type)} is not compatible with expected type ${printType(valueType)} at loc_id ${ast.loc_id}`);
452
- }
453
413
  value = coerce_to(value, v.type, valueType, ast.loc_id);
454
414
  }
455
415
  ;
@@ -475,9 +435,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
475
435
  ctx.n_vars = ctx_branch.n_vars;
476
436
  ctx.n_loops = ctx_branch.n_loops;
477
437
  if (branch.body.type.type !== "Never" && !isTypeEqual(branch.body.type, ast.type)) {
478
- if (!isSubtype(branch.body.type, ast.type)) {
479
- throw new Error(`If branch body of type ${printType(branch.body.type)} is not compatible with expected type ${printType(ast.type)} at loc_id ${ast.loc_id}`);
480
- }
481
438
  branch_body = coerce_to(branch_body, branch.body.type, ast.type, ast.loc_id);
482
439
  }
483
440
  return { predicate, body: branch_body };
@@ -497,9 +454,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
497
454
  ctx.n_vars = ctx_else.n_vars;
498
455
  ctx.n_loops = ctx_else.n_loops;
499
456
  if (ast.else_body.type.type !== "Never" && !isTypeEqual(ast.else_body.type, ast.type)) {
500
- if (!isSubtype(ast.else_body.type, ast.type)) {
501
- throw new Error(`Else branch body of type ${printType(ast.else_body.type)} is not compatible with expected type ${printType(ast.type)} at loc_id ${ast.loc_id}`);
502
- }
503
457
  else_body = coerce_to(else_body, ast.else_body.type, ast.type, ast.loc_id);
504
458
  }
505
459
  return variant("IfElse", {
@@ -826,9 +780,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
826
780
  ctx.n_vars = ctx2.n_vars;
827
781
  ctx.n_loops = ctx2.n_loops;
828
782
  if (v.body.type.type !== "Never" && !isTypeEqual(v.body.type, ast.type)) {
829
- if (!isSubtype(v.body.type, ast.type)) {
830
- throw new Error(`Match case '${k}' body of type ${printType(v.body.type)} is not compatible with expected type ${printType(ast.type)} at loc_id ${ast.loc_id}`);
831
- }
832
783
  body = coerce_to(body, v.body.type, ast.type, ast.loc_id);
833
784
  }
834
785
  cases.push({ case: k, variable, body });
@@ -892,7 +843,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
892
843
  }
893
844
  else if (ast.ast_type === "Return") {
894
845
  if (!isSubtype(ast.value.type, ctx.output)) {
895
- throw new Error(`Attempted to return value of type ${printType(ast.value.type)} at loc_id ${ast.loc_id}, but function expected return type of ${printType(ctx.output)}`);
846
+ throw typeMismatchError(ast.value.type, ctx.output, { loc_id: ast.loc_id });
896
847
  }
897
848
  return variant("Return", {
898
849
  type: variant("Never", null),
@@ -905,12 +856,9 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
905
856
  return variant("NewVector", {
906
857
  type: toEastTypeValue(ast.type),
907
858
  loc_id: ast.loc_id,
908
- values: ast.values.map((v, i) => {
859
+ values: ast.values.map((v) => {
909
860
  let value = ast_to_ir(v, ctx);
910
861
  if (!isTypeEqual(v.type, elementType)) {
911
- if (!isSubtype(v.type, elementType)) {
912
- throw new Error(`Vector value at entry ${i} of type ${printType(v.type)} is not compatible with expected type ${printType(elementType)} at loc_id ${ast.loc_id}`);
913
- }
914
862
  value = coerce_to(value, v.type, elementType, ast.loc_id);
915
863
  }
916
864
  return value;
@@ -924,12 +872,9 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
924
872
  loc_id: ast.loc_id,
925
873
  rows: BigInt(ast.rows),
926
874
  cols: BigInt(ast.cols),
927
- values: ast.values.map((v, i) => {
875
+ values: ast.values.map((v) => {
928
876
  let value = ast_to_ir(v, ctx);
929
877
  if (!isTypeEqual(v.type, elementType)) {
930
- if (!isSubtype(v.type, elementType)) {
931
- throw new Error(`Matrix value at entry ${i} of type ${printType(v.type)} is not compatible with expected type ${printType(elementType)} at loc_id ${ast.loc_id}`);
932
- }
933
878
  value = coerce_to(value, v.type, elementType, ast.loc_id);
934
879
  }
935
880
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"ast_to_ir.js","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast_to_ir.js","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"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"}
@@ -1042,7 +1042,7 @@ export const Builtins = {
1042
1042
  VectorSet: {
1043
1043
  type_parameters: ["T"],
1044
1044
  inputs: [VectorType("T"), IntegerType, "T"],
1045
- output: NullType,
1045
+ output: VectorType("T"),
1046
1046
  },
1047
1047
  VectorSlice: {
1048
1048
  type_parameters: ["T"],
@@ -1113,7 +1113,7 @@ export const Builtins = {
1113
1113
  MatrixSet: {
1114
1114
  type_parameters: ["T"],
1115
1115
  inputs: [MatrixType("T"), IntegerType, IntegerType, "T"],
1116
- output: NullType,
1116
+ output: MatrixType("T"),
1117
1117
  },
1118
1118
  MatrixGetRow: {
1119
1119
  type_parameters: ["T"],