The compiler's methodSig, typesFromOverridden, and assignTypeToTree use an inherited return type as an expected type when checking an overriding method body. This permits numeric widening of a literal in that body while still inferring more specificreference result types where appropriate.