From: Jeremy Hylton Date: Mon, 17 Sep 2001 20:16:30 +0000 (+0000) Subject: Fix calculation of hardest_arg. X-Git-Tag: v2.2.1c1~1770 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=eab4328f1a4de03e527c746086f73c8a4d6f6b08;p=python Fix calculation of hardest_arg. The argument properties are ordered from easiest to hardest. The harder the arg, the more complicated that code that must be generated to return it from getChildren() and/or getChildNodes(). The old calculation routine was bogus, because it always set hardest_arg to the hardness of the last argument. Now use max() to always set it to the hardness of the hardest argument. --- diff --git a/Tools/compiler/astgen.py b/Tools/compiler/astgen.py index 245eebd30b..90201d31e3 100644 --- a/Tools/compiler/astgen.py +++ b/Tools/compiler/astgen.py @@ -71,15 +71,15 @@ class NodeInfo: if arg.endswith('*'): arg = self.argnames[i] = arg[:-1] d[arg] = P_OTHER - hardest_arg = P_OTHER + hardest_arg = max(hardest_arg, P_OTHER) elif arg.endswith('!'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NESTED - hardest_arg = P_NESTED + hardest_arg = max(hardest_arg, P_NESTED) elif arg.endswith('&'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NONE - hardest_arg = P_NONE + hardest_arg = max(hardest_arg, P_NONE) else: d[arg] = P_NODE self.hardest_arg = hardest_arg diff --git a/Tools/compiler/compiler/astgen.py b/Tools/compiler/compiler/astgen.py index 245eebd30b..90201d31e3 100644 --- a/Tools/compiler/compiler/astgen.py +++ b/Tools/compiler/compiler/astgen.py @@ -71,15 +71,15 @@ class NodeInfo: if arg.endswith('*'): arg = self.argnames[i] = arg[:-1] d[arg] = P_OTHER - hardest_arg = P_OTHER + hardest_arg = max(hardest_arg, P_OTHER) elif arg.endswith('!'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NESTED - hardest_arg = P_NESTED + hardest_arg = max(hardest_arg, P_NESTED) elif arg.endswith('&'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NONE - hardest_arg = P_NONE + hardest_arg = max(hardest_arg, P_NONE) else: d[arg] = P_NODE self.hardest_arg = hardest_arg