From 6f868425e77a6075c7851597e84d114c1613d42e Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 23 May 2017 09:15:50 -0700 Subject: [PATCH 1/6] Revert "Ignore errors when cleaning up test temp dirs. (#3416)" This reverts commit 9cfbb0a6b227a34561dfb0907491490906deb0df. From 514a2f5425688e1afbd915755bae2aee2b0e3cc5 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 23 May 2017 09:15:50 -0700 Subject: [PATCH 2/6] Revert "Split on ' # ' for check tests (#3417)" This reverts commit a86d148c7f586a7714bc7b486f6e4ddc924690e5. From 4b6f416dcfc11811b1711fdc6c5f9ce62d6a899c Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 23 May 2017 09:15:50 -0700 Subject: [PATCH 3/6] Revert "fix flake8-pyi python_version conditional in test-requirements (#3398)" This reverts commit 2346b74f05e930b70e9c092289aecfd1f32735aa. From 5e78abba654dee21e08cac130009b4283cffd134 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 23 May 2017 09:15:50 -0700 Subject: [PATCH 4/6] Revert "dev docs: Small tweaks in explaining test fixtures" This reverts commit 13b75737bb41d62ae4e7714704dcda3b446fa9f4. From 18a53f4eb4df88cdf5bfa87776d1c7994ffdc2e4 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 23 May 2017 09:15:50 -0700 Subject: [PATCH 5/6] Revert "Add support for test cases with more than 2 incremental runs (#3347)" This reverts commit 03f95212e4b7882fe25ede6dc6f225d51df9644e. From 4a0448d02944cb8c611786708588eb9ec92c7f46 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 23 May 2017 09:15:50 -0700 Subject: [PATCH 6/6] Revert "Add line # of previous definition (#3396)" This reverts commit 05521e4a0da032c78ef80c212d57b93600d5fdf6. --- mypy/semanal.py | 11 +++-------- test-data/unit/check-classes.test | 2 +- test-data/unit/check-functions.test | 4 ++-- test-data/unit/check-overloading.test | 2 +- test-data/unit/semanal-errors.test | 10 +++++----- 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/mypy/semanal.py b/mypy/semanal.py index 024bb7960277..b14e3dd9076e 100644 --- a/mypy/semanal.py +++ b/mypy/semanal.py @@ -3315,7 +3315,7 @@ def check_no_global(self, n: str, ctx: Context, elif prev_is_overloaded: self.fail("Definition of '{}' missing 'overload'".format(n), ctx) else: - self.name_already_defined(n, ctx, self.globals[n]) + self.name_already_defined(n, ctx) def name_not_defined(self, name: str, ctx: Context) -> None: message = "Name '{}' is not defined".format(name) @@ -3324,13 +3324,8 @@ def name_not_defined(self, name: str, ctx: Context) -> None: message += ' {}'.format(extra) self.fail(message, ctx) - def name_already_defined(self, name: str, ctx: Context, - original_ctx: Optional[SymbolTableNode] = None) -> None: - if original_ctx: - extra_msg = ' on line {}'.format(original_ctx.node.get_line()) - else: - extra_msg = '' - self.fail("Name '{}' already defined{}".format(name, extra_msg), ctx) + def name_already_defined(self, name: str, ctx: Context) -> None: + self.fail("Name '{}' already defined".format(name), ctx) def fail(self, msg: str, ctx: Context, serious: bool = False, *, blocker: bool = False) -> None: diff --git a/test-data/unit/check-classes.test b/test-data/unit/check-classes.test index 3e9ab9924809..a257fa0375f0 100644 --- a/test-data/unit/check-classes.test +++ b/test-data/unit/check-classes.test @@ -714,7 +714,7 @@ A() class A: pass class A: pass [out] -main:4: error: Name 'A' already defined on line 3 +main:4: error: Name 'A' already defined [case testDocstringInClass] import typing diff --git a/test-data/unit/check-functions.test b/test-data/unit/check-functions.test index 030fe788c5e2..e4a155a748ed 100644 --- a/test-data/unit/check-functions.test +++ b/test-data/unit/check-functions.test @@ -1212,7 +1212,7 @@ from typing import Any x = None # type: Any if x: def f(): pass -def f(): pass # E: Name 'f' already defined on line 4 +def f(): pass # E: Name 'f' already defined [case testIncompatibleConditionalFunctionDefinition] from typing import Any @@ -1835,7 +1835,7 @@ f = g # E: Incompatible types in assignment (expression has type Callable[[Any, [case testRedefineFunction2] def f() -> None: pass -def f() -> None: pass # E: Name 'f' already defined on line 1 +def f() -> None: pass # E: Name 'f' already defined -- Special cases diff --git a/test-data/unit/check-overloading.test b/test-data/unit/check-overloading.test index f3e5b993a325..69289fae18c1 100644 --- a/test-data/unit/check-overloading.test +++ b/test-data/unit/check-overloading.test @@ -1106,7 +1106,7 @@ def f(a: int) -> None: pass def f(a: str) -> None: pass [out] tmp/foo.pyi:2: error: Single overload definition, multiple required -tmp/foo.pyi:5: error: Name 'f' already defined on line 2 +tmp/foo.pyi:5: error: Name 'f' already defined [case testOverloadTuple] from foo import * diff --git a/test-data/unit/semanal-errors.test b/test-data/unit/semanal-errors.test index d7926c352a88..57dbb6ca3905 100644 --- a/test-data/unit/semanal-errors.test +++ b/test-data/unit/semanal-errors.test @@ -165,7 +165,7 @@ import typing class A: pass class A: pass [out] -main:3: error: Name 'A' already defined on line 2 +main:3: error: Name 'A' already defined [case testMultipleMixedDefinitions] import typing @@ -173,8 +173,8 @@ x = 1 def x(): pass class x: pass [out] -main:3: error: Name 'x' already defined on line 2 -main:4: error: Name 'x' already defined on line 2 +main:3: error: Name 'x' already defined +main:4: error: Name 'x' already defined [case testNameNotImported] import typing @@ -1037,13 +1037,13 @@ t = 1 # E: Invalid assignment target [case testRedefineTypevar2] from typing import TypeVar t = TypeVar('t') -def t(): pass # E: Name 't' already defined on line 2 +def t(): pass # E: Name 't' already defined [out] [case testRedefineTypevar3] from typing import TypeVar t = TypeVar('t') -class t: pass # E: Name 't' already defined on line 2 +class t: pass # E: Name 't' already defined [out] [case testRedefineTypevar4]