Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions mypy/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -456,18 +456,20 @@ def __repr__(self) -> str:
return f"Options({pprint.pformat(self.snapshot())})"

def process_error_codes(self, *, error_callback: Callable[[str], Any]) -> None:
# Process `--enable-error-code` and `--disable-error-code` flags
disabled_codes = set(self.disable_error_code)
enabled_codes = set(self.enable_error_code)
"""Process `--enable-error-code` and `--disable-error-code` flags."""
disabled_code_names = set(self.disable_error_code)
enabled_code_names = set(self.enable_error_code)

valid_error_codes = set(error_codes.keys())
valid_error_code_names = set(error_codes.keys())

invalid_codes = (enabled_codes | disabled_codes) - valid_error_codes
if invalid_codes:
error_callback(f"Invalid error code(s): {', '.join(sorted(invalid_codes))}")
invalid_code_names_here = (
enabled_code_names | disabled_code_names
) - valid_error_code_names
if invalid_code_names_here:
error_callback(f"Invalid error code(s): {', '.join(sorted(invalid_code_names_here))}")

self.disabled_error_codes |= {error_codes[code] for code in disabled_codes}
self.enabled_error_codes |= {error_codes[code] for code in enabled_codes}
self.disabled_error_codes |= {error_codes[code] for code in disabled_code_names}
self.enabled_error_codes |= {error_codes[code] for code in enabled_code_names}

# Enabling an error code always overrides disabling
self.disabled_error_codes -= self.enabled_error_codes
Expand Down