diff options
| author | Akshay Nair <phenax5@gmail.com> | 2023-01-14 13:22:39 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2023-01-14 13:22:39 +0530 |
| commit | d362ef26db894ea52c6abd34489aa9efdbc0c89b (patch) | |
| tree | 20400ad5ebc70085447e2bb087381aa8c8409afd /src/eval-env/builtins.ts | |
| parent | 4746652abfb7aed46627d27a55919d2986885735 (diff) | |
| download | ts-types-lang-d362ef26db894ea52c6abd34489aa9efdbc0c89b.tar.gz ts-types-lang-d362ef26db894ea52c6abd34489aa9efdbc0c89b.zip | |
chore: adds test cases + fixes Test effect scope
Diffstat (limited to 'src/eval-env/builtins.ts')
| -rw-r--r-- | src/eval-env/builtins.ts | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/eval-env/builtins.ts b/src/eval-env/builtins.ts index 669a005..35f8485 100644 --- a/src/eval-env/builtins.ts +++ b/src/eval-env/builtins.ts @@ -6,10 +6,10 @@ const applyFunc = (ctx: Ctx, fn: Type | undefined, val: string): Type => { const resultType = (() => { const baseTypes = fn ?.getBaseTypes() - .flatMap((t) => t.getSymbol()?.getName()) + .flatMap((t) => t.getSymbol()?.getName() ?? []) - if (baseTypes?.includes('Kind1')) { - const [_, resultNode] = ctx.createResult( + if (!!fn?.getProperty('return') || baseTypes?.includes('Kind1')) { + const [_key, resultNode] = ctx.createResult( `(${ctx.typeToString(fn)} & { input: ${val} })['return']` ) return resultNode @@ -53,7 +53,7 @@ const applyFunc = (ctx: Ctx, fn: Type | undefined, val: string): Type => { // TODO: Cleanup unwanted result node values if (!resultType) { - throw new Error('Fuck shit') + throw new Error('Couldnt get result for function application') } return resultType |
