Bug 881608 - OdinMonkey: handle Type::Unknown when checking call args (r=bbouvier)

--HG--
extra : rebase_source : ca7bed61121e080743f5fc6dd35a7b36e1aa93dd
This commit is contained in:
Luke Wagner 2013-06-11 09:53:53 -07:00
Родитель 2d7e7fed1a
Коммит 7996f69d48
2 изменённых файлов: 4 добавлений и 2 удалений

Просмотреть файл

@ -3402,8 +3402,8 @@ CheckCallArgs(FunctionCompiler &f, ParseNode *callNode, Use use, FunctionCompile
if (!CheckExpr(f, argNode, use, &argDef, &argType))
return false;
if (argType.isVoid())
return f.fail(argNode, "void is not a valid argument type");
if (argType.toMIRType() == MIRType_None)
return f.failf(argNode, "%s is not a valid argument type", argType.toChars());
if (!f.passArg(argDef, argType, args))
return false;

Просмотреть файл

@ -30,6 +30,8 @@ assertAsmTypeFail('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { retu
assertAsmTypeFail('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { return (+inc() + 1)|0 } return f');
assertAsmTypeFail('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { var i = 0; inc(i>>>0) } return f');
assertAsmTypeFail('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { return inc(); return } return f');
assertAsmTypeFail('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { inc(inc()) } return f');
assertAsmTypeFail('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { g(inc()) } function g() {} return f');
assertAsmLinkFail(asmCompile('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { return inc()|0 } return f'), null, {});
assertAsmLinkFail(asmCompile('glob', 'imp', USE_ASM + 'var inc=imp.inc; function f() { return inc()|0 } return f'), null, {inc:0});