1 /*
   2  * Copyright (c) 2018, Google LLC. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  */
  19 
  20 /**
  21  * @test
  22  * @bug 8211138
  23  * @summary Missing Flag enum constants
  24  * @library /tools/javac/lib
  25  * @modules jdk.compiler/com.sun.tools.javac.code
  26  * @run main FlagsTest
  27  */
  28 import com.sun.tools.javac.code.Flags;
  29 import java.lang.reflect.Field;
  30 import java.lang.reflect.Modifier;
  31 
  32 public class FlagsTest {
  33     public static void main(String[] args) throws IllegalAccessException {
  34         for (Field f : Flags.class.getFields()) {
  35             if (!Modifier.isStatic(f.getModifiers())) {
  36                 continue;
  37             }
  38             long flag = ((Number) f.get(null)).longValue();
  39             try {
  40                 Flags.asFlagSet(flag);
  41             } catch (AssertionError e) {
  42                 throw new AssertionError("missing Flags enum constant for: " + f.getName(), e);
  43             }
  44         }
  45     }
  46 }