From 1d1c0ec3af7b65d66ce63baf23d51f5bb318f961 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 14 Jun 2020 17:55:49 +0200 Subject: [PATCH] Better debugging output for is_sub_class_of --- jedi/debug.py | 6 +++--- jedi/inference/base_value.py | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/jedi/debug.py b/jedi/debug.py index 4136acf4..753930e1 100644 --- a/jedi/debug.py +++ b/jedi/debug.py @@ -84,17 +84,17 @@ def increase_indent(func): @contextmanager -def increase_indent_cm(title=None): +def increase_indent_cm(title=None, color='MAGENTA'): global _debug_indent if title: - dbg('Start: ' + title, color='MAGENTA') + dbg('Start: ' + title, color=color) _debug_indent += 1 try: yield finally: _debug_indent -= 1 if title: - dbg('End: ' + title, color='MAGENTA') + dbg('End: ' + title, color=color) def dbg(message, *args, **kwargs): diff --git a/jedi/inference/base_value.py b/jedi/inference/base_value.py index 075de49a..8d7b0961 100644 --- a/jedi/inference/base_value.py +++ b/jedi/inference/base_value.py @@ -114,10 +114,14 @@ class HelperValueMixin(object): return self.py__iter__(contextualized_node) def is_sub_class_of(self, class_value): - for cls in self.py__mro__(): - if cls.is_same_class(class_value): - return True - return False + with debug.increase_indent_cm('subclass matching of %s <=> %s' % (self, class_value), + color='BLUE'): + for cls in self.py__mro__(): + if cls.is_same_class(class_value): + debug.dbg('matched subclass True', color='BLUE') + return True + debug.dbg('matched subclass False', color='BLUE') + return False def is_same_class(self, class2): # Class matching should prefer comparisons that are not this function.