Skip to content

Commit 7849b8f

Browse files
authored
Rename partially-defined error codes (#14267)
Rename `partially-defined` to `possibly-undefined` and `use-before-def` to `used-before-def`. Ref #14226
1 parent 695ea30 commit 7849b8f

File tree

8 files changed

+93
-93
lines changed

8 files changed

+93
-93
lines changed

mypy/build.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
from mypy.indirection import TypeIndirectionVisitor
5151
from mypy.messages import MessageBuilder
5252
from mypy.nodes import Import, ImportAll, ImportBase, ImportFrom, MypyFile, SymbolTable, TypeInfo
53-
from mypy.partially_defined import PartiallyDefinedVariableVisitor
53+
from mypy.partially_defined import PossiblyUndefinedVariableVisitor
5454
from mypy.semanal import SemanticAnalyzer
5555
from mypy.semanal_pass1 import SemanticAnalyzerPreAnalysis
5656
from mypy.util import (
@@ -2347,18 +2347,18 @@ def type_check_second_pass(self) -> bool:
23472347
self.time_spent_us += time_spent_us(t0)
23482348
return result
23492349

2350-
def detect_partially_defined_vars(self, type_map: dict[Expression, Type]) -> None:
2350+
def detect_possibly_undefined_vars(self, type_map: dict[Expression, Type]) -> None:
23512351
assert self.tree is not None, "Internal error: method must be called on parsed file only"
23522352
if self.tree.is_stub:
23532353
# We skip stub files because they aren't actually executed.
23542354
return
23552355
manager = self.manager
23562356
if manager.errors.is_error_code_enabled(
2357-
codes.PARTIALLY_DEFINED
2358-
) or manager.errors.is_error_code_enabled(codes.USE_BEFORE_DEF):
2357+
codes.POSSIBLY_UNDEFINED
2358+
) or manager.errors.is_error_code_enabled(codes.USED_BEFORE_DEF):
23592359
manager.errors.set_file(self.xpath, self.tree.fullname, options=manager.options)
23602360
self.tree.accept(
2361-
PartiallyDefinedVariableVisitor(
2361+
PossiblyUndefinedVariableVisitor(
23622362
MessageBuilder(manager.errors, manager.modules), type_map, manager.options
23632363
)
23642364
)
@@ -3412,7 +3412,7 @@ def process_stale_scc(graph: Graph, scc: list[str], manager: BuildManager) -> No
34123412
graph[id].type_check_first_pass()
34133413
if not graph[id].type_checker().deferred_nodes:
34143414
unfinished_modules.discard(id)
3415-
graph[id].detect_partially_defined_vars(graph[id].type_map())
3415+
graph[id].detect_possibly_undefined_vars(graph[id].type_map())
34163416
graph[id].finish_passes()
34173417

34183418
while unfinished_modules:
@@ -3421,7 +3421,7 @@ def process_stale_scc(graph: Graph, scc: list[str], manager: BuildManager) -> No
34213421
continue
34223422
if not graph[id].type_check_second_pass():
34233423
unfinished_modules.discard(id)
3424-
graph[id].detect_partially_defined_vars(graph[id].type_map())
3424+
graph[id].detect_possibly_undefined_vars(graph[id].type_map())
34253425
graph[id].finish_passes()
34263426
for id in stale:
34273427
graph[id].generate_unused_ignore_notes()

mypy/errorcodes.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ def __str__(self) -> str:
140140
ANNOTATION_UNCHECKED = ErrorCode(
141141
"annotation-unchecked", "Notify about type annotations in unchecked functions", "General"
142142
)
143-
PARTIALLY_DEFINED: Final[ErrorCode] = ErrorCode(
144-
"partially-defined",
143+
POSSIBLY_UNDEFINED: Final[ErrorCode] = ErrorCode(
144+
"possibly-undefined",
145145
"Warn about variables that are defined only in some execution paths",
146146
"General",
147147
default_enabled=False,
@@ -192,8 +192,8 @@ def __str__(self) -> str:
192192
"General",
193193
default_enabled=False,
194194
)
195-
USE_BEFORE_DEF: Final[ErrorCode] = ErrorCode(
196-
"use-before-def",
195+
USED_BEFORE_DEF: Final[ErrorCode] = ErrorCode(
196+
"used-before-def",
197197
"Warn about variables that are used before they are defined",
198198
"General",
199199
default_enabled=False,

mypy/messages.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,10 +1229,10 @@ def undefined_in_superclass(self, member: str, context: Context) -> None:
12291229
self.fail(f'"{member}" undefined in superclass', context)
12301230

12311231
def variable_may_be_undefined(self, name: str, context: Context) -> None:
1232-
self.fail(f'Name "{name}" may be undefined', context, code=codes.PARTIALLY_DEFINED)
1232+
self.fail(f'Name "{name}" may be undefined', context, code=codes.POSSIBLY_UNDEFINED)
12331233

12341234
def var_used_before_def(self, name: str, context: Context) -> None:
1235-
self.fail(f'Name "{name}" is used before definition', context, code=codes.USE_BEFORE_DEF)
1235+
self.fail(f'Name "{name}" is used before definition', context, code=codes.USED_BEFORE_DEF)
12361236

12371237
def first_argument_for_super_must_be_type(self, actual: Type, context: Context) -> None:
12381238
actual = get_proper_type(actual)

mypy/partially_defined.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def skip_branch(self) -> None:
104104
assert len(self.branches) > 0
105105
self.branches[-1].skipped = True
106106

107-
def is_partially_defined(self, name: str) -> bool:
107+
def is_possibly_undefined(self, name: str) -> bool:
108108
assert len(self.branches) > 0
109109
return name in self.branches[-1].may_be_defined
110110

@@ -213,10 +213,10 @@ def pop_undefined_ref(self, name: str) -> set[NameExpr]:
213213
assert len(self.scopes) > 0
214214
return self._scope().pop_undefined_ref(name)
215215

216-
def is_partially_defined(self, name: str) -> bool:
216+
def is_possibly_undefined(self, name: str) -> bool:
217217
assert len(self._scope().branch_stmts) > 0
218218
# A variable is undefined if it's in a set of `may_be_defined` but not in `must_be_defined`.
219-
return self._scope().branch_stmts[-1].is_partially_defined(name)
219+
return self._scope().branch_stmts[-1].is_possibly_undefined(name)
220220

221221
def is_defined_in_different_branch(self, name: str) -> bool:
222222
"""This will return true if a variable is defined in a branch that's not the current branch."""
@@ -243,7 +243,7 @@ def __init__(self) -> None:
243243
self.has_break = False
244244

245245

246-
class PartiallyDefinedVariableVisitor(ExtendedTraverserVisitor):
246+
class PossiblyUndefinedVariableVisitor(ExtendedTraverserVisitor):
247247
"""Detects the following cases:
248248
- A variable that's defined only part of the time.
249249
- If a variable is used before definition
@@ -253,7 +253,7 @@ class PartiallyDefinedVariableVisitor(ExtendedTraverserVisitor):
253253
x = 1
254254
print(x) # Error: "x" may be undefined.
255255
256-
Example of a use before definition:
256+
Example of a used before definition:
257257
x = y
258258
y: int = 2
259259
@@ -273,15 +273,15 @@ def __init__(
273273
self.tracker.record_definition(name)
274274

275275
def var_used_before_def(self, name: str, context: Context) -> None:
276-
if self.msg.errors.is_error_code_enabled(errorcodes.USE_BEFORE_DEF):
276+
if self.msg.errors.is_error_code_enabled(errorcodes.USED_BEFORE_DEF):
277277
self.msg.var_used_before_def(name, context)
278278

279279
def variable_may_be_undefined(self, name: str, context: Context) -> None:
280-
if self.msg.errors.is_error_code_enabled(errorcodes.PARTIALLY_DEFINED):
280+
if self.msg.errors.is_error_code_enabled(errorcodes.POSSIBLY_UNDEFINED):
281281
self.msg.variable_may_be_undefined(name, context)
282282

283283
def process_definition(self, name: str) -> None:
284-
# Was this name previously used? If yes, it's a use-before-definition error.
284+
# Was this name previously used? If yes, it's a used-before-definition error.
285285
refs = self.tracker.pop_undefined_ref(name)
286286
for ref in refs:
287287
self.var_used_before_def(name, ref)
@@ -471,7 +471,7 @@ def visit_starred_pattern(self, o: StarredPattern) -> None:
471471
def visit_name_expr(self, o: NameExpr) -> None:
472472
if refers_to_builtin(o):
473473
return
474-
if self.tracker.is_partially_defined(o.name):
474+
if self.tracker.is_possibly_undefined(o.name):
475475
# A variable is only defined in some branches.
476476
self.variable_may_be_undefined(o.name, o)
477477
# We don't want to report the error on the same variable multiple times.
@@ -488,7 +488,7 @@ def visit_name_expr(self, o: NameExpr) -> None:
488488
# 2. The variable is defined later in the code.
489489
# Case (1) will be caught by semantic analyzer. Case (2) is a forward ref that should
490490
# be caught by this visitor. Save the ref for later, so that if we see a definition,
491-
# we know it's a use-before-definition scenario.
491+
# we know it's a used-before-definition scenario.
492492
self.tracker.record_undefined_ref(o)
493493
super().visit_name_expr(o)
494494

mypy/server/update.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ def restore(ids: list[str]) -> None:
662662
state.type_checker().reset()
663663
state.type_check_first_pass()
664664
state.type_check_second_pass()
665-
state.detect_partially_defined_vars(state.type_map())
665+
state.detect_possibly_undefined_vars(state.type_map())
666666
t2 = time.time()
667667
state.finish_passes()
668668
t3 = time.time()

0 commit comments

Comments
 (0)