# HG changeset patch # User Paul Boddie # Date 1490027068 -3600 # Node ID d4dd452dd7ce4e860ee1db6841684393cf2620fc # Parent 7dee863513f34d7f4c81adf79b6f381e9679e5d3 Fixed usage, as opposed to invocation, of the always_callable method. diff -r 7dee863513f3 -r d4dd452dd7ce translator.py --- a/translator.py Sun Mar 19 16:08:01 2017 +0100 +++ b/translator.py Mon Mar 20 17:24:28 2017 +0100 @@ -1020,6 +1020,7 @@ objpath = expr.get_origin() location = expr.access_location() + refs = expr.references() # Identified target details. @@ -1286,7 +1287,7 @@ else: stages.append("__invoke(\n%s,\n%d, %d, %s, %s,\n%d, %s\n)" % ( target_var, - self.always_callable and 1 or 0, + self.always_callable(refs) and 1 or 0, len(kwargs), kwcodestr, kwargstr, len(args), argstr)) return InvocationResult(stages) @@ -1302,13 +1303,12 @@ "Determine whether all 'refs' are callable." + if not refs: + return False + for ref in refs: - if not ref.static(): + if not self.importer.get_attributes(ref, "__fn__"): return False - else: - origin = ref.final() - if not self.importer.get_attribute(origin, "__fn__"): - return False return True def need_default_arguments(self, objpath, nargs):