1.1 --- a/generator.py Mon Nov 28 16:23:38 2016 +0100
1.2 +++ b/generator.py Mon Nov 28 17:04:43 2016 +0100
1.3 @@ -788,9 +788,16 @@
1.4
1.5 # Special cases.
1.6
1.7 - elif attrname in ("__fname__", "__name__"):
1.8 + elif attrname in ("__file__", "__fname__", "__mname__", "__name__"):
1.9 path = ref.get_origin()
1.10 - local_number = self.importer.all_constants[path][path]
1.11 +
1.12 + if attrname == "__file__":
1.13 + module = self.importer.get_module(path)
1.14 + value = module.filename
1.15 + else:
1.16 + value = path
1.17 +
1.18 + local_number = self.importer.all_constants[path][value]
1.19 constant_name = "$c%d" % local_number
1.20 attr_path = "%s.%s" % (path, constant_name)
1.21 constant_number = self.optimiser.constant_numbers[attr_path]