Skip to content
This repository was archived by the owner on Feb 18, 2025. It is now read-only.
This repository was archived by the owner on Feb 18, 2025. It is now read-only.

support generics in traits #68

@soc

Description

@soc

Consider:

@pub trait Iterator {
  fun next(): Option[Int32]; // this should be made generic
}

Ideally we would have:

@pub trait Iterator[T] {
  fun next(): Option[T];
}

Which compiles, but a trait impls like ...

impl Iterator[Int32] for NoInt32Iterator {
  fun next(): Option[Int32] = None[Int32];
}

... fails compilation with:

return types `Option[Int32]` and `Option[T]` do not match

Feels like we forget specializing the return type.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementimproving existing functionalitygood first issuegood for newcomerstyperanything related to the typechecker and the typesystem

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions