diff --git a/artiq/compiler/types.py b/artiq/compiler/types.py index fdb225d9c..0f0819b2a 100644 --- a/artiq/compiler/types.py +++ b/artiq/compiler/types.py @@ -703,12 +703,14 @@ class TypePrinter(object): elif isinstance(typ, TInstance): if typ in self.recurse_guard or depth >= max_depth: return "".format(typ.name) - else: + elif len(typ.attributes) > 0: self.recurse_guard.add(typ) attrs = ",\n\t\t".join(["{}: {}".format(attr, self.name(typ.attributes[attr], depth + 1)) for attr in typ.attributes]) return "".format(typ.name, attrs) + else: + return "".format(typ.name) elif isinstance(typ, TMono): if typ.params == {}: return typ.name @@ -745,12 +747,14 @@ class TypePrinter(object): elif isinstance(typ, (TConstructor, TExceptionConstructor)): if typ in self.recurse_guard or depth >= max_depth: return "".format(typ.name) - else: + elif len(typ.attributes) > 0: self.recurse_guard.add(typ) attrs = ", ".join(["{}: {}".format(attr, self.name(typ.attributes[attr], depth + 1)) for attr in typ.attributes]) return "".format(typ.name, attrs) + else: + return "".format(typ.name) elif isinstance(typ, TBuiltin): return "".format(typ.name) elif isinstance(typ, TValue):