1
0
forked from VimPlug/jedi

add an empty IsScope class to match all scopes

This commit is contained in:
David Halter
2013-02-14 20:54:26 +04:00
parent 52b32a01c1
commit cda84dc92a
3 changed files with 9 additions and 5 deletions

View File

@@ -634,7 +634,7 @@ def follow_call_list(call_list, follow_array=False):
def follow_call(call): def follow_call(call):
"""Follow a call is following a function, variable, string, etc.""" """Follow a call is following a function, variable, string, etc."""
path = call.generate_call_path() path = call.generate_call_path()
scope = call.get_parent_until((pr.Scope, er.Execution)) scope = call.get_parent_until(pr.IsScope)
return follow_call_path(path, scope, call.start_pos) return follow_call_path(path, scope, call.start_pos)

View File

@@ -34,7 +34,7 @@ class DecoratorNotFound(LookupError):
pass pass
class Executable(pr.Base): class Executable(pr.IsScope):
""" """
An instance is also an executable - because __init__ is called An instance is also an executable - because __init__ is called
:param var_args: The param input array, consist of `pr.Array` or list. :param var_args: The param input array, consist of `pr.Array` or list.
@@ -241,7 +241,7 @@ class InstanceElement(use_metaclass(cache.CachedMetaClass)):
return "<%s of %s>" % (type(self).__name__, self.var) return "<%s of %s>" % (type(self).__name__, self.var)
class Class(use_metaclass(cache.CachedMetaClass, pr.Base)): class Class(use_metaclass(cache.CachedMetaClass, pr.IsScope)):
""" """
This class is not only important to extend `pr.Class`, it is also a This class is not only important to extend `pr.Class`, it is also a
important for descriptors (if the descriptor methods are evaluated or not). important for descriptors (if the descriptor methods are evaluated or not).
@@ -307,7 +307,7 @@ class Class(use_metaclass(cache.CachedMetaClass, pr.Base)):
return "<e%s of %s>" % (type(self).__name__, self.base) return "<e%s of %s>" % (type(self).__name__, self.base)
class Function(use_metaclass(cache.CachedMetaClass, pr.Base)): class Function(use_metaclass(cache.CachedMetaClass, pr.IsScope)):
""" """
Needed because of decorators. Decorators are evaluated here. Needed because of decorators. Decorators are evaluated here.
""" """

View File

@@ -97,7 +97,11 @@ class Simple(Base):
(type(self).__name__, code, self.start_pos[0]) (type(self).__name__, code, self.start_pos[0])
class Scope(Simple): class IsScope(Base):
pass
class Scope(Simple, IsScope):
""" """
Super class for the parser tree, which represents the state of a python Super class for the parser tree, which represents the state of a python
text file. text file.