@@ -1151,7 +1151,7 @@ var compileTestData = []struct {
1151
1151
Name : "<module>" ,
1152
1152
Firstlineno : 1 ,
1153
1153
Lnotab : "" ,
1154
- }, " 1 0 LOAD_CONST 0 (<code object <lambda> at 0x7f94f9f31db0 , file \" <string>\" , line 1>)\n 3 LOAD_CONST 1 ('<lambda>')\n 6 MAKE_FUNCTION 0\n 9 RETURN_VALUE\n " , nil , "" },
1154
+ }, " 1 0 LOAD_CONST 0 (<code object <lambda> at 0x7fe734191db0 , file \" <string>\" , line 1>)\n 3 LOAD_CONST 1 ('<lambda>')\n 6 MAKE_FUNCTION 0\n 9 RETURN_VALUE\n " , nil , "" },
1155
1155
{"pass" , "exec" , & py.Code {
1156
1156
Argcount : 0 ,
1157
1157
Kwonlyargcount : 0 ,
@@ -1919,4 +1919,235 @@ var compileTestData = []struct {
1919
1919
Firstlineno : 1 ,
1920
1920
Lnotab : "" ,
1921
1921
}, " 1 0 LOAD_NAME 0 (f)\n 3 LOAD_NAME 1 (a)\n 6 LOAD_CONST 0 ('d')\n 9 LOAD_NAME 2 (e)\n 12 LOAD_NAME 3 (kwargs)\n 15 CALL_FUNCTION_KW 257 (1 positional, 1 keyword pair)\n 18 RETURN_VALUE\n " , nil , "" },
1922
+ {"def fn(): pass" , "exec" , & py.Code {
1923
+ Argcount : 0 ,
1924
+ Kwonlyargcount : 0 ,
1925
+ Nlocals : 0 ,
1926
+ Stacksize : 2 ,
1927
+ Flags : 64 ,
1928
+ Code : "\x64 \x00 \x00 \x64 \x01 \x00 \x84 \x00 \x00 \x5a \x00 \x00 \x64 \x02 \x00 \x53 " ,
1929
+ Consts : []py.Object {& py.Code {
1930
+ Argcount : 0 ,
1931
+ Kwonlyargcount : 0 ,
1932
+ Nlocals : 0 ,
1933
+ Stacksize : 1 ,
1934
+ Flags : 67 ,
1935
+ Code : "\x64 \x00 \x00 \x53 " ,
1936
+ Consts : []py.Object {py .None },
1937
+ Names : []string {},
1938
+ Varnames : []string {},
1939
+ Freevars : []string {},
1940
+ Cellvars : []string {},
1941
+ Filename : "<string>" ,
1942
+ Name : "fn" ,
1943
+ Firstlineno : 1 ,
1944
+ Lnotab : "" ,
1945
+ }, py .String ("fn" ), py .None },
1946
+ Names : []string {"fn" },
1947
+ Varnames : []string {},
1948
+ Freevars : []string {},
1949
+ Cellvars : []string {},
1950
+ Filename : "<string>" ,
1951
+ Name : "<module>" ,
1952
+ Firstlineno : 1 ,
1953
+ Lnotab : "" ,
1954
+ }, " 1 0 LOAD_CONST 0 (<code object fn at 0x7fe7341918a0, file \" <string>\" , line 1>)\n 3 LOAD_CONST 1 ('fn')\n 6 MAKE_FUNCTION 0\n 9 STORE_NAME 0 (fn)\n 12 LOAD_CONST 2 (None)\n 15 RETURN_VALUE\n " , nil , "" },
1955
+ {"def fn(a): pass" , "exec" , & py.Code {
1956
+ Argcount : 0 ,
1957
+ Kwonlyargcount : 0 ,
1958
+ Nlocals : 0 ,
1959
+ Stacksize : 2 ,
1960
+ Flags : 64 ,
1961
+ Code : "\x64 \x00 \x00 \x64 \x01 \x00 \x84 \x00 \x00 \x5a \x00 \x00 \x64 \x02 \x00 \x53 " ,
1962
+ Consts : []py.Object {& py.Code {
1963
+ Argcount : 1 ,
1964
+ Kwonlyargcount : 0 ,
1965
+ Nlocals : 1 ,
1966
+ Stacksize : 1 ,
1967
+ Flags : 67 ,
1968
+ Code : "\x64 \x00 \x00 \x53 " ,
1969
+ Consts : []py.Object {py .None },
1970
+ Names : []string {},
1971
+ Varnames : []string {"a" },
1972
+ Freevars : []string {},
1973
+ Cellvars : []string {},
1974
+ Filename : "<string>" ,
1975
+ Name : "fn" ,
1976
+ Firstlineno : 1 ,
1977
+ Lnotab : "" ,
1978
+ }, py .String ("fn" ), py .None },
1979
+ Names : []string {"fn" },
1980
+ Varnames : []string {},
1981
+ Freevars : []string {},
1982
+ Cellvars : []string {},
1983
+ Filename : "<string>" ,
1984
+ Name : "<module>" ,
1985
+ Firstlineno : 1 ,
1986
+ Lnotab : "" ,
1987
+ }, " 1 0 LOAD_CONST 0 (<code object fn at 0x7fe73567c6f0, file \" <string>\" , line 1>)\n 3 LOAD_CONST 1 ('fn')\n 6 MAKE_FUNCTION 0\n 9 STORE_NAME 0 (fn)\n 12 LOAD_CONST 2 (None)\n 15 RETURN_VALUE\n " , nil , "" },
1988
+ {"def fn(a,b,c): pass" , "exec" , & py.Code {
1989
+ Argcount : 0 ,
1990
+ Kwonlyargcount : 0 ,
1991
+ Nlocals : 0 ,
1992
+ Stacksize : 2 ,
1993
+ Flags : 64 ,
1994
+ Code : "\x64 \x00 \x00 \x64 \x01 \x00 \x84 \x00 \x00 \x5a \x00 \x00 \x64 \x02 \x00 \x53 " ,
1995
+ Consts : []py.Object {& py.Code {
1996
+ Argcount : 3 ,
1997
+ Kwonlyargcount : 0 ,
1998
+ Nlocals : 3 ,
1999
+ Stacksize : 1 ,
2000
+ Flags : 67 ,
2001
+ Code : "\x64 \x00 \x00 \x53 " ,
2002
+ Consts : []py.Object {py .None },
2003
+ Names : []string {},
2004
+ Varnames : []string {"a" , "b" , "c" },
2005
+ Freevars : []string {},
2006
+ Cellvars : []string {},
2007
+ Filename : "<string>" ,
2008
+ Name : "fn" ,
2009
+ Firstlineno : 1 ,
2010
+ Lnotab : "" ,
2011
+ }, py .String ("fn" ), py .None },
2012
+ Names : []string {"fn" },
2013
+ Varnames : []string {},
2014
+ Freevars : []string {},
2015
+ Cellvars : []string {},
2016
+ Filename : "<string>" ,
2017
+ Name : "<module>" ,
2018
+ Firstlineno : 1 ,
2019
+ Lnotab : "" ,
2020
+ }, " 1 0 LOAD_CONST 0 (<code object fn at 0x7fe734191db0, file \" <string>\" , line 1>)\n 3 LOAD_CONST 1 ('fn')\n 6 MAKE_FUNCTION 0\n 9 STORE_NAME 0 (fn)\n 12 LOAD_CONST 2 (None)\n 15 RETURN_VALUE\n " , nil , "" },
2021
+ {"def fn(a,b=1,c=2): pass" , "exec" , & py.Code {
2022
+ Argcount : 0 ,
2023
+ Kwonlyargcount : 0 ,
2024
+ Nlocals : 0 ,
2025
+ Stacksize : 4 ,
2026
+ Flags : 64 ,
2027
+ Code : "\x64 \x00 \x00 \x64 \x01 \x00 \x64 \x02 \x00 \x64 \x03 \x00 \x84 \x02 \x00 \x5a \x00 \x00 \x64 \x04 \x00 \x53 " ,
2028
+ Consts : []py.Object {py .Int (1 ), py .Int (2 ), & py.Code {
2029
+ Argcount : 3 ,
2030
+ Kwonlyargcount : 0 ,
2031
+ Nlocals : 3 ,
2032
+ Stacksize : 1 ,
2033
+ Flags : 67 ,
2034
+ Code : "\x64 \x00 \x00 \x53 " ,
2035
+ Consts : []py.Object {py .None },
2036
+ Names : []string {},
2037
+ Varnames : []string {"a" , "b" , "c" },
2038
+ Freevars : []string {},
2039
+ Cellvars : []string {},
2040
+ Filename : "<string>" ,
2041
+ Name : "fn" ,
2042
+ Firstlineno : 1 ,
2043
+ Lnotab : "" ,
2044
+ }, py .String ("fn" ), py .None },
2045
+ Names : []string {"fn" },
2046
+ Varnames : []string {},
2047
+ Freevars : []string {},
2048
+ Cellvars : []string {},
2049
+ Filename : "<string>" ,
2050
+ Name : "<module>" ,
2051
+ Firstlineno : 1 ,
2052
+ Lnotab : "" ,
2053
+ }, " 1 0 LOAD_CONST 0 (1)\n 3 LOAD_CONST 1 (2)\n 6 LOAD_CONST 2 (<code object fn at 0x7fe7341b68a0, file \" <string>\" , line 1>)\n 9 LOAD_CONST 3 ('fn')\n 12 MAKE_FUNCTION 2\n 15 STORE_NAME 0 (fn)\n 18 LOAD_CONST 4 (None)\n 21 RETURN_VALUE\n " , nil , "" },
2054
+ {"def fn(a,*arg,b=1,c=2): pass" , "exec" , & py.Code {
2055
+ Argcount : 0 ,
2056
+ Kwonlyargcount : 0 ,
2057
+ Nlocals : 0 ,
2058
+ Stacksize : 6 ,
2059
+ Flags : 64 ,
2060
+ Code : "\x64 \x00 \x00 \x64 \x01 \x00 \x64 \x02 \x00 \x64 \x03 \x00 \x64 \x04 \x00 \x64 \x05 \x00 \x84 \x00 \x02 \x5a \x00 \x00 \x64 \x06 \x00 \x53 " ,
2061
+ Consts : []py.Object {py .String ("b" ), py .Int (1 ), py .String ("c" ), py .Int (2 ), & py.Code {
2062
+ Argcount : 1 ,
2063
+ Kwonlyargcount : 2 ,
2064
+ Nlocals : 4 ,
2065
+ Stacksize : 1 ,
2066
+ Flags : 71 ,
2067
+ Code : "\x64 \x00 \x00 \x53 " ,
2068
+ Consts : []py.Object {py .None },
2069
+ Names : []string {},
2070
+ Varnames : []string {"a" , "b" , "c" , "arg" },
2071
+ Freevars : []string {},
2072
+ Cellvars : []string {},
2073
+ Filename : "<string>" ,
2074
+ Name : "fn" ,
2075
+ Firstlineno : 1 ,
2076
+ Lnotab : "" ,
2077
+ }, py .String ("fn" ), py .None },
2078
+ Names : []string {"fn" },
2079
+ Varnames : []string {},
2080
+ Freevars : []string {},
2081
+ Cellvars : []string {},
2082
+ Filename : "<string>" ,
2083
+ Name : "<module>" ,
2084
+ Firstlineno : 1 ,
2085
+ Lnotab : "" ,
2086
+ }, " 1 0 LOAD_CONST 0 ('b')\n 3 LOAD_CONST 1 (1)\n 6 LOAD_CONST 2 ('c')\n 9 LOAD_CONST 3 (2)\n 12 LOAD_CONST 4 (<code object fn at 0x7fe7341918a0, file \" <string>\" , line 1>)\n 15 LOAD_CONST 5 ('fn')\n 18 MAKE_FUNCTION 512\n 21 STORE_NAME 0 (fn)\n 24 LOAD_CONST 6 (None)\n 27 RETURN_VALUE\n " , nil , "" },
2087
+ {"def fn(a,*arg,b=1,c=2,**kwargs): pass" , "exec" , & py.Code {
2088
+ Argcount : 0 ,
2089
+ Kwonlyargcount : 0 ,
2090
+ Nlocals : 0 ,
2091
+ Stacksize : 6 ,
2092
+ Flags : 64 ,
2093
+ Code : "\x64 \x00 \x00 \x64 \x01 \x00 \x64 \x02 \x00 \x64 \x03 \x00 \x64 \x04 \x00 \x64 \x05 \x00 \x84 \x00 \x02 \x5a \x00 \x00 \x64 \x06 \x00 \x53 " ,
2094
+ Consts : []py.Object {py .String ("b" ), py .Int (1 ), py .String ("c" ), py .Int (2 ), & py.Code {
2095
+ Argcount : 1 ,
2096
+ Kwonlyargcount : 2 ,
2097
+ Nlocals : 5 ,
2098
+ Stacksize : 1 ,
2099
+ Flags : 79 ,
2100
+ Code : "\x64 \x00 \x00 \x53 " ,
2101
+ Consts : []py.Object {py .None },
2102
+ Names : []string {},
2103
+ Varnames : []string {"a" , "b" , "c" , "arg" , "kwargs" },
2104
+ Freevars : []string {},
2105
+ Cellvars : []string {},
2106
+ Filename : "<string>" ,
2107
+ Name : "fn" ,
2108
+ Firstlineno : 1 ,
2109
+ Lnotab : "" ,
2110
+ }, py .String ("fn" ), py .None },
2111
+ Names : []string {"fn" },
2112
+ Varnames : []string {},
2113
+ Freevars : []string {},
2114
+ Cellvars : []string {},
2115
+ Filename : "<string>" ,
2116
+ Name : "<module>" ,
2117
+ Firstlineno : 1 ,
2118
+ Lnotab : "" ,
2119
+ }, " 1 0 LOAD_CONST 0 ('b')\n 3 LOAD_CONST 1 (1)\n 6 LOAD_CONST 2 ('c')\n 9 LOAD_CONST 3 (2)\n 12 LOAD_CONST 4 (<code object fn at 0x7fe73567c6f0, file \" <string>\" , line 1>)\n 15 LOAD_CONST 5 ('fn')\n 18 MAKE_FUNCTION 512\n 21 STORE_NAME 0 (fn)\n 24 LOAD_CONST 6 (None)\n 27 RETURN_VALUE\n " , nil , "" },
2120
+ {"def fn(a:\" a\" ,*arg:\" arg\" ,b:\" b\" =1,c:\" c\" =2,**kwargs:\" kw\" ) -> \" ret\" : pass" , "exec" , & py.Code {
2121
+ Argcount : 0 ,
2122
+ Kwonlyargcount : 0 ,
2123
+ Nlocals : 0 ,
2124
+ Stacksize : 13 ,
2125
+ Flags : 64 ,
2126
+ Code : "\x64 \x00 \x00 \x64 \x01 \x00 \x64 \x02 \x00 \x64 \x03 \x00 \x64 \x04 \x00 \x64 \x05 \x00 \x64 \x00 \x00 \x64 \x02 \x00 \x64 \x06 \x00 \x64 \x07 \x00 \x64 \x08 \x00 \x64 \x09 \x00 \x64 \x0a \x00 \x90 \x07 \x00 \x84 \x00 \x02 \x5a \x00 \x00 \x64 \x0b \x00 \x53 " ,
2127
+ Consts : []py.Object {py .String ("b" ), py .Int (1 ), py .String ("c" ), py .Int (2 ), py .String ("a" ), py .String ("arg" ), py .String ("kw" ), py .String ("ret" ), py.Tuple {py .String ("a" ), py .String ("arg" ), py .String ("b" ), py .String ("c" ), py .String ("kwargs" ), py .String ("return" )}, & py.Code {
2128
+ Argcount : 1 ,
2129
+ Kwonlyargcount : 2 ,
2130
+ Nlocals : 5 ,
2131
+ Stacksize : 1 ,
2132
+ Flags : 79 ,
2133
+ Code : "\x64 \x00 \x00 \x53 " ,
2134
+ Consts : []py.Object {py .None },
2135
+ Names : []string {},
2136
+ Varnames : []string {"a" , "b" , "c" , "arg" , "kwargs" },
2137
+ Freevars : []string {},
2138
+ Cellvars : []string {},
2139
+ Filename : "<string>" ,
2140
+ Name : "fn" ,
2141
+ Firstlineno : 1 ,
2142
+ Lnotab : "" ,
2143
+ }, py .String ("fn" ), py .None },
2144
+ Names : []string {"fn" },
2145
+ Varnames : []string {},
2146
+ Freevars : []string {},
2147
+ Cellvars : []string {},
2148
+ Filename : "<string>" ,
2149
+ Name : "<module>" ,
2150
+ Firstlineno : 1 ,
2151
+ Lnotab : "" ,
2152
+ }, " 1 0 LOAD_CONST 0 ('b')\n 3 LOAD_CONST 1 (1)\n 6 LOAD_CONST 2 ('c')\n 9 LOAD_CONST 3 (2)\n 12 LOAD_CONST 4 ('a')\n 15 LOAD_CONST 5 ('arg')\n 18 LOAD_CONST 0 ('b')\n 21 LOAD_CONST 2 ('c')\n 24 LOAD_CONST 6 ('kw')\n 27 LOAD_CONST 7 ('ret')\n 30 LOAD_CONST 8 (('a', 'arg', 'b', 'c', 'kwargs', 'return'))\n 33 LOAD_CONST 9 (<code object fn at 0x7fe734191db0, file \" <string>\" , line 1>)\n 36 LOAD_CONST 10 ('fn')\n 39 EXTENDED_ARG 7\n 42 MAKE_FUNCTION 459264\n 45 STORE_NAME 0 (fn)\n 48 LOAD_CONST 11 (None)\n 51 RETURN_VALUE\n " , nil , "" },
1922
2153
}
0 commit comments