Skip to content

Commit ddeb5bd

Browse files
authored
Use kw-only args for member access booleans (#17975)
Gets hard to know what's what at call site
1 parent 6728848 commit ddeb5bd

File tree

4 files changed

+46
-45
lines changed

4 files changed

+46
-45
lines changed

mypy/checker.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7570,10 +7570,10 @@ def has_valid_attribute(self, typ: Type, name: str) -> bool:
75707570
name,
75717571
typ,
75727572
TempNode(AnyType(TypeOfAny.special_form)),
7573-
False,
7574-
False,
7575-
False,
7576-
self.msg,
7573+
is_lvalue=False,
7574+
is_super=False,
7575+
is_operator=False,
7576+
msg=self.msg,
75777577
original_type=typ,
75787578
chk=self,
75797579
# This is not a real attribute lookup so don't mess with deferring nodes.

mypy/checkexpr.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1504,10 +1504,10 @@ def check_union_call_expr(self, e: CallExpr, object_type: UnionType, member: str
15041504
member,
15051505
typ,
15061506
e,
1507-
False,
1508-
False,
1509-
False,
1510-
self.msg,
1507+
is_lvalue=False,
1508+
is_super=False,
1509+
is_operator=False,
1510+
msg=self.msg,
15111511
original_type=object_type,
15121512
chk=self.chk,
15131513
in_literal_context=self.is_literal_context(),
@@ -3302,10 +3302,10 @@ def analyze_ordinary_member_access(self, e: MemberExpr, is_lvalue: bool) -> Type
33023302
e.name,
33033303
original_type,
33043304
e,
3305-
is_lvalue,
3306-
False,
3307-
False,
3308-
self.msg,
3305+
is_lvalue=is_lvalue,
3306+
is_super=False,
3307+
is_operator=False,
3308+
msg=self.msg,
33093309
original_type=original_type,
33103310
chk=self.chk,
33113311
in_literal_context=self.is_literal_context(),
@@ -3326,10 +3326,10 @@ def analyze_external_member_access(
33263326
member,
33273327
base_type,
33283328
context,
3329-
False,
3330-
False,
3331-
False,
3332-
self.msg,
3329+
is_lvalue=False,
3330+
is_super=False,
3331+
is_operator=False,
3332+
msg=self.msg,
33333333
original_type=base_type,
33343334
chk=self.chk,
33353335
in_literal_context=self.is_literal_context(),
@@ -3809,10 +3809,10 @@ def check_method_call_by_name(
38093809
method,
38103810
base_type,
38113811
context,
3812-
False,
3813-
False,
3814-
True,
3815-
self.msg,
3812+
is_lvalue=False,
3813+
is_super=False,
3814+
is_operator=True,
3815+
msg=self.msg,
38163816
original_type=original_type,
38173817
chk=self.chk,
38183818
in_literal_context=self.is_literal_context(),

mypy/checkmember.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ class MemberContext:
8787

8888
def __init__(
8989
self,
90+
*,
9091
is_lvalue: bool,
9192
is_super: bool,
9293
is_operator: bool,
@@ -126,16 +127,16 @@ def copy_modified(
126127
original_type: Type | None = None,
127128
) -> MemberContext:
128129
mx = MemberContext(
129-
self.is_lvalue,
130-
self.is_super,
131-
self.is_operator,
132-
self.original_type,
133-
self.context,
134-
self.msg,
135-
self.chk,
136-
self.self_type,
137-
self.module_symbol_table,
138-
self.no_deferral,
130+
is_lvalue=self.is_lvalue,
131+
is_super=self.is_super,
132+
is_operator=self.is_operator,
133+
original_type=self.original_type,
134+
context=self.context,
135+
msg=self.msg,
136+
chk=self.chk,
137+
self_type=self.self_type,
138+
module_symbol_table=self.module_symbol_table,
139+
no_deferral=self.no_deferral,
139140
)
140141
if messages is not None:
141142
mx.msg = messages
@@ -152,11 +153,11 @@ def analyze_member_access(
152153
name: str,
153154
typ: Type,
154155
context: Context,
156+
*,
155157
is_lvalue: bool,
156158
is_super: bool,
157159
is_operator: bool,
158160
msg: MessageBuilder,
159-
*,
160161
original_type: Type,
161162
chk: mypy.checker.TypeChecker,
162163
override_info: TypeInfo | None = None,
@@ -190,12 +191,12 @@ def analyze_member_access(
190191
are not available via the type object directly)
191192
"""
192193
mx = MemberContext(
193-
is_lvalue,
194-
is_super,
195-
is_operator,
196-
original_type,
197-
context,
198-
msg,
194+
is_lvalue=is_lvalue,
195+
is_super=is_super,
196+
is_operator=is_operator,
197+
original_type=original_type,
198+
context=context,
199+
msg=msg,
199200
chk=chk,
200201
self_type=self_type,
201202
module_symbol_table=module_symbol_table,

mypy/checkpattern.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -594,10 +594,10 @@ def visit_class_pattern(self, o: ClassPattern) -> PatternType:
594594
"__match_args__",
595595
typ,
596596
o,
597-
False,
598-
False,
599-
False,
600-
self.msg,
597+
is_lvalue=False,
598+
is_super=False,
599+
is_operator=False,
600+
msg=self.msg,
601601
original_type=typ,
602602
chk=self.chk,
603603
)
@@ -660,10 +660,10 @@ def visit_class_pattern(self, o: ClassPattern) -> PatternType:
660660
keyword,
661661
narrowed_type,
662662
pattern,
663-
False,
664-
False,
665-
False,
666-
self.msg,
663+
is_lvalue=False,
664+
is_super=False,
665+
is_operator=False,
666+
msg=self.msg,
667667
original_type=new_type,
668668
chk=self.chk,
669669
)

0 commit comments

Comments
 (0)