1 package jdk.incubator.code.dialect.java;
2
3 import jdk.incubator.code.TypeElement;
4
5 /**
6 * A symbolic reference to a Java class member or a Java type including members,
7 * commonly containing symbolic names together with {@link JavaType symbolic descriptions}
8 * of Java types.
9 * <p>
10 * A symbolic Java reference can be resolved to a corresponding instance of its
11 * reflected representation, much like the symbolic description of a Java type
12 * can be resolved to an instance of {@link java.lang.reflect.Type Type}.
13 */
14 public sealed interface JavaRef extends TypeElement
15 permits MethodRef, ConstructorRef, FieldRef, RecordTypeRef {
16 // @@@ Enhance TypeElement to traverse children
17 // - Uniform tree traversal and transformation independent of
18 // externalization.
19 // @@@ Make RecordTypeRef.ComponentRef implement JavaRef?
20 // - resolve to RecordComponent
21 // - (RecordTypeRef resolves to Type.)
22 // @@@ AnnotatedElement is the common top type for resolved Java refs and types
23 }