summaryrefslogtreecommitdiff
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-03-21 14:47:46 -0700
commit343ec6778c9f2535aa83c86222b5c00d2e556421 (patch)
treecb73fb4e58f3118162129bdc44763d11c43fc119
parent6878f247e9851c31130e0519729b1410acbdb8d2 (diff)
downloadastroid-343ec6778c9f2535aa83c86222b5c00d2e556421.tar.gz
Avoid an (expensive) exception in transform.
-rw-r--r--manager.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/manager.py b/manager.py
index f5e8132..273bf06 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)