diff options
author | Eevee (Alex Munroe) <amunroe@yelp.com> | 2014-03-21 14:47:46 -0700 |
---|---|---|
committer | Eevee (Alex Munroe) <amunroe@yelp.com> | 2014-03-21 14:47:46 -0700 |
commit | 343ec6778c9f2535aa83c86222b5c00d2e556421 (patch) | |
tree | cb73fb4e58f3118162129bdc44763d11c43fc119 | |
parent | 6878f247e9851c31130e0519729b1410acbdb8d2 (diff) | |
download | astroid-343ec6778c9f2535aa83c86222b5c00d2e556421.tar.gz |
Avoid an (expensive) exception in transform.
-rw-r--r-- | manager.py | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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) |