fix(checker): handle application of column type
This commit is contained in:
@@ -383,6 +383,16 @@ class MidasTyper(m.Stmt.Visitor[None], m.Expr.Visitor[Type], m.Type.Visitor[Type
|
||||
return UnknownType()
|
||||
|
||||
def visit_generic_type(self, type: m.GenericType) -> Type:
|
||||
match type.type:
|
||||
case m.NamedType(name=Token(lexeme="Column")):
|
||||
if len(type.args) != 1:
|
||||
self.reporter.error(
|
||||
type.location,
|
||||
f"Column requires 1 type argument, {len(type.args)} provided",
|
||||
)
|
||||
return ColumnType(type=UnknownType())
|
||||
return ColumnType(type=type.args[0].accept(self))
|
||||
|
||||
type_: Type = type.type.accept(self)
|
||||
args: list[Type] = [arg.accept(self) for arg in type.args]
|
||||
try:
|
||||
|
||||
@@ -938,6 +938,15 @@ class PythonTyper(
|
||||
return UnknownType()
|
||||
|
||||
def visit_base_type(self, node: p.BaseType) -> Type:
|
||||
if node.base == "Column":
|
||||
if len(node.args) != 1:
|
||||
self.reporter.error(
|
||||
node.location,
|
||||
f"Column requires 1 type argument, {len(node.args)} provided",
|
||||
)
|
||||
return ColumnType(type=UnknownType())
|
||||
return ColumnType(type=self.resolve_type_expr(node.args[0]))
|
||||
|
||||
base: Type
|
||||
try:
|
||||
base = self.types.get_type(node.base)
|
||||
|
||||
Reference in New Issue
Block a user