Skip to content

Commit a5005f4

Browse files
authored
Refactor: remove unused attribute from PartialType (python#8078)
The `inner_types` attribute seems to have no effect.
1 parent 25b1c4d commit a5005f4

File tree

4 files changed

+12
-26
lines changed

4 files changed

+12
-26
lines changed

mypy/checker.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2810,7 +2810,7 @@ def infer_variable_type(self, name: Var, lvalue: Lvalue,
28102810
def infer_partial_type(self, name: Var, lvalue: Lvalue, init_type: Type) -> bool:
28112811
init_type = get_proper_type(init_type)
28122812
if isinstance(init_type, NoneType):
2813-
partial_type = PartialType(None, name, [init_type])
2813+
partial_type = PartialType(None, name)
28142814
elif isinstance(init_type, Instance):
28152815
fullname = init_type.type.fullname
28162816
if (isinstance(lvalue, (NameExpr, MemberExpr)) and
@@ -2820,7 +2820,7 @@ def infer_partial_type(self, name: Var, lvalue: Lvalue, init_type: Type) -> bool
28202820
fullname == 'collections.OrderedDict') and
28212821
all(isinstance(t, (NoneType, UninhabitedType))
28222822
for t in get_proper_types(init_type.args))):
2823-
partial_type = PartialType(init_type.type, name, init_type.args)
2823+
partial_type = PartialType(init_type.type, name)
28242824
else:
28252825
return False
28262826
else:
@@ -3018,15 +3018,11 @@ def try_infer_partial_type_from_indexed_assignment(
30183018
# TODO: Don't infer things twice.
30193019
key_type = self.expr_checker.accept(lvalue.index)
30203020
value_type = self.expr_checker.accept(rvalue)
3021-
full_key_type = make_simplified_union(
3022-
[key_type, var.type.inner_types[0]])
3023-
full_value_type = make_simplified_union(
3024-
[value_type, var.type.inner_types[1]])
3025-
if (is_valid_inferred_type(full_key_type) and
3026-
is_valid_inferred_type(full_value_type)):
3021+
if (is_valid_inferred_type(key_type) and
3022+
is_valid_inferred_type(value_type)):
30273023
if not self.current_node_deferred:
30283024
var.type = self.named_generic_type(typename,
3029-
[full_key_type, full_value_type])
3025+
[key_type, value_type])
30303026
del partial_types[var]
30313027

30323028
def visit_expression_stmt(self, s: ExpressionStmt) -> None:
@@ -4308,7 +4304,7 @@ def fixup_partial_type(self, typ: Type) -> Type:
43084304
else:
43094305
return Instance(
43104306
typ.type,
4311-
[AnyType(TypeOfAny.unannotated) for _ in typ.inner_types])
4307+
[AnyType(TypeOfAny.unannotated)] * len(typ.type.type_vars))
43124308

43134309
def is_defined_in_base_class(self, var: Var) -> bool:
43144310
if var.info:

mypy/checkexpr.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -588,10 +588,8 @@ def try_infer_partial_type(self, e: CallExpr) -> None:
588588
if (typename in self.item_args and methodname in self.item_args[typename]
589589
and e.arg_kinds == [ARG_POS]):
590590
item_type = self.accept(e.args[0])
591-
full_item_type = make_simplified_union(
592-
[item_type, partial_type.inner_types[0]])
593-
if mypy.checker.is_valid_inferred_type(full_item_type):
594-
var.type = self.chk.named_generic_type(typename, [full_item_type])
591+
if mypy.checker.is_valid_inferred_type(item_type):
592+
var.type = self.chk.named_generic_type(typename, [item_type])
595593
del partial_types[var]
596594
elif (typename in self.container_args
597595
and methodname in self.container_args[typename]
@@ -600,15 +598,10 @@ def try_infer_partial_type(self, e: CallExpr) -> None:
600598
if isinstance(arg_type, Instance):
601599
arg_typename = arg_type.type.fullname
602600
if arg_typename in self.container_args[typename][methodname]:
603-
full_item_types = [
604-
make_simplified_union([item_type, prev_type])
605-
for item_type, prev_type
606-
in zip(arg_type.args, partial_type.inner_types)
607-
]
608601
if all(mypy.checker.is_valid_inferred_type(item_type)
609-
for item_type in full_item_types):
602+
for item_type in arg_type.args):
610603
var.type = self.chk.named_generic_type(typename,
611-
list(full_item_types))
604+
list(arg_type.args))
612605
del partial_types[var]
613606

614607
def apply_function_plugin(self,

mypy/type_visitor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ def visit_type_var(self, t: TypeVarType) -> T:
290290
return self.query_types([t.upper_bound] + t.values)
291291

292292
def visit_partial_type(self, t: PartialType) -> T:
293-
return self.query_types(t.inner_types)
293+
return self.strategy([])
294294

295295
def visit_instance(self, t: Instance) -> T:
296296
return self.query_types(t.args)

mypy/types.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,16 +1761,13 @@ class PartialType(ProperType):
17611761
# None for the 'None' partial type; otherwise a generic class
17621762
type = None # type: Optional[mypy.nodes.TypeInfo]
17631763
var = None # type: mypy.nodes.Var
1764-
inner_types = None # type: List[Type]
17651764

17661765
def __init__(self,
17671766
type: 'Optional[mypy.nodes.TypeInfo]',
1768-
var: 'mypy.nodes.Var',
1769-
inner_types: List[Type]) -> None:
1767+
var: 'mypy.nodes.Var') -> None:
17701768
super().__init__()
17711769
self.type = type
17721770
self.var = var
1773-
self.inner_types = inner_types
17741771

17751772
def accept(self, visitor: 'TypeVisitor[T]') -> T:
17761773
return visitor.visit_partial_type(self)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy