summaryrefslogtreecommitdiff
path: root/astroid/protocols.py
diff options
context:
space:
mode:
authorClaudiu Popa <pcmanticore@gmail.com>2015-11-05 15:44:59 +0200
committerClaudiu Popa <pcmanticore@gmail.com>2015-11-05 15:44:59 +0200
commitef2e48a4842c0d30a3d8379c0570731aab8243ef (patch)
tree33dfead9c99912efa6970be0632c5157151e96ec /astroid/protocols.py
parent282ee076e73e0683752cafeba9c64156074b5e88 (diff)
downloadastroid-git-ef2e48a4842c0d30a3d8379c0570731aab8243ef.tar.gz
The inference functions are implemented as dispatch-functions on virtual base classes, instead of monkey-patching nodes
This has the nice side effect that circular the dependency between inference.py and node_classes is finally removed.
Diffstat (limited to 'astroid/protocols.py')
-rw-r--r--astroid/protocols.py5
1 files changed, 2 insertions, 3 deletions
diff --git a/astroid/protocols.py b/astroid/protocols.py
index 2ef24716..7eb8a1b1 100644
--- a/astroid/protocols.py
+++ b/astroid/protocols.py
@@ -28,7 +28,6 @@ import six
from astroid import context as contextmod
from astroid import decorators
from astroid import exceptions
-from astroid.interpreter import objects
from astroid.interpreter import runtimeabc
from astroid.interpreter import util as inferenceutil
from astroid.tree import treeabc
@@ -304,7 +303,7 @@ def _arguments_infer_argname(self, name, context, nodes):
yield cls
return
if functype == 'method':
- yield objects.Instance(self.parent.parent.frame())
+ yield self.parent.parent.frame().instanciate_class()
return
if context and context.callcontext:
@@ -394,7 +393,7 @@ def _resolve_asspart(parts, asspath, context):
def excepthandler_assigned_stmts(self, nodes, node=None, context=None, asspath=None):
for assigned in inferenceutil.unpack_infer(self.type):
if isinstance(assigned, treeabc.ClassDef):
- assigned = objects.Instance(assigned)
+ assigned = assigned.instanciate_class()
yield assigned