From c2bd45ad560f41225fc10f5f5475aba1ace7d25d Mon Sep 17 00:00:00 2001 From: mryouse Date: Sun, 26 Jun 2022 00:51:02 +0000 Subject: add return type annotations (just decoration now) --- neb/std/core.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'neb/std/core.py') diff --git a/neb/std/core.py b/neb/std/core.py index 83b164c..d9f512e 100644 --- a/neb/std/core.py +++ b/neb/std/core.py @@ -45,10 +45,17 @@ def interpretRedef(symbol, args, env, ns): CORE.register("redef", Builtin("redef", interpretRedef, [def_name_arg, def_val_arg])) def interpretLambda(symbol, args, env, ns): - if len(args[0].args) != 0: - func = UserFunction("", args[0].args, args[1:]) + new_args = args + return_type = Type(":any") + if isinstance(args[0], Type): + return_type = args[0] + new_args = args[1:] + + if len(new_args[0].args) != 0: + func = UserFunction("", new_args[0].args, new_args[1:]) else: - func = UserFunction("", [], args[1:]) + func = UserFunction("", [], new_args[1:]) + func.return_type = return_type return func lambda_args_arg = Arg("args", TypeEnum.ANY, lazy=True) -- cgit v1.2.3