aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2007-06-27 14:26:17 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2007-06-27 14:26:17 +0000
commit2c33ab54e79608d34df14719c839dad8be7ef685 (patch)
tree22032990d7f2619f5316be55a1c9a824a22d841a /tools
parent705f89de7a8b99f0a165d4b137fa3fd40776d8e4 (diff)
check conflict in CLASS fields redefinition
svn path=/trunk/; revision=22203
Diffstat (limited to 'tools')
-rwxr-xr-xtools/asn2wrs.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/tools/asn2wrs.py b/tools/asn2wrs.py
index 3bf16bbfae..3bb3573360 100755
--- a/tools/asn2wrs.py
+++ b/tools/asn2wrs.py
@@ -6588,13 +6588,29 @@ def set_type_to_class(cls, fld, pars):
typename = 'OpenType'
if (len(pars) > 0):
typename = pars[0]
+ else:
+ pars.append(typename)
typeref = None
if (len(pars) > 1):
+ if (isinstance(pars[1], Class_Ref)):
+ pars[1] = pars[1].val
typeref = pars[1]
- if object_class_types.has_key(key): return False
- if object_class_typerefs.has_key(key): return False
- if object_class_classrefs.has_key(key): return False
+ msg = None
+ if object_class_types.has_key(key):
+ msg = object_class_types[key]().type
+ if object_class_typerefs.has_key(key):
+ msg = "TypeReference " + object_class_typerefs[key]
+ if object_class_classrefs.has_key(key):
+ msg = "ClassReference " + object_class_classrefs[key]
+
+ if msg == ' '.join(pars):
+ msg = None
+
+ if msg:
+ msg0 = "Can not define CLASS field %s as '%s'\n" % (key, ' '.join(pars))
+ msg1 = "Already defined as '%s'" % (msg)
+ raise msg0 + msg1
if (typename == 'ClassReference'):
if not typeref: return False