Repository navigation
Use effective annotations for type-variable operands in the Units and Value Checkers - #8349
Conversation
… Value checkers The Units Checker's compound-assignment check and the Value Checker's array-dimension refinement read the primary annotation of the operand's type. When the operand's type is a type variable, such as `T extends Integer`, there is no primary annotation: the Units Checker issued a false-positive compound.assignment error, and the Value Checker crashed with a BugInCF. Use the effective annotation (the upper bound's) instead.
These changes are now in typetools#8349.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ⬇️ Low Change: Bug fix Merge Risk: ⚪ Minimal · up to
|
The synthetic Byte.valueOf call that boxes the result of `b++` on a Byte has the `b + 1` tree, of type int, as its argument. The Value Checker passed the argument's values as Integers, so evaluating Byte.valueOf(byte) by reflection failed with an argument type mismatch.
This change is now in typetools#8349.
These changes are pulled from #8329