277
278 private static void testLatestMatch() {
279 // Verify accessFlag.locations() and
280 // accessFlag.locations(ClassFileFormatVersion.latest()) are
281 // consistent
282 var LATEST = ClassFileFormatVersion.latest();
283 for (var accessFlag : AccessFlag.values()) {
284 var locationSet = accessFlag.locations();
285 var locationLatestSet = accessFlag.locations(LATEST);
286 if (!locationSet.equals(locationLatestSet)) {
287 throw new RuntimeException("Unequal location sets for " + accessFlag);
288 }
289 }
290 }
291
292 private static void testFlagVersionConsistency() {
293 for (var flag : AccessFlag.values()) {
294 for (var location : AccessFlag.Location.values()) {
295 if (location.flags().contains(flag) != flag.locations().contains(location)) {
296 throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
297 "flag %s and location %s are inconsistent for the latest version"));
298 }
299 }
300 }
301 for (var cffv : ClassFileFormatVersion.values()) {
302 for (var flag : AccessFlag.values()) {
303 for (var location : AccessFlag.Location.values()) {
304 if (location.flags(cffv).contains(flag) != flag.locations(cffv).contains(location)) {
305 throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
306 "flag %s and location %s are inconsistent for class file version %s"));
307 }
308 }
309 }
310 }
311 }
312
313 private static void testLocationMaskFlagConsistency() {
314 for (var location : AccessFlag.Location.values()) {
315 if (!flagsAndMaskMatch(location.flags(), location.flagsMask())) {
316 throw new RuntimeException(String.format("Flags and mask mismatch for %s", location));
317 }
318 for (var cffv : ClassFileFormatVersion.values()) {
319 if (!flagsAndMaskMatch(location.flags(cffv), location.flagsMask(cffv))) {
320 throw new RuntimeException(String.format("Flags and mask mismatch for %s in %s", location, cffv));
321 }
322 }
323 }
324 }
325
326 private static boolean flagsAndMaskMatch(Set<AccessFlag> flags, int mask) {
|
277
278 private static void testLatestMatch() {
279 // Verify accessFlag.locations() and
280 // accessFlag.locations(ClassFileFormatVersion.latest()) are
281 // consistent
282 var LATEST = ClassFileFormatVersion.latest();
283 for (var accessFlag : AccessFlag.values()) {
284 var locationSet = accessFlag.locations();
285 var locationLatestSet = accessFlag.locations(LATEST);
286 if (!locationSet.equals(locationLatestSet)) {
287 throw new RuntimeException("Unequal location sets for " + accessFlag);
288 }
289 }
290 }
291
292 private static void testFlagVersionConsistency() {
293 for (var flag : AccessFlag.values()) {
294 for (var location : AccessFlag.Location.values()) {
295 if (location.flags().contains(flag) != flag.locations().contains(location)) {
296 throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
297 "flag %s and location %s are inconsistent for the latest version", flag, location));
298 }
299 }
300 }
301 for (var cffv : ClassFileFormatVersion.values()) {
302 for (var flag : AccessFlag.values()) {
303 for (var location : AccessFlag.Location.values()) {
304 if (location.flags(cffv).contains(flag) != flag.locations(cffv).contains(location)) {
305 throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
306 "flag %s and location %s are inconsistent for class file version %s", flag, location, cffv));
307 }
308 }
309 }
310 }
311 }
312
313 private static void testLocationMaskFlagConsistency() {
314 for (var location : AccessFlag.Location.values()) {
315 if (!flagsAndMaskMatch(location.flags(), location.flagsMask())) {
316 throw new RuntimeException(String.format("Flags and mask mismatch for %s", location));
317 }
318 for (var cffv : ClassFileFormatVersion.values()) {
319 if (!flagsAndMaskMatch(location.flags(cffv), location.flagsMask(cffv))) {
320 throw new RuntimeException(String.format("Flags and mask mismatch for %s in %s", location, cffv));
321 }
322 }
323 }
324 }
325
326 private static boolean flagsAndMaskMatch(Set<AccessFlag> flags, int mask) {
|