Hi Ravi,
thanks for the update!
Did you minimize the failure in tests/tainting/Issue1111.java ?
Why do you think it is caused by isSameType?
Did you make progress in comparing javac 8 vs javac 9 executions?
Did the list of steps to follow for debugging help?
BTW, I fixed one of the other exceptions that kept occurring in the Nullness Checker tests:
https://github.com/eisop/checker-framework/commit/2fce5fb0018a4a10f21b614da46553d8ef374018
Best,
cu, WMD.
Hi Ravi,
Can you please send me an update?I'm quite concerned about the progress you're making and would like to better understand what you're spending your time on.
Thanks,cu, WMD.
Hi Ravi,
as discussed in the meeting, you should determine the type of `memberVisitor` and look what methods are invoked on it or its superclasses.
Find where the different upper bound is introduced and see why that decision is different between 8 and 9.
Send us an update if you get stuck and try to make progress on a different issue in the meantime.
Cheers,
cu, WMD.
Hi Jeff,
Thanks for continuing to look into this.
Maybe it will be useful to look at the hashcodes of the WildcardType objects that get used in these different places.
Some method on Types return new anonymous inner class objects and change certain fields. Maybe something gets confused there.
It would also allow you to track down which wildcard first gets set by the compiler and which other wildcard you then see in the Checker Framework.
What’s the hashcode of the wildcard that has a null bound vs. the object on which the bound is set?
Which of the two objects do you see in the AST?
The withTypeVar code seems to directly modify the type in the AST, so this doesn’t yet explain why the bound isn’t set.
What is the smallest example program for which you can observe the difference in behavior?
What is your “earlier hypothesis”?
Instead of `(new Exception()).printStackTrace();` you can just write `Thread.dumpStack()`.
Best,
cu, WMD.
--
https://ece.uwaterloo.ca/~wdietl/
Hi Jeff,
Thanks for continuing to look into this.
Maybe it will be useful to look at the hashcodes of the WildcardType objects that get used in these different places.
Some method on Types return new anonymous inner class objects and change certain fields. Maybe something gets confused there.
It would also allow you to track down which wildcard first gets set by the compiler and which other wildcard you then see in the Checker Framework.
What’s the hashcode of the wildcard that has a null bound vs. the object on which the bound is set?
Which of the two objects do you see in the AST?
The withTypeVar code seems to directly modify the type in the AST, so this doesn’t yet explain why the bound isn’t set.
What is the smallest example program for which you can observe the difference in behavior?
What is your “earlier hypothesis”?
Instead of `(new Exception()).printStackTrace();` you can just write `Thread.dumpStack()`.
Best,
cu, WMD.
--
https://ece.uwaterloo.ca/~wdietl/
From: Jeff Luo
Sent: June 25, 2018 00:30
To: Werner Dietl; Ravi Roshan
Cc: Checker Framework GSOC