@@ -1132,13 +1132,6 @@ fn test_inspect_stack() -> Result<()> {
1132
1132
} ) ?;
1133
1133
lua. globals ( ) . set ( "logline" , logline) ?;
1134
1134
1135
- let stack_info = lua. create_function ( |lua, ( ) | {
1136
- let debug = lua. inspect_stack ( 1 ) . unwrap ( ) ; // caller
1137
- let stack_info = debug. stack ( ) ;
1138
- Ok ( format ! ( "{stack_info:?}" ) )
1139
- } ) ?;
1140
- lua. globals ( ) . set ( "stack_info" , stack_info) ?;
1141
-
1142
1135
lua. load (
1143
1136
r#"
1144
1137
local function foo()
@@ -1148,21 +1141,45 @@ fn test_inspect_stack() -> Result<()> {
1148
1141
local function bar()
1149
1142
return foo()
1150
1143
end
1144
+
1145
+ assert(foo() == '[string "chunk"]:3 hello')
1146
+ assert(bar() == '[string "chunk"]:3 hello')
1147
+ assert(logline("world") == '[string "chunk"]:12 world')
1148
+ "# ,
1149
+ )
1150
+ . set_name ( "chunk" )
1151
+ . exec ( ) ?;
1152
+
1153
+ let stack_info = lua. create_function ( |lua, ( ) | {
1154
+ let debug = lua. inspect_stack ( 1 ) . unwrap ( ) ; // caller
1155
+ let stack_info = debug. stack ( ) ;
1156
+ Ok ( format ! ( "{stack_info:?}" ) )
1157
+ } ) ?;
1158
+ lua. globals ( ) . set ( "stack_info" , stack_info) ?;
1159
+
1160
+ #[ cfg( any( feature = "lua54" , feature = "lua53" , feature = "lua52" , feature = "luau" ) ) ]
1161
+ lua. load (
1162
+ r#"
1151
1163
local stack_info = stack_info
1152
1164
local function baz(a, b, c, ...)
1153
1165
return stack_info()
1154
1166
end
1167
+ assert(baz() == 'DebugStack { num_ups: 1, num_params: 3, is_vararg: true }')
1168
+ "# ,
1169
+ )
1170
+ . exec ( ) ?;
1155
1171
1156
- assert(foo() == '[string "chunk"]:3 hello')
1157
- assert(bar() == '[string "chunk"]:3 hello')
1158
- assert(logline("world") == '[string "chunk"]:16 world')
1159
- assert(
1160
- baz() == 'DebugStack { num_ups: 1, num_params: 3, is_vararg: true }' or
1161
- baz() == 'DebugStack { num_ups: 1 }'
1162
- )
1172
+ // LuaJIT does not pass this test for some reason
1173
+ #[ cfg( feature = "lua51" ) ]
1174
+ lua. load (
1175
+ r#"
1176
+ local stack_info = stack_info
1177
+ local function baz(a, b, c, ...)
1178
+ return stack_info()
1179
+ end
1180
+ assert(baz() == 'DebugStack { num_ups: 1 }')
1163
1181
"# ,
1164
1182
)
1165
- . set_name ( "chunk" )
1166
1183
. exec ( ) ?;
1167
1184
1168
1185
Ok ( ( ) )
0 commit comments