1.1 --- a/translator.py Wed Dec 14 16:40:00 2016 +0100
1.2 +++ b/translator.py Wed Dec 14 17:22:07 2016 +0100
1.3 @@ -431,15 +431,22 @@
1.4 ref = self.get_builtin_class(name)
1.5 return self.process_literal_sequence_node(n, name, ref, TrLiteralSequenceRef)
1.6 else:
1.7 - value, typename = self.get_constant_value(n.value, n.literal)
1.8 + value, typename, encoding = self.get_constant_value(n.value, n.literal)
1.9 name = get_builtin_type(typename)
1.10 ref = self.get_builtin_class(name)
1.11 value_type = ref.get_origin()
1.12
1.13 path = self.get_namespace_path()
1.14 - local_number = self.importer.all_constants[path][(value, value_type)]
1.15 +
1.16 + # Obtain the local numbering of the constant and thus the
1.17 + # locally-qualified name.
1.18 +
1.19 + local_number = self.importer.all_constants[path][(value, value_type, encoding)]
1.20 constant_name = "$c%d" % local_number
1.21 objpath = self.get_object_path(constant_name)
1.22 +
1.23 + # Obtain the unique identifier for the constant.
1.24 +
1.25 number = self.optimiser.constant_numbers[objpath]
1.26 return TrConstantValueRef(constant_name, ref.instance_of(), value, number)
1.27