diff --git a/compiler/erg_compiler/lib/pystd/collections.d/abc.d.er b/compiler/erg_compiler/lib/pystd/collections.d/abc.d.er index 309d73c1..3f430fe8 100644 --- a/compiler/erg_compiler/lib/pystd/collections.d/abc.d.er +++ b/compiler/erg_compiler/lib/pystd/collections.d/abc.d.er @@ -1,13 +1,12 @@ -.Container = Trait { .__contains__ = (self: Self) -> Bool } -.Hashable = Trait { .__hash__ = (self: Self) -> Nat } -.Sized = Trait { .__len__ = (self: Self) -> Nat } -# TODO: varargs -.Callable = Trait { .__call__ = (self: Self) -> Obj } -# .Iterable T = Trait { .__iter__ = (self: Self) -> Iterator T } -.Iterable = Trait { .__iter__ = (self: Self) -> .Iterator } -.Collection = Subsume .Container and .Iterable -# .Iterator T = Trait { .__next__ = (self: Self) -> T } -.Iterator = Trait { .__next__ = (self: Self) -> Obj } -.Reversible = Trait { .__reversed__ = (self: Self) -> .Iterator } -.Genertor = Subsume .Iterator -.Sequence = Subsume .Collection and .Sized and .Reversible +# The ABCs in this file are not defined as a collection of traits. +# Use `std/abc` instead. +.Container: ClassType +.Hashable: ClassType +.Sized: ClassType +.Callable: ClassType +.Iterable: ClassType +.Collection: ClassType +.Iterator: ClassType +.Reversible: ClassType +.Genertor: ClassType +.Sequence: ClassType diff --git a/compiler/erg_compiler/lib/std/abc.er b/compiler/erg_compiler/lib/std/abc.er new file mode 100644 index 00000000..309d73c1 --- /dev/null +++ b/compiler/erg_compiler/lib/std/abc.er @@ -0,0 +1,13 @@ +.Container = Trait { .__contains__ = (self: Self) -> Bool } +.Hashable = Trait { .__hash__ = (self: Self) -> Nat } +.Sized = Trait { .__len__ = (self: Self) -> Nat } +# TODO: varargs +.Callable = Trait { .__call__ = (self: Self) -> Obj } +# .Iterable T = Trait { .__iter__ = (self: Self) -> Iterator T } +.Iterable = Trait { .__iter__ = (self: Self) -> .Iterator } +.Collection = Subsume .Container and .Iterable +# .Iterator T = Trait { .__next__ = (self: Self) -> T } +.Iterator = Trait { .__next__ = (self: Self) -> Obj } +.Reversible = Trait { .__reversed__ = (self: Self) -> .Iterator } +.Genertor = Subsume .Iterator +.Sequence = Subsume .Collection and .Sized and .Reversible