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 }