fixed some position issues

This commit is contained in:
David Halter
2013-04-28 22:12:32 +04:30
parent 56ca0cbfaa
commit 3eeecff1a1
2 changed files with 5 additions and 5 deletions

View File

@@ -133,20 +133,20 @@ def get_names_of_scope(scope, position=None, star_search=True,
... ''')
>>> scope = parser.module.subscopes[0]
>>> scope
<Function: func@3-6>
<Function: func@3-5>
`get_names_of_scope` is a generator. First it yields names from
most inner scope.
>>> pairs = list(get_names_of_scope(scope))
>>> pairs[0]
(<Function: func@3-6>, [<Name: y@4,4>])
(<Function: func@3-5>, [<Name: y@4,4>])
Then it yield the names from one level outer scope. For this
example, this is the most outer scope.
>>> pairs[1]
(<SubModule: None@1-6>, [<Name: x@2,0>, <Name: func@3,4>])
(<SubModule: None@1-5>, [<Name: x@2,0>, <Name: func@3,4>])
Finally, it yields names from builtin, if `include_builtin` is
true (default).

View File

@@ -430,8 +430,8 @@ class Parser(object):
except (StopIteration, common.MultiLevelStopIteration):
# on finish, set end_pos correctly
s = self.scope
while s is not None and (not isinstance(s, pr.Module)
and isinstance(s, pr.SubModule)):
while s is not None and not (isinstance(s, pr.Module)
and not isinstance(s, pr.SubModule)):
s.end_pos = self.end_pos
s = s.parent
raise