260 }
261 case DeprecatedAttribute _ ->
262 0;
263 case EnclosingMethodAttribute ema -> {
264 ema.enclosingClass();
265 ema.enclosingMethod();
266 yield 4;
267 }
268 case ExceptionsAttribute ea ->
269 2 + 2 * ea.exceptions().size();
270 case InnerClassesAttribute ica -> {
271 for (var ici : ica.classes()) {
272 if (ici.outerClass().isPresent() && ici.outerClass().get().equals(ici.innerClass())) {
273 errors.add(new VerifyError("Class is both outer and inner class in %s".formatted(toString(ae))));
274 }
275 }
276 yield 2 + 8 * ica.classes().size();
277 }
278 case LineNumberTableAttribute lta ->
279 2 + 4 * lta.lineNumbers().size();
280 case LocalVariableTableAttribute lvta ->
281 2 + 10 * lvta.localVariables().size();
282 case LocalVariableTypeTableAttribute lvta ->
283 2 + 10 * lvta.localVariableTypes().size();
284 case MethodParametersAttribute mpa ->
285 1 + 4 * mpa.parameters().size();
286 case ModuleAttribute ma ->
287 16 + subSize(ma.exports(), ModuleExportInfo::exportsTo, 6, 2)
288 + subSize(ma.opens(), ModuleOpenInfo::opensTo, 6, 2)
289 + subSize(ma.provides(), ModuleProvideInfo::providesWith, 4, 2)
290 + 6 * ma.requires().size()
291 + 2 * ma.uses().size();
292 case ModuleHashesAttribute mha ->
293 2 + moduleHashesSize(mha.hashes());
294 case ModuleMainClassAttribute mmca -> {
295 mmca.mainClass();
296 yield 2;
297 }
298 case ModulePackagesAttribute mpa ->
299 2 + 2 * mpa.packages().size();
|
260 }
261 case DeprecatedAttribute _ ->
262 0;
263 case EnclosingMethodAttribute ema -> {
264 ema.enclosingClass();
265 ema.enclosingMethod();
266 yield 4;
267 }
268 case ExceptionsAttribute ea ->
269 2 + 2 * ea.exceptions().size();
270 case InnerClassesAttribute ica -> {
271 for (var ici : ica.classes()) {
272 if (ici.outerClass().isPresent() && ici.outerClass().get().equals(ici.innerClass())) {
273 errors.add(new VerifyError("Class is both outer and inner class in %s".formatted(toString(ae))));
274 }
275 }
276 yield 2 + 8 * ica.classes().size();
277 }
278 case LineNumberTableAttribute lta ->
279 2 + 4 * lta.lineNumbers().size();
280 case LoadableDescriptorsAttribute lda ->
281 2 + 2 * lda.loadableDescriptors().size();
282 case LocalVariableTableAttribute lvta ->
283 2 + 10 * lvta.localVariables().size();
284 case LocalVariableTypeTableAttribute lvta ->
285 2 + 10 * lvta.localVariableTypes().size();
286 case MethodParametersAttribute mpa ->
287 1 + 4 * mpa.parameters().size();
288 case ModuleAttribute ma ->
289 16 + subSize(ma.exports(), ModuleExportInfo::exportsTo, 6, 2)
290 + subSize(ma.opens(), ModuleOpenInfo::opensTo, 6, 2)
291 + subSize(ma.provides(), ModuleProvideInfo::providesWith, 4, 2)
292 + 6 * ma.requires().size()
293 + 2 * ma.uses().size();
294 case ModuleHashesAttribute mha ->
295 2 + moduleHashesSize(mha.hashes());
296 case ModuleMainClassAttribute mmca -> {
297 mmca.mainClass();
298 yield 2;
299 }
300 case ModulePackagesAttribute mpa ->
301 2 + 2 * mpa.packages().size();
|