mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
skip when default is given
This commit is contained in:
parent
850976953b
commit
854bd2a6a4
@ -1312,4 +1312,25 @@ TEST(vm, cb_2) {
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
TEST(vm, default_no_input) {
|
||||
/* init */
|
||||
pikaMemInfo.heapUsedMax = 0;
|
||||
PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
|
||||
extern unsigned char pikaModules_py_a[];
|
||||
obj_linkLibrary(pikaMain, pikaModules_py_a);
|
||||
/* run */
|
||||
__platform_printf("BEGIN\r\n");
|
||||
obj_run(pikaMain,
|
||||
"def test(a = 1):\n"
|
||||
" print(a)\n"
|
||||
"test()"
|
||||
);
|
||||
/* collect */
|
||||
/* assert */
|
||||
EXPECT_STREQ(log_buff[0], "1\r\n");
|
||||
/* deinit */
|
||||
obj_deinit(pikaMain);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
@ -4094,9 +4094,15 @@ TEST(parser, default_fn_1) {
|
||||
"0 DEF test(a=,b=)\n"
|
||||
"0 JMP 1\n"
|
||||
"B1\n"
|
||||
"0 EST a\n"
|
||||
"0 JNZ 2\n"
|
||||
"B1\n"
|
||||
"0 NUM 1\n"
|
||||
"0 OUT a\n"
|
||||
"B1\n"
|
||||
"0 EST b\n"
|
||||
"0 JNZ 2\n"
|
||||
"B1\n"
|
||||
"0 STR test\n"
|
||||
"0 OUT b\n"
|
||||
"B1\n"
|
||||
@ -4104,9 +4110,7 @@ TEST(parser, default_fn_1) {
|
||||
"0 RUN print\n"
|
||||
"B1\n"
|
||||
"0 RET \n"
|
||||
"B0\n"
|
||||
|
||||
);
|
||||
"B0\n");
|
||||
args_deinit(buffs);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
@ -2552,6 +2552,12 @@ char* AST_genAsm(AST* ast, Args* outBuffs) {
|
||||
int stmt_num = strGetTokenNum(defaultStmts, ',');
|
||||
for (int i = 0; i < stmt_num; i++) {
|
||||
char* stmt = strsPopToken(&buffs, defaultStmts, ',');
|
||||
char* arg_name = strsGetFirstToken(&buffs, stmt, '=');
|
||||
pikaAsm = ASM_addBlockDeepth(ast, &buffs, pikaAsm, 1);
|
||||
pikaAsm = strsAppend(&buffs, pikaAsm, "0 EST ");
|
||||
pikaAsm = strsAppend(&buffs, pikaAsm, arg_name);
|
||||
pikaAsm = strsAppend(&buffs, pikaAsm, "\n");
|
||||
pikaAsm = strsAppend(&buffs, pikaAsm, "0 JNZ 2\n");
|
||||
AST* ast_this = AST_parseLine_withBlockDeepth(
|
||||
stmt, AST_getBlockDeepthNow(ast) + 1);
|
||||
pikaAsm =
|
||||
|
@ -612,7 +612,7 @@ static int VMState_loadArgsFromMethodArg(VMState* vm,
|
||||
arg_num_input = VMState_getInputArgNum(vm);
|
||||
|
||||
/* check variable */
|
||||
if (strIsContain(type_list, '*')) {
|
||||
if (strIsContain(type_list, '*') || strIsContain(type_list, '=')) {
|
||||
vars_or_keys = PIKA_TRUE;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user