mirror of
https://github.com/davidhalter/jedi.git
synced 2026-02-28 11:32:19 +08:00
@property now returns Name.type == 'property', fixes muffinmad/anakin-language-server#15
This commit is contained in:
@@ -37,7 +37,8 @@ py__doc__() Returns the docstring for a value.
|
||||
|
||||
"""
|
||||
from jedi import debug
|
||||
from jedi.parser_utils import get_cached_parent_scope, expr_is_dotted
|
||||
from jedi.parser_utils import get_cached_parent_scope, expr_is_dotted, \
|
||||
function_is_property
|
||||
from jedi.inference.cache import inference_state_method_cache, CachedMetaClass, \
|
||||
inference_state_method_generator_cache
|
||||
from jedi.inference import compiled
|
||||
@@ -72,6 +73,20 @@ class ClassName(TreeNameDefinition):
|
||||
else:
|
||||
yield result_value
|
||||
|
||||
@property
|
||||
def api_type(self):
|
||||
if self.tree_name is not None:
|
||||
definition = self.tree_name.get_definition()
|
||||
if definition.type == 'funcdef':
|
||||
if function_is_property(definition):
|
||||
# This essentially checks if there is an @property before
|
||||
# the function. @property could be something different, but
|
||||
# any programmer that redefines property as something that
|
||||
# is not really a property anymore, should be shot. (i.e.
|
||||
# this is a heuristic).
|
||||
return 'property'
|
||||
return super().api_type
|
||||
|
||||
|
||||
class ClassFilter(ParserTreeFilter):
|
||||
def __init__(self, class_value, node_context=None, until_position=None,
|
||||
|
||||
Reference in New Issue
Block a user