1.1 --- a/translator.py Sun Mar 19 16:08:01 2017 +0100
1.2 +++ b/translator.py Mon Mar 20 17:24:28 2017 +0100
1.3 @@ -1020,6 +1020,7 @@
1.4
1.5 objpath = expr.get_origin()
1.6 location = expr.access_location()
1.7 + refs = expr.references()
1.8
1.9 # Identified target details.
1.10
1.11 @@ -1286,7 +1287,7 @@
1.12 else:
1.13 stages.append("__invoke(\n%s,\n%d, %d, %s, %s,\n%d, %s\n)" % (
1.14 target_var,
1.15 - self.always_callable and 1 or 0,
1.16 + self.always_callable(refs) and 1 or 0,
1.17 len(kwargs), kwcodestr, kwargstr,
1.18 len(args), argstr))
1.19 return InvocationResult(stages)
1.20 @@ -1302,13 +1303,12 @@
1.21
1.22 "Determine whether all 'refs' are callable."
1.23
1.24 + if not refs:
1.25 + return False
1.26 +
1.27 for ref in refs:
1.28 - if not ref.static():
1.29 + if not self.importer.get_attributes(ref, "__fn__"):
1.30 return False
1.31 - else:
1.32 - origin = ref.final()
1.33 - if not self.importer.get_attribute(origin, "__fn__"):
1.34 - return False
1.35 return True
1.36
1.37 def need_default_arguments(self, objpath, nargs):