RFR: 8284220: TypeMirror#toString omits enclosing class names after JDK-8281238 [v4]

Joe Darcy darcy at openjdk.java.net
Tue Apr 26 04:41:00 UTC 2022

On Mon, 18 Apr 2022 18:18:30 GMT, Liam Miller-Cushon <cushon at openjdk.org> wrote:

>> Please consider this fix for https://bugs.openjdk.java.net/browse/JDK-8284220, which updates `ClassType#toString` to include enclosing class names when type annotations are present.
>> For example, `java.util. at A Map.Entry<?,?>` is now printed as `java.util. at A Map.Entry<?,?>`, instead of `java.util. at A Entry<?,?>` (note the missing `Map`).
> Liam Miller-Cushon has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
>  - Merge branch 'openjdk:master' into JDK-8284220
>  - Refactor test based on review feedback
>  - 8284220: TypeMirror#toString omits enclosing class names after JDK-8281238

Marked as reviewed by darcy (Reviewer).

src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java line 1046:

> 1044:                         buf.append(".");
> 1045:                     }
> 1046:                     ListBuffer<Name> names = new ListBuffer<>();

There may be a more idiomataic way to javac to construct this string, but offhand I don't know what it is.

test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/AnnotatedTypeToString.java line 1:

> 1: /*

>From personal experience with similar tests, they can look obscure when revisting them months in the future. I suggest putting a sentence or two description of what the test is trying to do. Also, if all the types can fit in one file, that can be easier to understand.


PR: https://git.openjdk.java.net/jdk/pull/8084

More information about the compiler-dev mailing list