Skip to content

Commit 2485bed

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

File tree

4 files changed

+46
-45
lines changed

4 files changed

+46
-45
lines changed

mypy/checker.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -7520,10 +7520,10 @@ def has_valid_attribute(self, typ: Type, name: str) -> bool:
75207520
name,
75217521
typ,
75227522
TempNode(AnyType(TypeOfAny.special_form)),
7523-
False,
7524-
False,
7525-
False,
7526-
self.msg,
7523+
is_lvalue=False,
7524+
is_super=False,
7525+
is_operator=False,
7526+
msg=self.msg,
75277527
original_type=typ,
75287528
chk=self,
75297529
# This is not a real attribute lookup so don't mess with deferring nodes.

mypy/checkexpr.py

+16-16
Original file line numberDiff line numberDiff line change
@@ -1497,10 +1497,10 @@ def check_union_call_expr(self, e: CallExpr, object_type: UnionType, member: str
14971497
member,
14981498
typ,
14991499
e,
1500-
False,
1501-
False,
1502-
False,
1503-
self.msg,
1500+
is_lvalue=False,
1501+
is_super=False,
1502+
is_operator=False,
1503+
msg=self.msg,
15041504
original_type=object_type,
15051505
chk=self.chk,
15061506
in_literal_context=self.is_literal_context(),
@@ -3293,10 +3293,10 @@ def analyze_ordinary_member_access(self, e: MemberExpr, is_lvalue: bool) -> Type
32933293
e.name,
32943294
original_type,
32953295
e,
3296-
is_lvalue,
3297-
False,
3298-
False,
3299-
self.msg,
3296+
is_lvalue=is_lvalue,
3297+
is_super=False,
3298+
is_operator=False,
3299+
msg=self.msg,
33003300
original_type=original_type,
33013301
chk=self.chk,
33023302
in_literal_context=self.is_literal_context(),
@@ -3317,10 +3317,10 @@ def analyze_external_member_access(
33173317
member,
33183318
base_type,
33193319
context,
3320-
False,
3321-
False,
3322-
False,
3323-
self.msg,
3320+
is_lvalue=False,
3321+
is_super=False,
3322+
is_operator=False,
3323+
msg=self.msg,
33243324
original_type=base_type,
33253325
chk=self.chk,
33263326
in_literal_context=self.is_literal_context(),
@@ -3800,10 +3800,10 @@ def check_method_call_by_name(
38003800
method,
38013801
base_type,
38023802
context,
3803-
False,
3804-
False,
3805-
True,
3806-
self.msg,
3803+
is_lvalue=False,
3804+
is_super=False,
3805+
is_operator=True,
3806+
msg=self.msg,
38073807
original_type=original_type,
38083808
chk=self.chk,
38093809
in_literal_context=self.is_literal_context(),

mypy/checkmember.py

+18-17
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

+8-8
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)