mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-15 10:07:06 +08:00
probably half of the tests are running again.
This commit is contained in:
10
evaluate.py
10
evaluate.py
@@ -33,6 +33,7 @@ import dynamic
|
|||||||
|
|
||||||
memoize_caches = []
|
memoize_caches = []
|
||||||
statement_path = []
|
statement_path = []
|
||||||
|
faked_scopes = []
|
||||||
|
|
||||||
|
|
||||||
class DecoratorNotFound(LookupError):
|
class DecoratorNotFound(LookupError):
|
||||||
@@ -69,14 +70,14 @@ class MultiLevelAttributeError(Exception):
|
|||||||
|
|
||||||
|
|
||||||
def clear_caches():
|
def clear_caches():
|
||||||
global memoize_caches
|
global memoize_caches, statement_path, faked_scopes
|
||||||
global statement_path
|
|
||||||
|
|
||||||
for m in memoize_caches:
|
for m in memoize_caches:
|
||||||
m.clear()
|
m.clear()
|
||||||
|
|
||||||
memoize_caches = []
|
memoize_caches = []
|
||||||
statement_path = []
|
statement_path = []
|
||||||
|
faked_scopes = []
|
||||||
|
|
||||||
follow_statement.reset()
|
follow_statement.reset()
|
||||||
|
|
||||||
@@ -492,12 +493,14 @@ class Execution(Executable):
|
|||||||
calls.keys = keys
|
calls.keys = keys
|
||||||
calls.type = array_type
|
calls.type = array_type
|
||||||
new_param = copy.copy(param)
|
new_param = copy.copy(param)
|
||||||
new_param.parent = parent_stmt
|
if parent_stmt is not None:
|
||||||
|
new_param.parent = weakref.ref(parent_stmt)
|
||||||
new_param._assignment_calls_calculated = True
|
new_param._assignment_calls_calculated = True
|
||||||
new_param._assignment_calls = calls
|
new_param._assignment_calls = calls
|
||||||
new_param.is_generated = True
|
new_param.is_generated = True
|
||||||
name = copy.copy(param.get_name())
|
name = copy.copy(param.get_name())
|
||||||
name.parent = weakref.ref(new_param)
|
name.parent = weakref.ref(new_param)
|
||||||
|
faked_scopes.append(new_param)
|
||||||
return name
|
return name
|
||||||
|
|
||||||
result = []
|
result = []
|
||||||
@@ -946,7 +949,6 @@ def get_scopes_for_name(scope, name_str, position=None, search_global=False):
|
|||||||
and scope.var == name.parent().parent():
|
and scope.var == name.parent().parent():
|
||||||
name = InstanceElement(scope.instance, name)
|
name = InstanceElement(scope.instance, name)
|
||||||
par = name.parent()
|
par = name.parent()
|
||||||
print name, par
|
|
||||||
if par.isinstance(parsing.Flow):
|
if par.isinstance(parsing.Flow):
|
||||||
if par.command == 'for':
|
if par.command == 'for':
|
||||||
result += handle_for_loops(par)
|
result += handle_for_loops(par)
|
||||||
|
|||||||
@@ -323,6 +323,7 @@ def set_debug_function(func_cb):
|
|||||||
def _clear_caches():
|
def _clear_caches():
|
||||||
evaluate.clear_caches()
|
evaluate.clear_caches()
|
||||||
import gc
|
import gc
|
||||||
|
return
|
||||||
#gc.set_debug(gc.DEBUG_STATS | gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS)
|
#gc.set_debug(gc.DEBUG_STATS | gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS)
|
||||||
#gc.collect()
|
#gc.collect()
|
||||||
count = 0
|
count = 0
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import os
|
|||||||
import pkgutil
|
import pkgutil
|
||||||
import imp
|
import imp
|
||||||
import sys
|
import sys
|
||||||
|
import weakref
|
||||||
|
|
||||||
import builtin
|
import builtin
|
||||||
import modules
|
import modules
|
||||||
@@ -61,7 +62,8 @@ class ImportPath(object):
|
|||||||
zero = (None, None)
|
zero = (None, None)
|
||||||
n = parsing.Name(i.namespace.names[1:], zero, zero)
|
n = parsing.Name(i.namespace.names[1:], zero, zero)
|
||||||
new = parsing.Import(zero, zero, n)
|
new = parsing.Import(zero, zero, n)
|
||||||
new.parent = lambda: parent
|
new.parent = weakref.ref(parent)
|
||||||
|
evaluate.faked_scopes.append(new)
|
||||||
debug.dbg('Generated a nested import: %s' % new)
|
debug.dbg('Generated a nested import: %s' % new)
|
||||||
return new
|
return new
|
||||||
|
|
||||||
|
|||||||
@@ -210,3 +210,18 @@ tuple(lst)[0]
|
|||||||
# but not with an iterator
|
# but not with an iterator
|
||||||
#?
|
#?
|
||||||
iter(lst)[0]
|
iter(lst)[0]
|
||||||
|
|
||||||
|
# -----------------
|
||||||
|
# functions
|
||||||
|
# -----------------
|
||||||
|
|
||||||
|
def arr_append(arr, a):
|
||||||
|
arr.append(a)
|
||||||
|
|
||||||
|
def add_to_arr(arr, a):
|
||||||
|
arr.append(a)
|
||||||
|
return arr
|
||||||
|
|
||||||
|
a = [1.0]
|
||||||
|
#? int()
|
||||||
|
add_to_arr(a, 1)[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user