langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java
changeset 21010 5ffe0d8a5e24
parent 21009 b35973e2d42e
child 21015 f3bec12a63e7
equal deleted inserted replaced
21009:b35973e2d42e 21010:5ffe0d8a5e24
   641         DiagnosticPosition prevLintPos = deferredLintHandler.setPos(tree.pos());
   641         DiagnosticPosition prevLintPos = deferredLintHandler.setPos(tree.pos());
   642         try {
   642         try {
   643             if (TreeInfo.isEnumInit(tree)) {
   643             if (TreeInfo.isEnumInit(tree)) {
   644                 attr.attribIdentAsEnumType(localEnv, (JCIdent)tree.vartype);
   644                 attr.attribIdentAsEnumType(localEnv, (JCIdent)tree.vartype);
   645             } else {
   645             } else {
   646                 // Make sure type annotations are processed.
       
   647                 // But we don't have a symbol to attach them to yet - use null.
       
   648                 typeAnnotate(tree.vartype, env, null, tree.pos());
       
   649                 attr.attribType(tree.vartype, localEnv);
   646                 attr.attribType(tree.vartype, localEnv);
   650                 if (tree.nameexpr != null) {
   647                 if (tree.nameexpr != null) {
   651                     attr.attribExpr(tree.nameexpr, localEnv);
   648                     attr.attribExpr(tree.nameexpr, localEnv);
   652                     MethodSymbol m = localEnv.enclMethod.sym;
   649                     MethodSymbol m = localEnv.enclMethod.sym;
   653                     if (m.isConstructor()) {
   650                     if (m.isConstructor()) {
   694             chk.checkTransparentVar(tree.pos(), v, enclScope);
   691             chk.checkTransparentVar(tree.pos(), v, enclScope);
   695             enclScope.enter(v);
   692             enclScope.enter(v);
   696         }
   693         }
   697         annotateLater(tree.mods.annotations, localEnv, v, tree.pos());
   694         annotateLater(tree.mods.annotations, localEnv, v, tree.pos());
   698         typeAnnotate(tree.vartype, env, v, tree.pos());
   695         typeAnnotate(tree.vartype, env, v, tree.pos());
   699         annotate.flush();
       
   700         v.pos = tree.pos;
   696         v.pos = tree.pos;
   701     }
   697     }
   702     // where
   698     // where
   703     void checkType(JCTree tree, Type type, String diag) {
   699     void checkType(JCTree tree, Type type, String diag) {
   704         if (!tree.type.isErroneous() && !types.isSameType(tree.type, type)) {
   700         if (!tree.type.isErroneous() && !types.isSameType(tree.type, type)) {
  1082 
  1078 
  1083             attr.attribTypeVariables(tree.typarams, baseEnv);
  1079             attr.attribTypeVariables(tree.typarams, baseEnv);
  1084             // Do this here, where we have the symbol.
  1080             // Do this here, where we have the symbol.
  1085             for (JCTypeParameter tp : tree.typarams)
  1081             for (JCTypeParameter tp : tree.typarams)
  1086                 typeAnnotate(tp, baseEnv, sym, tree.pos());
  1082                 typeAnnotate(tp, baseEnv, sym, tree.pos());
  1087             annotate.flush();
       
  1088 
  1083 
  1089             // Add default constructor if needed.
  1084             // Add default constructor if needed.
  1090             if ((c.flags() & INTERFACE) == 0 &&
  1085             if ((c.flags() & INTERFACE) == 0 &&
  1091                 !TreeInfo.hasConstructors(tree.defs)) {
  1086                 !TreeInfo.hasConstructors(tree.defs)) {
  1092                 List<Type> argtypes = List.nil();
  1087                 List<Type> argtypes = List.nil();