Skip to content

Commit

Permalink
8211138: Missing Flag enum constants
Browse files Browse the repository at this point in the history
Reviewed-by: mcimadamore, vromero
  • Loading branch information
cushon committed Sep 26, 2018
1 parent d20eae2 commit 9c60728
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,9 @@ public enum Flag {
SYSTEM_MODULE(Flags.SYSTEM_MODULE),
DEPRECATED_ANNOTATION(Flags.DEPRECATED_ANNOTATION),
DEPRECATED_REMOVAL(Flags.DEPRECATED_REMOVAL),
HAS_RESOURCE(Flags.HAS_RESOURCE);
HAS_RESOURCE(Flags.HAS_RESOURCE),
POTENTIALLY_AMBIGUOUS(Flags.POTENTIALLY_AMBIGUOUS),
ANONCONSTR_BASED(Flags.ANONCONSTR_BASED);

Flag(long flag) {
this.value = flag;
Expand Down
46 changes: 46 additions & 0 deletions test/langtools/tools/javac/flags/FlagsTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Copyright (c) 2018, Google LLC. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/

/**
* @test
* @bug 8211138
* @summary Missing Flag enum constants
* @library /tools/javac/lib
* @modules jdk.compiler/com.sun.tools.javac.code
* @run main FlagsTest
*/
import com.sun.tools.javac.code.Flags;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class FlagsTest {
public static void main(String[] args) throws IllegalAccessException {
for (Field f : Flags.class.getFields()) {
if (!Modifier.isStatic(f.getModifiers())) {
continue;
}
long flag = ((Number) f.get(null)).longValue();
try {
Flags.asFlagSet(flag);
} catch (AssertionError e) {
throw new AssertionError("missing Flags enum constant for: " + f.getName(), e);
}
}
}
}

0 comments on commit 9c60728

Please sign in to comment.