fix(checker): allow some assignments to unknown
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user