fix(checker): allow some assignments to unknown

This commit is contained in:
2026-06-29 14:02:29 +02:00
parent 9e14b30bc9
commit 3b78b37306

View File

@@ -413,13 +413,16 @@ class PythonTyper(
value_type: Type, value_type: Type,
): ):
var_type: Type = self.type_of(var) var_type: Type = self.type_of(var)
unfolded_type: Type = unfold_type(var_type)
# TODO: what happens if type is an alias of a dataframe type # TODO: what happens if type is an alias of a dataframe type
match var_type: match unfolded_type:
case DataFrameType() as frame: case DataFrameType() as frame:
new_type: Type = self.frame_mgr.assign( new_type: Type = self.frame_mgr.assign(
self.reporter, location, frame, index, value_type self.reporter, location, frame, index, value_type
) )
self.env.assign(var.name, new_type) self.env.assign(var.name, new_type)
case UnknownType():
return
case _: case _:
self.reporter.error( self.reporter.error(
location, location,
@@ -582,7 +585,7 @@ class PythonTyper(
object: Type = self.type_of(expr.object) object: Type = self.type_of(expr.object)
member: Optional[Type] = self.types.lookup_member(object, expr.name) member: Optional[Type] = self.types.lookup_member(object, expr.name)
if member is None: if member is None:
self.reporter.error( self.reporter.warning(
expr.location, f"Unknown member '{expr.name}' of {object}" expr.location, f"Unknown member '{expr.name}' of {object}"
) )
return UnknownType() return UnknownType()