langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java
changeset 42828 cce89649f958
parent 42407 f3702cff2933
child 43137 9a96f02a6293
equal deleted inserted replaced
42827:36468b5fa7f4 42828:cce89649f958
   527          *  @param c                The class symbol of the enum
   527          *  @param c                The class symbol of the enum
   528          */
   528          */
   529         protected  JCExpression enumBase(int pos, ClassSymbol c) {
   529         protected  JCExpression enumBase(int pos, ClassSymbol c) {
   530             JCExpression result = make.at(pos).
   530             JCExpression result = make.at(pos).
   531                 TypeApply(make.QualIdent(syms.enumSym),
   531                 TypeApply(make.QualIdent(syms.enumSym),
   532                           List.<JCExpression>of(make.Type(c.type)));
   532                           List.of(make.Type(c.type)));
   533             return result;
   533             return result;
   534         }
   534         }
   535 
   535 
   536         protected Type modelMissingTypes(Env<AttrContext> env, Type t, final JCExpression tree, final boolean interfaceExpected) {
   536         protected Type modelMissingTypes(Env<AttrContext> env, Type t, final JCExpression tree, final boolean interfaceExpected) {
   537             if (!t.hasTag(ERROR))
   537             if (!t.hasTag(ERROR))
   958             // public static T[] values() { return ???; }
   958             // public static T[] values() { return ???; }
   959             JCMethodDecl values = make.
   959             JCMethodDecl values = make.
   960                 MethodDef(make.Modifiers(Flags.PUBLIC|Flags.STATIC),
   960                 MethodDef(make.Modifiers(Flags.PUBLIC|Flags.STATIC),
   961                           names.values,
   961                           names.values,
   962                           valuesType,
   962                           valuesType,
   963                           List.<JCTypeParameter>nil(),
   963                           List.nil(),
   964                           List.<JCVariableDecl>nil(),
   964                           List.nil(),
   965                           List.<JCExpression>nil(), // thrown
   965                           List.nil(), // thrown
   966                           null, //make.Block(0, Tree.emptyList.prepend(make.Return(make.Ident(names._null)))),
   966                           null, //make.Block(0, Tree.emptyList.prepend(make.Return(make.Ident(names._null)))),
   967                           null);
   967                           null);
   968             memberEnter.memberEnter(values, env);
   968             memberEnter.memberEnter(values, env);
   969 
   969 
   970             // public static T valueOf(String name) { return ???; }
   970             // public static T valueOf(String name) { return ???; }
   971             JCMethodDecl valueOf = make.
   971             JCMethodDecl valueOf = make.
   972                 MethodDef(make.Modifiers(Flags.PUBLIC|Flags.STATIC),
   972                 MethodDef(make.Modifiers(Flags.PUBLIC|Flags.STATIC),
   973                           names.valueOf,
   973                           names.valueOf,
   974                           make.Type(tree.sym.type),
   974                           make.Type(tree.sym.type),
   975                           List.<JCTypeParameter>nil(),
   975                           List.nil(),
   976                           List.of(make.VarDef(make.Modifiers(Flags.PARAMETER |
   976                           List.of(make.VarDef(make.Modifiers(Flags.PARAMETER |
   977                                                              Flags.MANDATED),
   977                                                              Flags.MANDATED),
   978                                                 names.fromString("name"),
   978                                                 names.fromString("name"),
   979                                                 make.Type(syms.stringType), null)),
   979                                                 make.Type(syms.stringType), null)),
   980                           List.<JCExpression>nil(), // thrown
   980                           List.nil(), // thrown
   981                           null, //make.Block(0, Tree.emptyList.prepend(make.Return(make.Ident(names._null)))),
   981                           null, //make.Block(0, Tree.emptyList.prepend(make.Return(make.Ident(names._null)))),
   982                           null);
   982                           null);
   983             memberEnter.memberEnter(valueOf, env);
   983             memberEnter.memberEnter(valueOf, env);
   984         }
   984         }
   985 
   985 
  1067             initParams = initParams.append(param);
  1067             initParams = initParams.append(param);
  1068             argTypesList = argTypesList.tail;
  1068             argTypesList = argTypesList.tail;
  1069         }
  1069         }
  1070         if (baseInit != null && baseInit.params != null &&
  1070         if (baseInit != null && baseInit.params != null &&
  1071             baseInit.params.nonEmpty() && argTypesList.nonEmpty()) {
  1071             baseInit.params.nonEmpty() && argTypesList.nonEmpty()) {
  1072             initParams = (initParams == null) ? List.<VarSymbol>nil() : initParams;
  1072             initParams = (initParams == null) ? List.nil() : initParams;
  1073             List<VarSymbol> baseInitParams = baseInit.params;
  1073             List<VarSymbol> baseInitParams = baseInit.params;
  1074             while (baseInitParams.nonEmpty() && argTypesList.nonEmpty()) {
  1074             while (baseInitParams.nonEmpty() && argTypesList.nonEmpty()) {
  1075                 VarSymbol param = new VarSymbol(baseInitParams.head.flags() | PARAMETER,
  1075                 VarSymbol param = new VarSymbol(baseInitParams.head.flags() | PARAMETER,
  1076                         baseInitParams.head.name, argTypesList.head, init);
  1076                         baseInitParams.head.name, argTypesList.head, init);
  1077                 initParams = initParams.append(param);
  1077                 initParams = initParams.append(param);