aboutsummaryrefslogtreecommitdiff
path: root/src/eval-env/builtins.ts
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-01-14 13:22:39 +0530
committerAkshay Nair <phenax5@gmail.com>2023-01-14 13:22:39 +0530
commitd362ef26db894ea52c6abd34489aa9efdbc0c89b (patch)
tree20400ad5ebc70085447e2bb087381aa8c8409afd /src/eval-env/builtins.ts
parent4746652abfb7aed46627d27a55919d2986885735 (diff)
downloadts-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.ts8
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