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/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'neb/__init__.py') diff --git a/neb/__init__.py b/neb/__init__.py index f5574d1..4ae32a6 100644 --- a/neb/__init__.py +++ b/neb/__init__.py @@ -47,13 +47,14 @@ class Function: self.args = args self.many = many self.type_ = TypeEnum.ANY # TODO no it's not + self.return_type = Type(":any") def describe(self, name=None): if name is None: name = self.name out = [f"({name}"] out.append(string_args(self.args, self.many)) - return " ".join(out).strip() + ")" + return " ".join(out).strip() + f") {self.return_type}" def arity_check(self, symbol, params): min_arity = len([a for a in self.args if not a.optional]) @@ -115,7 +116,7 @@ class UserFunction(Function): super().__init__(name, newparams, body, args, many) def __str__(self): - out = f"(func {self.name} (" + out = f"(func {self.name} {self.return_type} (" args_list = [f"{a.name} {a.type_}" for a in self.args] if self.many: args_list.append(f"{self.many.name} {self.many.type_}") -- cgit v1.2.3