diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2021-07-29 23:24:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-29 23:24:29 +0200 |
commit | 23412dc98f895a0262119320e54ad78ec4e108bc (patch) | |
tree | 665cf02ae489a9181ede523e72cbf2f63f3285a2 /tests/functional/u | |
parent | ca3bc53fd8d628473fba25c7736d0abfac8e4a4a (diff) | |
download | pylint-git-23412dc98f895a0262119320e54ad78ec4e108bc.tar.gz |
Add new checkers ``use-list-literal`` and ``use-dict-literal`` (#4769)
* Add ``use-list-literal`` and ``use-dict-literal``
This adds two checks for when empty lists and dicts are created
using a function call instead of their literals.
This closes #4365
* Conform code to use-list-literal, use-dict-literal
With addition of the use-list-literal and use-dict-literal
checkers some code had to be updated.
As there is a real performance difference, the literal is preferred
when it is as clear as using the function call.
* Conform test to use-list-literal, use-dict-literal
With addition of the use-list-literal and use-dict-literal
checkers some code had to be updated.
As there is a real performance difference, the literal is preferred
when it is as clear as using the function call. For some tests
ignoring the checker seemed better for clarity of the test.
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Diffstat (limited to 'tests/functional/u')
8 files changed, 25 insertions, 7 deletions
diff --git a/tests/functional/u/unnecessary/unnecessary_comprehension.py b/tests/functional/u/unnecessary/unnecessary_comprehension.py index d6a3d1e3b..3d76f6e66 100644 --- a/tests/functional/u/unnecessary/unnecessary_comprehension.py +++ b/tests/functional/u/unnecessary/unnecessary_comprehension.py @@ -13,7 +13,7 @@ [2 * x for x in iterable] # exclude useful comprehensions [(x, y, 1) for x, y in iterable] # exclude useful comprehensions # Test case for issue #4499 -a_dict = dict() +a_dict = {} [(k, v) for k, v in a_dict.items()] # [unnecessary-comprehension] # Set comprehensions @@ -39,8 +39,8 @@ a_dict = dict() {2 * x: 3 + x for x in iterable} # exclude useful comprehensions # Some additional tests on helptext -- when object is already a list/set/dict -my_list = list() -my_dict = dict() +my_list = [] +my_dict = {} my_set = set() [elem for elem in my_list] # [unnecessary-comprehension] diff --git a/tests/functional/u/unnecessary/unnecessary_dict_index_lookup.py b/tests/functional/u/unnecessary/unnecessary_dict_index_lookup.py index f166e6c72..55dd5688c 100644 --- a/tests/functional/u/unnecessary/unnecessary_dict_index_lookup.py +++ b/tests/functional/u/unnecessary/unnecessary_dict_index_lookup.py @@ -1,7 +1,7 @@ # pylint: disable=missing-docstring, too-few-public-methods, expression-not-assigned, line-too-long -a_dict = dict() -b_dict = dict() +a_dict = {} +b_dict = {} for k, v in a_dict.items(): print(a_dict[k]) # [unnecessary-dict-index-lookup] diff --git a/tests/functional/u/unnecessary/unnecessary_lambda.py b/tests/functional/u/unnecessary/unnecessary_lambda.py index f0bd775f3..91f6bf86d 100644 --- a/tests/functional/u/unnecessary/unnecessary_lambda.py +++ b/tests/functional/u/unnecessary/unnecessary_lambda.py @@ -1,4 +1,4 @@ -# pylint: disable=undefined-variable
+# pylint: disable=undefined-variable, use-list-literal
"""test suspicious lambda expressions
"""
diff --git a/tests/functional/u/use/use_literal_dict.py b/tests/functional/u/use/use_literal_dict.py new file mode 100644 index 000000000..3377b4e63 --- /dev/null +++ b/tests/functional/u/use/use_literal_dict.py @@ -0,0 +1,7 @@ +# pylint: disable=missing-docstring, invalid-name + +x = dict() # [use-dict-literal] +x = dict(a="1", b=None, c=3) +x = dict(zip(["a", "b", "c"], [1, 2, 3])) +x = {} +x = {"a": 1, "b": 2, "c": 3} diff --git a/tests/functional/u/use/use_literal_dict.txt b/tests/functional/u/use/use_literal_dict.txt new file mode 100644 index 000000000..eede5530d --- /dev/null +++ b/tests/functional/u/use/use_literal_dict.txt @@ -0,0 +1 @@ +use-dict-literal:3:4::"Consider using {} instead of dict()" diff --git a/tests/functional/u/use/use_literal_list.py b/tests/functional/u/use/use_literal_list.py new file mode 100644 index 000000000..78614a49d --- /dev/null +++ b/tests/functional/u/use/use_literal_list.py @@ -0,0 +1,9 @@ +# pylint: disable=missing-docstring, invalid-name + +x = list() # [use-list-literal] +x = list("string") +x = list(range(3)) +x = [] +x = ["string"] +x = [1, 2, 3] +x = [range(3)] diff --git a/tests/functional/u/use/use_literal_list.txt b/tests/functional/u/use/use_literal_list.txt new file mode 100644 index 000000000..07987027d --- /dev/null +++ b/tests/functional/u/use/use_literal_list.txt @@ -0,0 +1 @@ +use-list-literal:3:4::"Consider using [] instead of list()" diff --git a/tests/functional/u/use/using_constant_test.py b/tests/functional/u/use/using_constant_test.py index b3d06230a..74b8a9c1a 100644 --- a/tests/functional/u/use/using_constant_test.py +++ b/tests/functional/u/use/using_constant_test.py @@ -2,7 +2,7 @@ # pylint: disable=invalid-name, missing-docstring,too-few-public-methods # pylint: disable=no-init,expression-not-assigned, useless-object-inheritance # pylint: disable=missing-parentheses-for-call-in-test, unnecessary-comprehension, condition-evals-to-constant - +# pylint: disable=use-list-literal, use-dict-literal import collections |