feat(types): add name to generic type
This commit is contained in:
@@ -73,11 +73,13 @@ class MidasTyper(m.Stmt.Visitor[None], m.Expr.Visitor[None], m.Type.Visitor[Type
|
|||||||
var = TypeVar(name=name, bound=bound)
|
var = TypeVar(name=name, bound=bound)
|
||||||
self._local_variables[name] = var
|
self._local_variables[name] = var
|
||||||
params.append(var)
|
params.append(var)
|
||||||
|
name: str = stmt.name.lexeme
|
||||||
type: Type = stmt.type.accept(self)
|
type: Type = stmt.type.accept(self)
|
||||||
if len(params) != 0:
|
if len(params) != 0:
|
||||||
type = GenericType(params=params, body=type)
|
type = GenericType(name=name, params=params, body=type)
|
||||||
name: str = stmt.name.lexeme
|
else:
|
||||||
self.types.define_type(name, AliasType(name=name, type=type))
|
type = AliasType(name=name, type=type)
|
||||||
|
self.types.define_type(name, type)
|
||||||
self._local_variables.clear()
|
self._local_variables.clear()
|
||||||
|
|
||||||
def visit_property_stmt(self, stmt: m.PropertyStmt) -> None: ...
|
def visit_property_stmt(self, stmt: m.PropertyStmt) -> None: ...
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ class TypeVar:
|
|||||||
|
|
||||||
@dataclass(frozen=True, kw_only=True)
|
@dataclass(frozen=True, kw_only=True)
|
||||||
class GenericType:
|
class GenericType:
|
||||||
|
name: str
|
||||||
params: list[TypeVar]
|
params: list[TypeVar]
|
||||||
body: Type
|
body: Type
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user