forked from VimPlug/jedi
simple generator static analysis subscript check
This commit is contained in:
@@ -8,6 +8,7 @@ from jedi import debug
|
||||
CODES = {
|
||||
'attribute-error': (1, 'Potential AttributeError.'),
|
||||
'import-error': (2, 'Potential ImportError.'),
|
||||
'type-error-generator': (3, "TypeError: 'generator' object is not subscriptable."),
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ from jedi.evaluate import helpers
|
||||
from jedi.evaluate import precedence
|
||||
from jedi.evaluate.cache import CachedMetaClass, memoize_default, NO_DEFAULT
|
||||
from jedi.cache import underscore_memoization
|
||||
from jedi.evaluate import analysis
|
||||
|
||||
|
||||
class Generator(use_metaclass(CachedMetaClass, pr.Base)):
|
||||
@@ -61,7 +62,8 @@ class Generator(use_metaclass(CachedMetaClass, pr.Base)):
|
||||
return self._evaluator.execute(self.func, self.var_args, True)
|
||||
|
||||
def get_index_types(self, index_array):
|
||||
debug.warning('Tried to get array access on a generator: %s', self)
|
||||
#debug.warning('Tried to get array access on a generator: %s', self)
|
||||
analysis.add(self._evaluator, 'type-error-generator', index_array)
|
||||
return []
|
||||
|
||||
def __getattr__(self, name):
|
||||
|
||||
8
test/static_analysis/generators.py
Normal file
8
test/static_analysis/generators.py
Normal file
@@ -0,0 +1,8 @@
|
||||
def generator():
|
||||
yield 1
|
||||
|
||||
#! type-error-generator
|
||||
generator()[0]
|
||||
|
||||
list(generator())[0]
|
||||
|
||||
Reference in New Issue
Block a user