]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Revise handling of tuple arguments so that the variables names match
authorJeremy Hylton <jeremy@alum.mit.edu>
Thu, 12 Apr 2001 17:33:34 +0000 (17:33 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Thu, 12 Apr 2001 17:33:34 +0000 (17:33 +0000)
those used by compile.c.  (test_grammar now depends on the names)

Lib/compiler/pyassem.py
Lib/compiler/pycodegen.py
Tools/compiler/compiler/pyassem.py
Tools/compiler/compiler/pycodegen.py

index 447a8e78e472794c9aa19a2e9cf2f6b9ab80942c..15e91f4d4312b1f8cc3c3e256fd6e8ffd8572250 100644 (file)
@@ -495,7 +495,7 @@ class TupleArg:
     def __repr__(self):
         return "TupleArg(%s, %s)" % (self.count, self.names)
     def getName(self):
-        return ".nested%d" % self.count
+        return ".%d" % self.count
 
 def getArgCount(args):
     argcount = len(args)
index c0bbed3f51ac01337e97c9ae085edad16e30a899..691232faac5726467b12d1006b69ce1f24cdd8b5 100644 (file)
@@ -1101,11 +1101,10 @@ class AbstractFunctionCode:
         self.emit('RETURN_VALUE')
 
     def generateArgUnpack(self, args):
-        count = 0
-        for arg in args:
+        for i in range(len(args)):
+            arg = args[i]
             if type(arg) == types.TupleType:
-                self.emit('LOAD_FAST', '.nested%d' % count)
-                count = count + 1
+                self.emit('LOAD_FAST', '.%d' % (i * 2))
                 self.unpackSequence(arg)
                         
     def unpackSequence(self, tup):
@@ -1184,13 +1183,14 @@ def generateArgList(arglist):
     args = []
     extra = []
     count = 0
-    for elt in arglist:
+    for i in range(len(arglist)):
+        elt = arglist[i]
         if type(elt) == types.StringType:
             args.append(elt)
         elif type(elt) == types.TupleType:
-            args.append(TupleArg(count, elt))
-            count = count + 1
+            args.append(TupleArg(i * 2, elt))
             extra.extend(misc.flatten(elt))
+            count = count + 1
         else:
             raise ValueError, "unexpect argument type:", elt
     return args + extra, count
index 447a8e78e472794c9aa19a2e9cf2f6b9ab80942c..15e91f4d4312b1f8cc3c3e256fd6e8ffd8572250 100644 (file)
@@ -495,7 +495,7 @@ class TupleArg:
     def __repr__(self):
         return "TupleArg(%s, %s)" % (self.count, self.names)
     def getName(self):
-        return ".nested%d" % self.count
+        return ".%d" % self.count
 
 def getArgCount(args):
     argcount = len(args)
index c0bbed3f51ac01337e97c9ae085edad16e30a899..691232faac5726467b12d1006b69ce1f24cdd8b5 100644 (file)
@@ -1101,11 +1101,10 @@ class AbstractFunctionCode:
         self.emit('RETURN_VALUE')
 
     def generateArgUnpack(self, args):
-        count = 0
-        for arg in args:
+        for i in range(len(args)):
+            arg = args[i]
             if type(arg) == types.TupleType:
-                self.emit('LOAD_FAST', '.nested%d' % count)
-                count = count + 1
+                self.emit('LOAD_FAST', '.%d' % (i * 2))
                 self.unpackSequence(arg)
                         
     def unpackSequence(self, tup):
@@ -1184,13 +1183,14 @@ def generateArgList(arglist):
     args = []
     extra = []
     count = 0
-    for elt in arglist:
+    for i in range(len(arglist)):
+        elt = arglist[i]
         if type(elt) == types.StringType:
             args.append(elt)
         elif type(elt) == types.TupleType:
-            args.append(TupleArg(count, elt))
-            count = count + 1
+            args.append(TupleArg(i * 2, elt))
             extra.extend(misc.flatten(elt))
+            count = count + 1
         else:
             raise ValueError, "unexpect argument type:", elt
     return args + extra, count