diff --git a/midas/checker/types.py b/midas/checker/types.py index f2fef3b..708d68b 100644 --- a/midas/checker/types.py +++ b/midas/checker/types.py @@ -50,15 +50,13 @@ class Function: args: list[str] = [] if len(self.pos_args) != 0: args += list(map(str, self.pos_args)) - if len(self.args) + len(self.kw_args) != 0: - args.append("/") + args.append("/") if len(self.args) != 0: args += list(map(str, self.args)) if len(self.kw_args) != 0: - if len(args) != 0: - args.append("*") + args.append("*") args += list(map(str, self.kw_args)) return f"({', '.join(args)}) -> {self.returns}" diff --git a/midas/cli/commands/registry.py b/midas/cli/commands/registry.py index 4e830be..d978ad9 100644 --- a/midas/cli/commands/registry.py +++ b/midas/cli/commands/registry.py @@ -9,7 +9,21 @@ from typing import TextIO import click from midas.checker.checker import TypeChecker -from midas.checker.types import Type +from midas.checker.types import AliasType, AppliedType, BaseType, GenericType, Type + + +def base_type(type: Type) -> Type: + match type: + case BaseType(): + return type + case AliasType(type=base): + return base + case AppliedType(body=body): + return body + case GenericType(body=body): + return body + case _: + return type @click.command(help="Dump types registry") @@ -23,7 +37,7 @@ def dump_registry( for name, type in checker.types._types.items(): members: dict[str, Type] = checker.types._members.get(name, {}) - print(f"{name} = {type}") + print(f"{name} = {base_type(type)}") if len(members) != 0: print(" " * 4 + "Members:") for member_name, member_type in members.items():