src/share/classes/com/sun/tools/javac/code/Symtab.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/classes/com/sun/tools/javac/code/Symtab.java	Fri Jan 18 02:48:21 2013
--- new/src/share/classes/com/sun/tools/javac/code/Symtab.java	Fri Jan 18 02:48:20 2013

*** 154,163 **** --- 154,164 ---- public final Type overrideType; public final Type retentionType; public final Type deprecatedType; public final Type suppressWarningsType; public final Type inheritedType; + public final Type profileType; public final Type proprietaryType; public final Type systemType; public final Type autoCloseableType; public final Type trustMeType; public final Type lambdaMetafactory;
*** 358,367 **** --- 359,384 ---- }; } } + // Enter a synthetic class that is used to mark classes in ct.sym. + // This class does not have a class file. + private Type enterSyntheticAnnotation(String name) { + ClassType type = (ClassType)enterClass(name); + ClassSymbol sym = (ClassSymbol)type.tsym; + sym.completer = null; + sym.flags_field = PUBLIC|ACYCLIC|ANNOTATION|INTERFACE; + sym.erasure_field = type; + sym.members_field = new Scope(sym); + type.typarams_field = List.nil(); + type.allparams_field = List.nil(); + type.supertype_field = annotationType; + type.interfaces_field = List.nil(); + return type; + } + /** Constructor; enters all predefined identifiers and operators * into symbol table. */ protected Symtab(Context context) throws CompletionFailure { context.put(symtabKey, this);
*** 519,539 **** --- 536,552 ---- synthesizeBoxTypeIfMissing(voidType); // Enter a synthetic class that is used to mark internal // proprietary classes in ct.sym. This class does not have a // class file. ! ClassType proprietaryType = (ClassType)enterClass("sun.Proprietary+Annotation"); this.proprietaryType = proprietaryType; ClassSymbol proprietarySymbol = (ClassSymbol)proprietaryType.tsym; proprietarySymbol.completer = null; ! proprietarySymbol.flags_field = PUBLIC|ACYCLIC|ANNOTATION|INTERFACE; ! proprietarySymbol.erasure_field = proprietaryType; ! proprietarySymbol.members_field = new Scope(proprietarySymbol); proprietaryType.typarams_field = List.nil(); proprietaryType.allparams_field = List.nil(); proprietaryType.supertype_field = annotationType; proprietaryType.interfaces_field = List.nil(); ! proprietaryType = enterSyntheticAnnotation("sun.Proprietary+Annotation"); + + // Enter a synthetic class that is used to provide profile info for + // classes in ct.sym. This class does not have a class file. ! profileType = enterSyntheticAnnotation("jdk.Profile+Annotation"); ! MethodSymbol m = new MethodSymbol(PUBLIC | ABSTRACT, names.value, intType, profileType.tsym); ! profileType.tsym.members().enter(m); // Enter a class for arrays. // The class implements java.lang.Cloneable and java.io.Serializable. // It has a final length field and a clone method. ClassType arrayClassType = (ClassType)arrayClass.type;

src/share/classes/com/sun/tools/javac/code/Symtab.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File