From 4c53a64ca01e5a3295c055f8c0e966d776834557 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Mon, 14 Apr 2014 10:12:29 +0200 Subject: [PATCH] increase speed again for compiled objects by not using sorted + lambda on its list of defined names --- jedi/evaluate/finder.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jedi/evaluate/finder.py b/jedi/evaluate/finder.py index 9ece055d..6e33f243 100644 --- a/jedi/evaluate/finder.py +++ b/jedi/evaluate/finder.py @@ -63,8 +63,12 @@ class NameFinder(object): result = [] for nscope, name_list in scope_generator: break_scopes = [] - # here is the position stuff happening (sorting of variables) - for name in sorted(name_list, key=lambda n: n.start_pos, reverse=True): + if not isinstance(nscope, compiled.CompiledObject): + # Here is the position stuff happening (sorting of variables). + # Compiled objects don't need that, because there's only one + # reference. + name_list = sorted(name_list, key=lambda n: n.start_pos, reverse=True) + for name in name_list: parpar = name.parent.parent if self.name_str == name.get_code() and parpar not in break_scopes: if not self._name_is_array_assignment(name):