aboutsummaryrefslogtreecommitdiff
path: root/pyasn1/type
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2017-08-02 02:23:05 +0200
committerIlya Etingof <etingof@gmail.com>2017-08-02 02:23:05 +0200
commit7ba223cc51acd1ae100816848d9ddd1332a276ed (patch)
treea01f2555bbc08e39cbc8433c2484427af04178b7 /pyasn1/type
parenta00fc22a6d510e673a936f8488c0683d3671f6aa (diff)
downloadpyasn1-7ba223cc51acd1ae100816848d9ddd1332a276ed.tar.gz
account for postponed errors when computing type maps
Diffstat (limited to 'pyasn1/type')
-rw-r--r--pyasn1/type/namedtype.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/pyasn1/type/namedtype.py b/pyasn1/type/namedtype.py
index 820c3be..cf92ee9 100644
--- a/pyasn1/type/namedtype.py
+++ b/pyasn1/type/namedtype.py
@@ -195,6 +195,8 @@ class NamedTypes(object):
tagToPosMap = {}
for idx, namedType in enumerate(self.__namedTypes):
tagMap = namedType.asn1Object.tagMap
+ if isinstance(tagMap, NamedTypes.PostponedError):
+ return tagMap
if not tagMap:
continue
for _tagSet in tagMap.presentTypes:
@@ -419,6 +421,8 @@ class NamedTypes(object):
defaultType = None
for namedType in self.__namedTypes:
tagMap = namedType.asn1Object.tagMap
+ if isinstance(tagMap, NamedTypes.PostponedError):
+ return tagMap
for tagSet in tagMap:
if unique and tagSet in presentTypes:
return NamedTypes.PostponedError('Non-unique tagSet %s of %s at %s' % (tagSet, namedType, self))