[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Inference of static types




> NO, it will NOT!!!  Stage 1 will ***FAIL***.  Please use a debugger, or
> any tool you like, and simply trace Soot's typing algorithm, and you'll
> see.  Or if you insist, simply take a pencil, and draw little nodes and
> directed edges and apply the algorithm.  You'll see that stage 1 fails. 
> Here's a simplified view:
> 
> [1] T(b) <= Boolean
> [2] T(b) <= T(null)
> [3] Integer <= T(b)
> [4] Object  <= T(b)
> 
> The removal of transitive constraints eliminates [2] and [4].  So we are
> left with [1] and [3].
> 
Oh, I missed that we have Boolean<=T(null) and Object<=Integer constraints
for hard nodes, :))


> So, in other words, the algorithm works well.  You just have to
> carefully handle Jimple type casts if you want to go back to Java source
> code.
Yes, algorithm works well. However I'd like to improve it and publish
results if you do not mind, :)).

Thanks a lot for your answers,
sincerely,
Nikita