RFR: 7039014: Confusing error message for method conflict [v2]
Archie L. Cobbs
duke at openjdk.org
Wed Oct 19 02:08:55 UTC 2022
> 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:
Add a few more unit tests.
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/10752/files
- new: https://git.openjdk.org/jdk/pull/10752/files/a233f6de..4404568c
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=10752&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=10752&range=00-01
Stats: 83 lines in 5 files changed: 83 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/10752.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10752/head:pull/10752
PR: https://git.openjdk.org/jdk/pull/10752
More information about the compiler-dev
mailing list