On 06/21/2011 11:49 AM, Christian Thalinger wrote:
> On Jun 21, 2011, at 11:35 AM, Rémi Forax wrote:
>> Ok, fixed,
>> convertArguments doesn't exist anymore and I forget to remove it from
>> the backport.
> Awesome, thanks.  This one looks weird though:

Great, this means that asType() now works :)
The bug is due to this snippet:
   function no_return_int():int { }
   echo no_return_int()

because the is no return, the return push a null and then
tries to convert it to an int.

I should create a special invoker that use explicitCast()
(invokeWithArguments use asType()) or push 0 instead.

This invoker can be a good example for the cookbook.

> $ bin/phpr.sh test/testdeadreturn.phpr
> null
> com.googlecode.phpreboot.runtime.RT$RTError: null at 7,18
>       at com.googlecode.phpreboot.runtime.RT.error(RT.java:56)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:723)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
>       at com.googlecode.phpreboot.ast.FuncallCall.accept(FuncallCall.java:39)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:778)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
>       at 
> com.googlecode.phpreboot.ast.PrimaryFuncall.accept(PrimaryFuncall.java:30)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:810)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
>       at com.googlecode.phpreboot.ast.ExprPrimary.accept(ExprPrimary.java:30)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:275)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
>       at com.googlecode.phpreboot.ast.InstrEcho.accept(InstrEcho.java:38)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
>       at 
> com.googlecode.phpreboot.interpreter.Interpreter.eval(Interpreter.java:52)
>       at 
> com.googlecode.phpreboot.interpreter.Interpreter.instr_echo(Interpreter.java:122)
>       at 
> com.googlecode.phpreboot.tools.AnalyzerProcessor.reduce(AnalyzerProcessor.java:741)
>       at 
> com.googlecode.phpreboot.tools.AnalyzerProcessor.reduce(AnalyzerProcessor.java:1)
>       at 
> fr.umlv.tatoo.runtime.tools.ToolsProcessor.reduce(ToolsProcessor.java:117)
>       at fr.umlv.tatoo.runtime.parser.Parser.performReduce(Parser.java:484)
>       at fr.umlv.tatoo.runtime.parser.Parser.performShift(Parser.java:508)
>       at 
> fr.umlv.tatoo.runtime.parser.ShiftAction.doPerform(ShiftAction.java:23)
>       at fr.umlv.tatoo.runtime.parser.Parser.doStep(Parser.java:402)
>       at fr.umlv.tatoo.runtime.parser.Parser.push(Parser.java:384)
>       at 
> fr.umlv.tatoo.runtime.tools.ToolsProcessor$LexerHandler.ruleVerified(ToolsProcessor.java:87)
>       at 
> fr.umlv.tatoo.runtime.tools.ToolsProcessor$LexerHandler.ruleVerified(ToolsProcessor.java:67)
>       at 
> fr.umlv.tatoo.runtime.lexer.Lexer$LexerImpl.ruleVerified(Lexer.java:143)
>       at fr.umlv.tatoo.runtime.lexer.Lexer$LexerImpl.step(Lexer.java:87)
>       at fr.umlv.tatoo.runtime.lexer.Lexer$LexerImpl.run(Lexer.java:160)
>       at 
> com.googlecode.phpreboot.interpreter.Analyzer.interpret(Analyzer.java:78)
>       at com.googlecode.phpreboot.Main.main(Main.java:188)
> Caused by: java.lang.NullPointerException
>       at 
> sun.invoke.util.ValueConversions.unboxInteger(ValueConversions.java:76)
>       at 
> java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:566)
>       at 
> com.googlecode.phpreboot.compiler.Compiler$CompileFunctionStub.stub(Compiler.java:233)
>       at 
> java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:566)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.methodHandleCall(Evaluator.java:760)
>       at 
> com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:721)
>       ... 32 more
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to