RFR: 7039014: Confusing error message for method conflict [v3]

Vicente Romero vromero at openjdk.org
Thu Oct 20 04:50:53 UTC 2022


On Wed, 19 Oct 2022 15:22:51 GMT, Archie L. Cobbs <duke at openjdk.org> wrote:

>> This fixes a confusing error message.
>> 
>> Currently, this input:
>> 
>> interface A<T> {
>>     byte m(String x);
>>     char m(T x);
>> }
>> 
>> interface B extends A<String> {
>> }
>> 
>> produces this error:
>> 
>> A.java:6: error: types A<String> and A<String> are incompatible;
>> interface B extends A<String> {
>> ^
>>   both define m(String), but with unrelated return types
>> 1 error
>> 
>> This patch detects when the two types are actually the same type and gives this error message instead:
>> 
>> A.java:6: error: type A<String> defines m(String) more than once with unrelated return types
>> interface B extends A<String> {
>> ^
>> 1 error
>
> Archie L. Cobbs has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Remove obsolete @author tags and combine tests into one file.

looks good

-------------

Marked as reviewed by vromero (Reviewer).

PR: https://git.openjdk.org/jdk/pull/10752


More information about the compiler-dev mailing list