diff options
author | Laura M?dioni <laura.medioni@logilab.fr> | 2015-10-30 13:20:27 +0100 |
---|---|---|
committer | Laura M?dioni <laura.medioni@logilab.fr> | 2015-10-30 13:20:27 +0100 |
commit | 48de7002126f9c0a73c299ebd8d494612d42a285 (patch) | |
tree | 1def60fde707fb28a69b741fa6227306a37ebf89 /pylint/test/functional | |
parent | 0c7dc2248c66da8d8884985ec5d96f2d243b1849 (diff) | |
download | pylint-48de7002126f9c0a73c299ebd8d494612d42a285.tar.gz |
check if the type of a variable is redefined (at a function, class or module scope)
related to issue #674
Diffstat (limited to 'pylint/test/functional')
-rw-r--r-- | pylint/test/functional/bad_continuation.py | 2 | ||||
-rw-r--r-- | pylint/test/functional/member_checks.py | 2 | ||||
-rw-r--r-- | pylint/test/functional/redefined_variable_type.py | 50 | ||||
-rw-r--r-- | pylint/test/functional/redefined_variable_type.txt | 6 | ||||
-rw-r--r-- | pylint/test/functional/undefined_variable.py | 2 |
5 files changed, 59 insertions, 3 deletions
diff --git a/pylint/test/functional/bad_continuation.py b/pylint/test/functional/bad_continuation.py index 34292ab..c0918a6 100644 --- a/pylint/test/functional/bad_continuation.py +++ b/pylint/test/functional/bad_continuation.py @@ -1,5 +1,5 @@ """Regression test case for bad-continuation.""" -# pylint: disable=print-statement,using-constant-test +# pylint: disable=print-statement,using-constant-test, redefined-variable-type # Various alignment for brackets from __future__ import print_function diff --git a/pylint/test/functional/member_checks.py b/pylint/test/functional/member_checks.py index 50a0d97..9692e05 100644 --- a/pylint/test/functional/member_checks.py +++ b/pylint/test/functional/member_checks.py @@ -1,5 +1,5 @@ # pylint: disable=print-statement,missing-docstring,no-self-use,too-few-public-methods,bare-except,broad-except -# pylint: disable=using-constant-test,expression-not-assigned +# pylint: disable=using-constant-test,expression-not-assigned, redefined-variable-type from __future__ import print_function class Provider(object): diff --git a/pylint/test/functional/redefined_variable_type.py b/pylint/test/functional/redefined_variable_type.py new file mode 100644 index 0000000..9851702 --- /dev/null +++ b/pylint/test/functional/redefined_variable_type.py @@ -0,0 +1,50 @@ +"""Checks variable types aren't redefined within a method or a function""" + +# pylint: disable=too-few-public-methods, missing-docstring, unused-variable + +_OK = True + +def my_func(): + var = 'foo' + var = 'bar' + var = var.split() # [redefined-variable-type] + +class MyClass(object): + def __init__(self): + self.var = True + self.var1 = 2 + self.var2 = 1. + self.var1 = 2. # [redefined-variable-type] + self.a_str = "hello" + a_str = False + (a_str, b_str) = (1, 2) + a_str = 2.0 if self.var else 1.0 + + def _getter(self): + return self.a_str + def _setter(self, val): + self.a_str = val + var2 = property(_getter, _setter) + + def some_method(self): + self.var = 1 + test = 'foo' + myint = 2 + myint = False # [redefined-variable-type] + +_OK = "This is OK" # [redefined-variable-type] + +SOME_FLOAT = 1. + +def dummy_function(): + return 2 + +def other_function(): + instance = MyClass() + instance = True # [redefined-variable-type] + +SOME_FLOAT = dummy_function() # [redefined-variable-type] + +A_GLOB = None +A_GLOB = [1, 2, 3] + diff --git a/pylint/test/functional/redefined_variable_type.txt b/pylint/test/functional/redefined_variable_type.txt new file mode 100644 index 0000000..329d4d6 --- /dev/null +++ b/pylint/test/functional/redefined_variable_type.txt @@ -0,0 +1,6 @@ +redefined-variable-type:10:my_func:Redefinition of var type from str to list +redefined-variable-type:17:MyClass.__init__:Redefinition of self.var1 type from int to float +redefined-variable-type:33:MyClass.some_method:Redefinition of myint type from int to bool +redefined-variable-type:35::Redefinition of _OK type from bool to str +redefined-variable-type:44:other_function:Redefinition of instance type from functional.redefined_variable_type.MyClass to bool +redefined-variable-type:46::Redefinition of SOME_FLOAT type from float to int diff --git a/pylint/test/functional/undefined_variable.py b/pylint/test/functional/undefined_variable.py index 44a0652..538cff1 100644 --- a/pylint/test/functional/undefined_variable.py +++ b/pylint/test/functional/undefined_variable.py @@ -1,4 +1,4 @@ -# pylint: disable=missing-docstring, multiple-statements +# pylint: disable=missing-docstring, multiple-statements, redefined-variable-type # pylint: disable=too-few-public-methods, no-init, no-self-use, old-style-class,bare-except,broad-except from __future__ import print_function DEFINED = 1 |