diff options
| author | Eevee (Alex Munroe) <amunroe@yelp.com> | 2014-03-21 14:47:46 -0700 |
|---|---|---|
| committer | Eevee (Alex Munroe) <amunroe@yelp.com> | 2014-04-08 12:01:13 -0700 |
| commit | 23dbb7c237fb7cf963c809bd33a3c3d2361a6102 (patch) | |
| tree | e3f1020f7792f7d967157b4bf60ef1ecf8f542aa /manager.py | |
| parent | d6a89691e89f1c92fa740ddc1641cc2d984c4497 (diff) | |
| download | astroid-git-23dbb7c237fb7cf963c809bd33a3c3d2361a6102.tar.gz | |
Avoid an (expensive) exception in transform.
Diffstat (limited to 'manager.py')
| -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) |
