@shd101wyy/yo 0.0.13 → 0.0.14

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 (222) hide show
  1. package/README.md +4 -1
  2. package/out/cjs/index.cjs +5598 -45
  3. package/out/cjs/yo-cli.cjs +755 -764
  4. package/out/esm/index.mjs +5595 -42
  5. package/out/types/src/codegen/async/state-code-gen.d.ts +3 -3
  6. package/out/types/src/codegen/async/state-machine.d.ts +4 -4
  7. package/out/types/src/codegen/c/collection.d.ts +1 -1
  8. package/out/types/src/codegen/codegen-c.d.ts +1 -1
  9. package/out/types/src/codegen/constants.d.ts +1 -1
  10. package/out/types/src/codegen/exprs/{and_or.d.ts → and-or.d.ts} +2 -2
  11. package/out/types/src/codegen/exprs/{array_fns.d.ts → array-fns.d.ts} +2 -2
  12. package/out/types/src/codegen/exprs/assignment.d.ts +2 -2
  13. package/out/types/src/codegen/exprs/async.d.ts +2 -2
  14. package/out/types/src/codegen/exprs/atom.d.ts +2 -2
  15. package/out/types/src/codegen/exprs/await.d.ts +2 -2
  16. package/out/types/src/codegen/exprs/begin.d.ts +2 -2
  17. package/out/types/src/codegen/exprs/binding.d.ts +2 -2
  18. package/out/types/src/codegen/exprs/closures.d.ts +3 -3
  19. package/out/types/src/codegen/exprs/comptime-value.d.ts +4 -0
  20. package/out/types/src/codegen/exprs/cond.d.ts +2 -2
  21. package/out/types/src/codegen/exprs/consume.d.ts +2 -2
  22. package/out/types/src/codegen/exprs/{drop_dup.d.ts → drop-dup.d.ts} +4 -4
  23. package/out/types/src/codegen/exprs/dyn.d.ts +2 -2
  24. package/out/types/src/codegen/exprs/expr.d.ts +2 -2
  25. package/out/types/src/codegen/exprs/gc.d.ts +2 -2
  26. package/out/types/src/codegen/exprs/generation.d.ts +2 -2
  27. package/out/types/src/codegen/exprs/{initialization_assignment.d.ts → initialization-assignment.d.ts} +2 -2
  28. package/out/types/src/codegen/exprs/{inline_fns.d.ts → inline-fns.d.ts} +2 -2
  29. package/out/types/src/codegen/exprs/iso.d.ts +2 -2
  30. package/out/types/src/codegen/exprs/match.d.ts +2 -2
  31. package/out/types/src/codegen/exprs/open.d.ts +2 -2
  32. package/out/types/src/codegen/exprs/{other_fn_call.d.ts → other-fn-call.d.ts} +2 -2
  33. package/out/types/src/codegen/exprs/panic.d.ts +2 -2
  34. package/out/types/src/codegen/exprs/parallelism.d.ts +2 -2
  35. package/out/types/src/codegen/exprs/{property_access.d.ts → property-access.d.ts} +2 -2
  36. package/out/types/src/codegen/exprs/{ptr_fns.d.ts → ptr-fns.d.ts} +2 -2
  37. package/out/types/src/codegen/exprs/{rc_fns.d.ts → rc-fns.d.ts} +2 -2
  38. package/out/types/src/codegen/exprs/recur.d.ts +2 -2
  39. package/out/types/src/codegen/exprs/return.d.ts +2 -2
  40. package/out/types/src/codegen/exprs/sizeof.d.ts +2 -2
  41. package/out/types/src/codegen/exprs/{tuple_fn.d.ts → tuple-fn.d.ts} +2 -2
  42. package/out/types/src/codegen/exprs/while.d.ts +2 -2
  43. package/out/types/src/codegen/functions/collection.d.ts +4 -3
  44. package/out/types/src/codegen/functions/context.d.ts +6 -6
  45. package/out/types/src/codegen/functions/declarations.d.ts +4 -4
  46. package/out/types/src/codegen/functions/dyn.d.ts +1 -1
  47. package/out/types/src/codegen/functions/generation.d.ts +5 -5
  48. package/out/types/src/codegen/types/collection.d.ts +4 -4
  49. package/out/types/src/codegen/types/dyn.d.ts +2 -2
  50. package/out/types/src/codegen/types/generation.d.ts +2 -2
  51. package/out/types/src/codegen/utils/fixup.d.ts +1 -1
  52. package/out/types/src/codegen/utils/index.d.ts +6 -6
  53. package/out/types/src/env.d.ts +34 -5
  54. package/out/types/src/error.d.ts +1 -1
  55. package/out/types/src/evaluator/async/await-analysis-types.d.ts +1 -1
  56. package/out/types/src/evaluator/async/await-analysis.d.ts +1 -1
  57. package/out/types/src/evaluator/builtins/alignof.d.ts +3 -3
  58. package/out/types/src/evaluator/builtins/{and_or.d.ts → and-or.d.ts} +3 -3
  59. package/out/types/src/evaluator/builtins/{array_fns.d.ts → array-fns.d.ts} +3 -3
  60. package/out/types/src/evaluator/builtins/as.d.ts +3 -3
  61. package/out/types/src/evaluator/builtins/{async_fns.d.ts → async-fns.d.ts} +3 -3
  62. package/out/types/src/evaluator/builtins/comptime-assert.d.ts +8 -0
  63. package/out/types/src/evaluator/builtins/comptime-bool-fns.d.ts +8 -0
  64. package/out/types/src/evaluator/builtins/comptime-expect-error.d.ts +8 -0
  65. package/out/types/src/evaluator/builtins/comptime-fn.d.ts +8 -0
  66. package/out/types/src/evaluator/builtins/comptime-list-fns.d.ts +33 -0
  67. package/out/types/src/evaluator/builtins/comptime-numeric-fns.d.ts +8 -0
  68. package/out/types/src/evaluator/builtins/comptime-print.d.ts +8 -0
  69. package/out/types/src/evaluator/builtins/comptime-string-fns.d.ts +8 -0
  70. package/out/types/src/evaluator/builtins/consume.d.ts +3 -3
  71. package/out/types/src/evaluator/builtins/drop.d.ts +3 -3
  72. package/out/types/src/evaluator/builtins/dup.d.ts +3 -3
  73. package/out/types/src/evaluator/builtins/{expr_fns.d.ts → expr-fns.d.ts} +3 -3
  74. package/out/types/src/evaluator/builtins/{future_fns.d.ts → future-fns.d.ts} +3 -3
  75. package/out/types/src/evaluator/builtins/gc.d.ts +3 -3
  76. package/out/types/src/evaluator/builtins/gensym.d.ts +3 -3
  77. package/out/types/src/evaluator/builtins/{impl_constraint.d.ts → impl-constraint.d.ts} +3 -3
  78. package/out/types/src/evaluator/builtins/{macro_expand.d.ts → macro-expand.d.ts} +3 -3
  79. package/out/types/src/evaluator/builtins/panic.d.ts +3 -3
  80. package/out/types/src/evaluator/builtins/process.d.ts +3 -3
  81. package/out/types/src/evaluator/builtins/{ptr_fns.d.ts → ptr-fns.d.ts} +3 -3
  82. package/out/types/src/evaluator/builtins/quote.d.ts +3 -3
  83. package/out/types/src/evaluator/builtins/{rc_fns.d.ts → rc-fns.d.ts} +3 -3
  84. package/out/types/src/evaluator/builtins/rc.d.ts +3 -3
  85. package/out/types/src/evaluator/builtins/sizeof.d.ts +3 -3
  86. package/out/types/src/evaluator/builtins/the.d.ts +3 -3
  87. package/out/types/src/evaluator/builtins/{type_fns.d.ts → type-fns.d.ts} +3 -3
  88. package/out/types/src/evaluator/builtins/{va_start.d.ts → va-start.d.ts} +3 -3
  89. package/out/types/src/evaluator/builtins/{var_fns.d.ts → var-fns.d.ts} +3 -3
  90. package/out/types/src/evaluator/calls/{array_type.d.ts → array-type.d.ts} +4 -4
  91. package/out/types/src/evaluator/calls/array.d.ts +5 -5
  92. package/out/types/src/evaluator/calls/{closure_type.d.ts → closure-type.d.ts} +4 -4
  93. package/out/types/src/evaluator/calls/comptime-fn.d.ts +19 -0
  94. package/out/types/src/evaluator/calls/comptime-list-type.d.ts +11 -0
  95. package/out/types/src/evaluator/calls/{function_type.d.ts → function-type.d.ts} +5 -5
  96. package/out/types/src/evaluator/calls/function.d.ts +6 -6
  97. package/out/types/src/evaluator/calls/helper.d.ts +6 -6
  98. package/out/types/src/evaluator/calls/iso.d.ts +4 -4
  99. package/out/types/src/evaluator/calls/{module_type.d.ts → module-type.d.ts} +4 -4
  100. package/out/types/src/evaluator/calls/{numeric_type.d.ts → numeric-type.d.ts} +4 -4
  101. package/out/types/src/evaluator/calls/{pointer_type.d.ts → pointer-type.d.ts} +4 -4
  102. package/out/types/src/evaluator/calls/pointer.d.ts +3 -3
  103. package/out/types/src/evaluator/calls/{trait_type.d.ts → trait-type.d.ts} +4 -4
  104. package/out/types/src/evaluator/calls/type.d.ts +4 -4
  105. package/out/types/src/evaluator/context.d.ts +6 -6
  106. package/out/types/src/evaluator/ctfe/ctfe-analysis.d.ts +5 -5
  107. package/out/types/src/evaluator/exprs/_expr.d.ts +3 -3
  108. package/out/types/src/evaluator/exprs/assignment.d.ts +3 -3
  109. package/out/types/src/evaluator/exprs/begin.d.ts +3 -3
  110. package/out/types/src/evaluator/exprs/binding.d.ts +3 -3
  111. package/out/types/src/evaluator/exprs/{c_include.d.ts → c-include.d.ts} +3 -3
  112. package/out/types/src/evaluator/exprs/cond.d.ts +3 -3
  113. package/out/types/src/evaluator/exprs/{destructuring_assignment.d.ts → destructuring-assignment.d.ts} +5 -5
  114. package/out/types/src/evaluator/exprs/expr.d.ts +3 -3
  115. package/out/types/src/evaluator/exprs/extern.d.ts +3 -3
  116. package/out/types/src/evaluator/exprs/{identifer_and_operator.d.ts → identifer-and-operator.d.ts} +3 -3
  117. package/out/types/src/evaluator/exprs/import.d.ts +3 -3
  118. package/out/types/src/evaluator/exprs/{initialization_assignment.d.ts → initialization-assignment.d.ts} +3 -3
  119. package/out/types/src/evaluator/exprs/match.d.ts +3 -3
  120. package/out/types/src/evaluator/exprs/open.d.ts +3 -3
  121. package/out/types/src/evaluator/exprs/{property_access.d.ts → property-access.d.ts} +3 -3
  122. package/out/types/src/evaluator/exprs/recur.d.ts +3 -3
  123. package/out/types/src/evaluator/exprs/runtime.d.ts +3 -3
  124. package/out/types/src/evaluator/exprs/subtype-of.d.ts +8 -0
  125. package/out/types/src/evaluator/exprs/test.d.ts +3 -3
  126. package/out/types/src/evaluator/exprs/typeof.d.ts +3 -3
  127. package/out/types/src/evaluator/exprs/while.d.ts +3 -3
  128. package/out/types/src/evaluator/index.d.ts +4 -4
  129. package/out/types/src/evaluator/trait-checking.d.ts +31 -0
  130. package/out/types/src/evaluator/types/array.d.ts +3 -3
  131. package/out/types/src/evaluator/types/closure.d.ts +3 -3
  132. package/out/types/src/evaluator/types/comptime-list.d.ts +8 -0
  133. package/out/types/src/evaluator/types/{concrete_trait.d.ts → concrete-trait.d.ts} +3 -3
  134. package/out/types/src/evaluator/types/dyn.d.ts +3 -3
  135. package/out/types/src/evaluator/types/enum.d.ts +3 -3
  136. package/out/types/src/evaluator/types/{expr_synthesizer.d.ts → expr-synthesizer.d.ts} +4 -4
  137. package/out/types/src/evaluator/types/field.d.ts +4 -4
  138. package/out/types/src/evaluator/types/{fn_trait.d.ts → fn-trait.d.ts} +3 -3
  139. package/out/types/src/evaluator/types/function.d.ts +16 -10
  140. package/out/types/src/evaluator/types/{future_trait.d.ts → future-trait.d.ts} +3 -3
  141. package/out/types/src/evaluator/types/module.d.ts +4 -4
  142. package/out/types/src/evaluator/types/newtype.d.ts +3 -3
  143. package/out/types/src/evaluator/types/object.d.ts +3 -3
  144. package/out/types/src/evaluator/types/slice.d.ts +3 -3
  145. package/out/types/src/evaluator/types/struct.d.ts +3 -3
  146. package/out/types/src/evaluator/types/synthesizer.d.ts +2 -2
  147. package/out/types/src/evaluator/types/trait.d.ts +4 -4
  148. package/out/types/src/evaluator/types/tuple.d.ts +4 -4
  149. package/out/types/src/evaluator/types/union.d.ts +3 -3
  150. package/out/types/src/evaluator/types/utils.d.ts +84 -5
  151. package/out/types/src/evaluator/types/validation.d.ts +2 -2
  152. package/out/types/src/evaluator/utils/closure.d.ts +7 -7
  153. package/out/types/src/evaluator/utils.d.ts +2 -2
  154. package/out/types/src/evaluator/values/{anonymous_function.d.ts → anonymous-function.d.ts} +3 -3
  155. package/out/types/src/evaluator/values/{anonymous_module.d.ts → anonymous-module.d.ts} +5 -5
  156. package/out/types/src/evaluator/values/{anonymous_struct.d.ts → anonymous-struct.d.ts} +3 -3
  157. package/out/types/src/evaluator/values/array.d.ts +3 -3
  158. package/out/types/src/evaluator/values/boolean.d.ts +2 -2
  159. package/out/types/src/evaluator/values/char.d.ts +2 -2
  160. package/out/types/src/evaluator/values/{clone_value.d.ts → clone-value.d.ts} +1 -1
  161. package/out/types/src/evaluator/values/comptime-list.d.ts +8 -0
  162. package/out/types/src/evaluator/values/dyn.d.ts +3 -3
  163. package/out/types/src/evaluator/values/float.d.ts +3 -3
  164. package/out/types/src/evaluator/values/impl.d.ts +5 -5
  165. package/out/types/src/evaluator/values/integer.d.ts +3 -3
  166. package/out/types/src/evaluator/values/string.d.ts +2 -2
  167. package/out/types/src/evaluator/values/tuple.d.ts +5 -5
  168. package/out/types/src/expr.d.ts +283 -283
  169. package/out/types/src/function-value.d.ts +6 -6
  170. package/out/types/src/index.d.ts +3 -0
  171. package/out/types/src/lexer.d.ts +1 -1
  172. package/out/types/src/module-manager.d.ts +1 -1
  173. package/out/types/src/parser.d.ts +2 -2
  174. package/out/types/src/test-runner.d.ts +1 -1
  175. package/out/types/src/type-value.d.ts +1 -1
  176. package/out/types/src/types/compatibility.d.ts +2 -2
  177. package/out/types/src/types/creators.d.ts +29 -16
  178. package/out/types/src/types/definitions.d.ts +29 -26
  179. package/out/types/src/types/env-lookup.d.ts +4 -0
  180. package/out/types/src/types/guards.d.ts +6 -6
  181. package/out/types/src/types/hierarchy.d.ts +2 -2
  182. package/out/types/src/types/tags.d.ts +4 -4
  183. package/out/types/src/types/utils.d.ts +13 -38
  184. package/out/types/src/unit-value.d.ts +1 -1
  185. package/out/types/src/value-tag.d.ts +4 -4
  186. package/out/types/src/value.d.ts +32 -26
  187. package/out/types/tsconfig.tsbuildinfo +1 -1
  188. package/package.json +3 -1
  189. package/std/allocator.yo +5 -5
  190. package/std/collections/array_list.yo +394 -390
  191. package/std/collections/hash_map.yo +411 -406
  192. package/std/collections/hash_set.yo +646 -642
  193. package/std/collections/linked_list.yo +347 -341
  194. package/std/io.yo +55 -53
  195. package/std/path.yo +17 -16
  196. package/std/prelude.yo +1587 -1455
  197. package/std/string/rune.yo +25 -24
  198. package/std/string/string.yo +46 -43
  199. package/std/sync.yo +50 -30
  200. package/std/thread.yo +6 -5
  201. package/std/time.yo +1 -1
  202. package/out/types/src/codegen/exprs/compt_value.d.ts +0 -4
  203. package/out/types/src/codegen/types/index.d.ts +0 -3
  204. package/out/types/src/codegen/values/index.d.ts +0 -1
  205. package/out/types/src/evaluator/builtins/compt_assert.d.ts +0 -8
  206. package/out/types/src/evaluator/builtins/compt_boolean_fns.d.ts +0 -8
  207. package/out/types/src/evaluator/builtins/compt_expect_error.d.ts +0 -8
  208. package/out/types/src/evaluator/builtins/compt_fn.d.ts +0 -8
  209. package/out/types/src/evaluator/builtins/compt_list_fns.d.ts +0 -33
  210. package/out/types/src/evaluator/builtins/compt_numeric_fns.d.ts +0 -8
  211. package/out/types/src/evaluator/builtins/compt_print.d.ts +0 -8
  212. package/out/types/src/evaluator/builtins/compt_string_fns.d.ts +0 -8
  213. package/out/types/src/evaluator/calls/compt_function.d.ts +0 -19
  214. package/out/types/src/evaluator/calls/compt_list_type.d.ts +0 -11
  215. package/out/types/src/evaluator/exprs/subtype_of.d.ts +0 -21
  216. package/out/types/src/evaluator/types/compt_list.d.ts +0 -8
  217. package/out/types/src/evaluator/values/anonymous_trait.d.ts +0 -17
  218. package/out/types/src/evaluator/values/compt_list.d.ts +0 -8
  219. package/out/types/src/types/constants.d.ts +0 -5
  220. package/out/types/src/types/index.d.ts +0 -8
  221. package/std/allocators/c_allocator.yo +0 -118
  222. package/std/index.yo +0 -12
@@ -1,6 +1,6 @@
1
- import { AwaitPoint } from "../../evaluator/async/await-analysis";
2
- import { Expr } from "../../expr";
3
- import { FunctionGenerationContext } from "../functions/context";
1
+ import type { AwaitPoint } from "../../evaluator/async/await-analysis";
2
+ import { type Expr } from "../../expr";
3
+ import type { FunctionGenerationContext } from "../functions/context";
4
4
  export interface StateSegment {
5
5
  stateNumber: number;
6
6
  expressions: Expr[];
@@ -1,7 +1,7 @@
1
- import { AwaitAnalysisResult, AwaitPoint } from "../../evaluator/async/await-analysis";
2
- import { Expr } from "../../expr";
3
- import { DynType, SomeType, StructType } from "../../types";
4
- import { FunctionGenerationContext } from "../functions/context";
1
+ import type { AwaitAnalysisResult, AwaitPoint } from "../../evaluator/async/await-analysis";
2
+ import { type Expr } from "../../expr";
3
+ import type { DynType, SomeType, StructType } from "../../types/definitions";
4
+ import type { FunctionGenerationContext } from "../functions/context";
5
5
  export declare function getFutureFieldName(awaitPoint: AwaitPoint, analysis: AwaitAnalysisResult): string;
6
6
  export interface StateMachineInfo {
7
7
  structName: string;
@@ -1,3 +1,3 @@
1
- import { CodeGenContext } from "../utils";
1
+ import type { CodeGenContext } from "../utils";
2
2
  export declare function collectCIncludes(context: CodeGenContext): void;
3
3
  export declare function emitCIncludes(context: CodeGenContext): void;
@@ -1,4 +1,4 @@
1
- import { ModuleValue } from "../value";
1
+ import type { ModuleValue } from "../value";
2
2
  export declare class CodeGeneratorC {
3
3
  private emitter;
4
4
  constructor();
@@ -1,3 +1,3 @@
1
- import { TypeTag } from "../types";
1
+ import { TypeTag } from "../types/tags";
2
2
  export declare const BuiltinYoInlineFunctions: string[];
3
3
  export declare const PrimitiveTypeTags: Set<TypeTag>;
@@ -1,4 +1,4 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import type { CodeGenContext } from "../utils";
3
3
  export declare function generateOpAnd(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
4
4
  export declare function generateOpOr(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,4 +1,4 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateAnonymousArray(expr: FnCallExpr, indent: string, context: CodeGenContext): string | undefined;
4
4
  export declare function generateYoArrayFill(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateAssignment(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,5 +1,5 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { FunctionGenerationContext } from "../functions/context";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import type { FunctionGenerationContext } from "../functions/context";
3
3
  export declare function generateAsyncBlock(expr: FnCallExpr, indent: string, context: FunctionGenerationContext): string;
4
4
  export declare function generateDeferredAsyncBlocks(context: FunctionGenerationContext): void;
5
5
  export declare function preRegisterAsyncBlockTypes(context: FunctionGenerationContext): void;
@@ -1,3 +1,3 @@
1
- import { AtomExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { AtomExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateAtom(expr: AtomExpr, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import type { CodeGenContext } from "../utils";
3
3
  export declare function generateAwait(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateBegin(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateBinding(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,6 +1,6 @@
1
- import { Environment } from "../../env";
2
- import { FnCallExpr } from "../../expr";
3
- import { CodeGenContext } from "../utils";
1
+ import { type Environment } from "../../env";
2
+ import { type FnCallExpr } from "../../expr";
3
+ import { type CodeGenContext } from "../utils";
4
4
  export declare function checkVariableIsClosureCaptured(variableName: string, env: Environment, closureCaptureFrameLevel: number): boolean;
5
5
  export declare function isClosureConstruction(expr: FnCallExpr): boolean;
6
6
  export declare function generateClosureConstruction(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -0,0 +1,4 @@
1
+ import type { Expr } from "../../expr";
2
+ import { type Value } from "../../value";
3
+ import { type CodeGenContext } from "../utils";
4
+ export declare function generateComptimeValue(value: Value, context: CodeGenContext, _sourceExpr?: Expr): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateCondExpression(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import type { CodeGenContext } from "../utils";
3
3
  export declare function generateConsume(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,7 +1,7 @@
1
- import { Expr } from "../../expr";
2
- import { Type } from "../../types";
3
- import { FunctionGenerationContext } from "../functions/context";
4
- import { CodeGenContext } from "../utils";
1
+ import { type Expr } from "../../expr";
2
+ import type { Type } from "../../types/definitions";
3
+ import type { FunctionGenerationContext } from "../functions/context";
4
+ import { type CodeGenContext } from "../utils";
5
5
  export declare function generateDropCodeForValue(valueCode: string, valueType: Type, context: CodeGenContext): string;
6
6
  export declare function generateDupCodeForValue(valueCode: string, valueType: Type, context: CodeGenContext): string;
7
7
  export declare function getDropFunctionForType(type: Type, context: CodeGenContext): string | undefined;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateDynCall(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,5 +1,5 @@
1
- import { Expr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { Expr } from "../../expr";
2
+ import type { CodeGenContext } from "../utils";
3
3
  export type GenerateExprFn = (expr: Expr, indent: string, context: CodeGenContext) => string;
4
4
  export declare function setGenerateExprFn(fn: GenerateExprFn): void;
5
5
  export declare function generateExpr(expr: Expr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import type { CodeGenContext } from "../utils";
3
3
  export declare function generateYoGcCollect(expr: FnCallExpr, _indent: string, _context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { Expr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type Expr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function _generateExpr(expr: Expr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateInitializationAssignment(expr: FnCallExpr, indent: string, context: CodeGenContext): string | undefined;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateYoInlineFunctionCall(functionName: string, args: string[], expr: FnCallExpr, context: CodeGenContext): string;
@@ -1,5 +1,5 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateYoIsoExtract(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
4
4
  export declare function generateYoIsoDispose(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
5
5
  export declare function isIsoTypeCall(expr: FnCallExpr): boolean;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateMatchExpression(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateOpen(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateOtherFunctionCall(expr: FnCallExpr, indent: string, context: CodeGenContext): string | undefined;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generatePanic(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,5 +1,5 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateThreadSpawnCall(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
4
4
  export declare function generateWorkerSpawnCall(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
5
5
  export declare function generateYoThreadSetMaximumThreads(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateFieldAccess(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateAddressOf(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,5 +1,5 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateYoDecrRc(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
4
4
  export declare function generateYoIncrRc(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
5
5
  export declare function generateYoRcOwn(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateRecur(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,4 +1,4 @@
1
- import { Expr, FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type Expr, type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateReturn(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
4
4
  export declare function generateImplicitReturnStatement(expr: Expr, indent: string, context: CodeGenContext): void;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import type { FnCallExpr } from "../../expr";
2
+ import type { CodeGenContext } from "../utils";
3
3
  export declare function generateSizeOf(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateAnonymousTuple(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,3 +1,3 @@
1
- import { FnCallExpr } from "../../expr";
2
- import { CodeGenContext } from "../utils";
1
+ import { type FnCallExpr } from "../../expr";
2
+ import type { CodeGenContext } from "../utils";
3
3
  export declare function generateWhileLoop(expr: FnCallExpr, indent: string, context: CodeGenContext): string;
@@ -1,5 +1,6 @@
1
- import { Expr } from "../../expr";
2
- import { ModuleValue, TraitValue } from "../../value";
3
- import { CodeGenContext } from "../utils";
1
+ import { type Expr } from "../../expr";
2
+ import { type ModuleValue, type TraitValue } from "../../value";
3
+ import { type CodeGenContext } from "../utils";
4
4
  export declare function collectRequiredFunctions(moduleValue: ModuleValue | TraitValue, context: CodeGenContext): void;
5
5
  export declare function findFunctionCallsInExpr(expr: Expr, context: CodeGenContext): void;
6
+ export declare function collectDisposeMethodsFromGenericImpls(context: CodeGenContext): void;
@@ -1,8 +1,8 @@
1
- import { AwaitAnalysisResult, CapturedVariable } from "../../evaluator/async/await-analysis";
2
- import { Expr } from "../../expr";
3
- import { FunctionValue, FuncValueId } from "../../function-value";
4
- import { DynType, FunctionType, SomeType, StructType, Type, TypeId } from "../../types";
5
- import { CodeGenContext } from "../utils";
1
+ import type { AwaitAnalysisResult, CapturedVariable } from "../../evaluator/async/await-analysis";
2
+ import type { Expr } from "../../expr";
3
+ import type { FunctionValue, FuncValueId } from "../../function-value";
4
+ import type { DynType, FunctionType, FutureTraitType, SomeType, StructType, Type, TypeId } from "../../types/definitions";
5
+ import type { CodeGenContext } from "../utils";
6
6
  export interface FunctionGenerationContext extends CodeGenContext {
7
7
  functions: Record<FuncValueId, {
8
8
  value: FunctionValue;
@@ -32,7 +32,7 @@ export interface FunctionGenerationContext extends CodeGenContext {
32
32
  constructorName: string;
33
33
  disposeFunctionName: string;
34
34
  futureType: SomeType | DynType;
35
- futureModuleType: import("../../types").FutureTraitType;
35
+ futureModuleType: FutureTraitType;
36
36
  resultType: Type;
37
37
  resultTypeCName: string;
38
38
  captureType: StructType | undefined;
@@ -1,7 +1,7 @@
1
- import { Expr } from "../../expr";
2
- import { FunctionType } from "../../types";
3
- import { CodeGenContext } from "../utils";
4
- import { FunctionGenerationContext } from "./context";
1
+ import type { Expr } from "../../expr";
2
+ import type { FunctionType } from "../../types/definitions";
3
+ import { type CodeGenContext } from "../utils";
4
+ import type { FunctionGenerationContext } from "./context";
5
5
  export declare function generateFunctionDeclarations(context: FunctionGenerationContext): void;
6
6
  export declare function generateFunctionPrototype(functionType: FunctionType, cFunctionName: string, context: CodeGenContext, overrideReturnType?: string): string;
7
7
  export declare function generateFunctionDeclaration(functionType: FunctionType, cFunctionName: string, isExtern: boolean, context: CodeGenContext, functionBody?: Expr): void;
@@ -1,4 +1,4 @@
1
- import { FunctionGenerationContext } from "./context";
1
+ import type { FunctionGenerationContext } from "./context";
2
2
  export declare function generateDynDupDrop(context: FunctionGenerationContext): void;
3
3
  export declare function generateDynBoxFunctions(context: FunctionGenerationContext): void;
4
4
  export declare function generateDynWrapperFunctions(context: FunctionGenerationContext): void;
@@ -1,8 +1,8 @@
1
- import { Expr } from "../../expr";
2
- import { FunctionValue } from "../../function-value";
3
- import { FunctionType } from "../../types";
4
- import { CodeGenContext } from "../utils";
5
- import { FunctionGenerationContext } from "./context";
1
+ import { type Expr } from "../../expr";
2
+ import { type FunctionValue } from "../../function-value";
3
+ import type { FunctionType } from "../../types/definitions";
4
+ import { type CodeGenContext } from "../utils";
5
+ import type { FunctionGenerationContext } from "./context";
6
6
  export declare function generateAllFunctions(context: FunctionGenerationContext): void;
7
7
  export declare function generateMainWrapper(context: FunctionGenerationContext): void;
8
8
  export declare function generateFunction(functionValue: FunctionValue, cFunctionName: string, context: FunctionGenerationContext): void;
@@ -1,7 +1,7 @@
1
- import { Expr } from "../../expr";
2
- import { FunctionType, Type } from "../../types";
3
- import { ModuleValue } from "../../value";
4
- import { CodeGenContext } from "../utils";
1
+ import { type Expr } from "../../expr";
2
+ import type { FunctionType, Type } from "../../types/definitions";
3
+ import { type ModuleValue } from "../../value";
4
+ import { type CodeGenContext } from "../utils";
5
5
  export declare function collectRequiredTypes(moduleValue: ModuleValue, context: CodeGenContext): void;
6
6
  export declare function collectTypesFromFunctionType(functionType: FunctionType, context: CodeGenContext): void;
7
7
  export declare function collectTypesFromExpr(expr: Expr, context: CodeGenContext): void;
@@ -1,4 +1,4 @@
1
- import { DynType } from "../../types";
2
- import { CodeGenContext } from "../utils";
1
+ import type { DynType } from "../../types/definitions";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateDynDeclaration(dynType: DynType, cName: string, context: CodeGenContext): void;
4
4
  export declare function generateDynBoxTypes(context: CodeGenContext): void;
@@ -1,5 +1,5 @@
1
- import { EnumType, FunctionType, StructType, TupleType, UnionType } from "../../types";
2
- import { CodeGenContext } from "../utils";
1
+ import type { EnumType, FunctionType, StructType, TupleType, UnionType } from "../../types/definitions";
2
+ import { type CodeGenContext } from "../utils";
3
3
  export declare function generateTypeDeclarations(context: CodeGenContext): void;
4
4
  export declare function generateArrayStructDeclarations(context: CodeGenContext): void;
5
5
  export declare function generateSliceStructDeclarations(context: CodeGenContext): void;
@@ -1,2 +1,2 @@
1
- import { CodeGenContext } from "./index";
1
+ import type { CodeGenContext } from "./index";
2
2
  export declare function fixupDynImplKeys(context: CodeGenContext): void;
@@ -1,9 +1,9 @@
1
1
  import { Emitter } from "../../emitter";
2
- import { Environment } from "../../env";
3
- import { Expr } from "../../expr";
4
- import { FunctionValue, FuncValueId } from "../../function-value";
5
- import { DynType, EnumType, FunctionType, IsoType, StructType, Type, TypeId } from "../../types";
6
- import { TraitValue } from "../../value";
2
+ import { type Environment } from "../../env";
3
+ import { type Expr } from "../../expr";
4
+ import type { FunctionValue, FuncValueId } from "../../function-value";
5
+ import type { DynType, EnumType, FunctionType, IsoType, StructType, Type, TypeId } from "../../types/definitions";
6
+ import { type TraitValue } from "../../value";
7
7
  export interface CodeGenContext {
8
8
  types: Record<TypeId, {
9
9
  type: Type;
@@ -74,7 +74,7 @@ export declare function shouldAvoidConst(type: Type): boolean;
74
74
  export declare function getTypeString(type: Type | undefined, context: CodeGenContext): string;
75
75
  export declare function getVariableTypeString(type: Type, varName: string, context: CodeGenContext): string;
76
76
  export declare function getEnumVariantCName(enumType: EnumType, variantName: string, context: CodeGenContext): string;
77
- export declare function isComptFunction(functionValue: FunctionValue): boolean;
77
+ export declare function isComptimeFunction(functionValue: FunctionValue): boolean;
78
78
  export declare function isFunctionValueWithOnlyBuiltinYoInlineFunctionCall(functionValue: FunctionValue): string | null;
79
79
  export declare function canOptimizeAsNullablePointer(enumType: EnumType): Type | null;
80
80
  export declare function canOptimizeAsSimpleEnum(enumType: EnumType): boolean;
@@ -1,6 +1,7 @@
1
- import { Token } from "./token";
2
- import { FunctionType, Type } from "./types";
3
- import { Value } from "./value";
1
+ import type { EvaluatorContext } from "./evaluator/context";
2
+ import type { Token } from "./token";
3
+ import type { SomeType, TraitType, Type } from "./types/definitions";
4
+ import { type Value } from "./value";
4
5
  export interface Variable {
5
6
  id: string;
6
7
  name: string;
@@ -17,10 +18,16 @@ export interface Variable {
17
18
  isCreatedFromDestructuringAtomVariable?: boolean;
18
19
  parameterAlias?: string;
19
20
  }
21
+ export type WhereClauseConstraints = {
22
+ someType: SomeType;
23
+ requiredTraits: TraitType[];
24
+ negativeTraits: TraitType[];
25
+ };
20
26
  export type Frame = {
21
27
  variables: Variable[];
22
28
  id: string;
23
29
  isBeginBlockFrame: boolean;
30
+ whereClauseConstraints: Map<string, WhereClauseConstraints>;
24
31
  };
25
32
  export type Environment = {
26
33
  functionDeclarationFrameLevel: number;
@@ -34,6 +41,16 @@ export declare function createNewEnv({ modulePath, inputString, }: {
34
41
  }): Environment;
35
42
  export declare function createEmptyEnv(): Environment;
36
43
  export declare function cloneEnvForCTFECheck(env: Environment): Environment;
44
+ export declare function addWhereClauseConstraintToEnv({ env, someType, traitType, isNegated, }: {
45
+ env: Environment;
46
+ someType: SomeType;
47
+ traitType: TraitType;
48
+ isNegated: boolean;
49
+ }): Environment;
50
+ export declare function getWhereClauseConstraintsForSomeType(env: Environment, someType: SomeType): {
51
+ requiredTraits: TraitType[];
52
+ negativeTraits: TraitType[];
53
+ } | undefined;
37
54
  export declare function setEnvContainingPrelude(env: Environment): void;
38
55
  export declare function clearEnvContainingPrelude(): void;
39
56
  export declare function createEnvContainingPrelude(): Environment;
@@ -55,6 +72,7 @@ export declare function addVariableToFrame({ frame, variable, }: {
55
72
  }): Frame;
56
73
  export declare function getVariablesFromFrame(frame: Frame, variableName: string, variableFilter?: (variable: Variable) => boolean): Variable[];
57
74
  export declare function getVariablesFromEnv(env: Environment, variableName: string, variableFilter?: (variable: Variable) => boolean): Variable[];
75
+ export declare function findVariableFrameLevel(env: Environment, variableName: string): number | undefined;
58
76
  export declare function getVariablesFromEnvByFilter(env: Environment, variableFilter: (variable: Variable) => boolean): Variable[];
59
77
  export declare function pushEnvFrame(env: Environment, frame?: Frame, isBeginBlockFrame?: boolean): Environment;
60
78
  export declare function popEnvFrame(env: Environment, ignoreCheck?: boolean): Environment;
@@ -74,11 +92,22 @@ export declare function getVariableInfo(variable: Variable): {
74
92
  isReassignable: boolean;
75
93
  isConsumed: boolean;
76
94
  };
77
- export declare function getTypeTraitMethodsByNameFromEnv(env: Environment, methodName: string, type: Type): {
95
+ export declare function getTypeTraitMethodsByNameFromEnv({ env, context, methodName, type, }: {
96
+ env: Environment;
97
+ context: EvaluatorContext;
98
+ methodName: string;
99
+ type: Type;
100
+ }): {
78
101
  type: Type;
79
102
  value: Value | undefined;
80
103
  }[];
81
- export declare function getReceiverMethodsByNameFromEnv(env: Environment, methodName: string, receiverType: Type, isInfixOperatorCall?: boolean, currentFunctionType?: FunctionType): {
104
+ export declare function getReceiverMethodsByNameFromEnv({ env, context, methodName, receiverType, isInfixOperatorCall, }: {
105
+ env: Environment;
106
+ context: EvaluatorContext;
107
+ methodName: string;
108
+ receiverType: Type;
109
+ isInfixOperatorCall?: boolean;
110
+ }): {
82
111
  type: Type;
83
112
  value: Value | undefined;
84
113
  needsPointerConversion?: boolean;
@@ -1,4 +1,4 @@
1
- import { Token } from "./token";
1
+ import type { Token } from "./token";
2
2
  export interface TokenAndError {
3
3
  token: Token;
4
4
  errorMessage: string;
@@ -1,4 +1,4 @@
1
- import { Type } from "../../types";
1
+ import type { Type } from "../../types/definitions";
2
2
  export interface AwaitPoint {
3
3
  index: number;
4
4
  expr: unknown;
@@ -1,4 +1,4 @@
1
- import { Expr } from "../../expr";
1
+ import { type Expr } from "../../expr";
2
2
  export type { AwaitAnalysisResult, AwaitPoint, CapturedVariable, } from "./await-analysis-types";
3
3
  import type { AwaitAnalysisResult, CapturedVariable } from "./await-analysis-types";
4
4
  export declare function analyzeAwaitPoints(body: Expr): AwaitAnalysisResult;
@@ -1,6 +1,6 @@
1
- import { Environment } from "../../env";
2
- import { FnCallExpr } from "../../expr";
3
- import { EvaluatorContext } from "../context";
1
+ import type { Environment } from "../../env";
2
+ import { type FnCallExpr } from "../../expr";
3
+ import type { EvaluatorContext } from "../context";
4
4
  export declare function evaluateAlignOf({ expr, env, context, }: {
5
5
  expr: FnCallExpr;
6
6
  env: Environment;
@@ -1,6 +1,6 @@
1
- import { Environment } from "../../env";
2
- import { FnCallExpr } from "../../expr";
3
- import { EvaluatorContext } from "../context";
1
+ import type { Environment } from "../../env";
2
+ import { type FnCallExpr } from "../../expr";
3
+ import type { EvaluatorContext } from "../context";
4
4
  export declare function evaluateAndOr({ expr, env, context, }: {
5
5
  expr: FnCallExpr;
6
6
  env: Environment;
@@ -1,6 +1,6 @@
1
- import { Environment } from "../../env";
2
- import { FnCallExpr } from "../../expr";
3
- import { EvaluatorContext } from "../context";
1
+ import type { Environment } from "../../env";
2
+ import { type FnCallExpr } from "../../expr";
3
+ import type { EvaluatorContext } from "../context";
4
4
  export declare function evaluateYoArrayFill({ expr, env, context, }: {
5
5
  expr: FnCallExpr;
6
6
  env: Environment;
@@ -1,6 +1,6 @@
1
- import { Environment } from "../../env";
2
- import { FnCallExpr } from "../../expr";
3
- import { EvaluatorContext } from "../context";
1
+ import type { Environment } from "../../env";
2
+ import { type FnCallExpr } from "../../expr";
3
+ import type { EvaluatorContext } from "../context";
4
4
  export declare function evaluateAs({ expr, env, context, }: {
5
5
  expr: FnCallExpr;
6
6
  env: Environment;
@@ -1,6 +1,6 @@
1
- import { Environment } from "../../env";
2
- import { FnCallExpr } from "../../expr";
3
- import { EvaluatorContext } from "../context";
1
+ import type { Environment } from "../../env";
2
+ import { type FnCallExpr } from "../../expr";
3
+ import type { EvaluatorContext } from "../context";
4
4
  export declare function evaluateAsync({ expr, env, context, }: {
5
5
  expr: FnCallExpr;
6
6
  env: Environment;