summaryrefslogtreecommitdiff
path: root/manager.py
diff options
context:
space:
mode:
authorEevee (Alex Munroe) <amunroe@yelp.com>2014-03-21 14:47:46 -0700
committerEevee (Alex Munroe) <amunroe@yelp.com>2014-04-08 12:01:13 -0700
commit23dbb7c237fb7cf963c809bd33a3c3d2361a6102 (patch)
treee3f1020f7792f7d967157b4bf60ef1ecf8f542aa /manager.py
parentd6a89691e89f1c92fa740ddc1641cc2d984c4497 (diff)
downloadastroid-git-23dbb7c237fb7cf963c809bd33a3c3d2361a6102.tar.gz
Avoid an (expensive) exception in transform.
Diffstat (limited to 'manager.py')
-rw-r--r--manager.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/manager.py b/manager.py
index f5e81321..273bf06a 100644
--- a/manager.py
+++ b/manager.py
@@ -281,11 +281,13 @@ class AstroidManager(OptionsProviderMixIn):
"""Call matching transforms for the given node if any and return the
transformed node.
"""
- try:
- transforms = self.transforms[type(node)]
- except KeyError:
- return node # no transform registered for this class of node
- orig_node = node # copy the reference
+ cls = node.__class__
+ if cls not in self.transforms:
+ # no transform registered for this class of node
+ return node
+
+ transforms = self.transforms[cls]
+ orig_node = node # copy the reference
for transform_func, predicate in transforms:
if predicate is None or predicate(node):
ret = transform_func(node)