File tree 3 files changed +18
-10
lines changed
3 files changed +18
-10
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ Classfile /home/chris/Code/jvm-class-file-parser/classes/Dummy.class
8
8
class Dummy
9
9
minor version: 0
10
10
major version: 52
11
- flags: PUBLIC_FLAG, SUPER_FLAG
11
+ flags: ACC_PUBLIC, ACC_SUPER
12
12
Constant pool:
13
13
#1 = Methodref #3.#10 // java/lang/Object."<init>":()V
14
14
#2 = Class #11 // Dummy
Original file line number Diff line number Diff line change @@ -21,10 +21,13 @@ const MODULE_FLAG: u16 = 0x8000;
21
21
/// details.
22
22
///
23
23
/// https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.1-200-E
24
+ #[ derive( Clone ) ]
24
25
#[ derive( Debug ) ]
25
26
#[ derive( Eq ) ]
26
27
#[ derive( Hash ) ]
28
+ #[ derive( Ord ) ]
27
29
#[ derive( PartialEq ) ]
30
+ #[ derive( PartialOrd ) ]
28
31
pub enum ClassAccess {
29
32
Public ,
30
33
Final ,
Original file line number Diff line number Diff line change @@ -67,6 +67,11 @@ fn to_absolute_filepath(filepath: &str) -> io::Result<PathBuf> {
67
67
}
68
68
69
69
fn print_access_flags ( access_flags : & HashSet < ClassAccess > ) {
70
+ let mut access_flags = access_flags. iter ( )
71
+ . cloned ( )
72
+ . collect :: < Vec < ClassAccess > > ( ) ;
73
+ access_flags. sort ( ) ;
74
+
70
75
let flags_str = access_flags. iter ( )
71
76
. map ( access_flag_to_name)
72
77
. collect :: < Vec < & str > > ( )
@@ -79,15 +84,15 @@ fn access_flag_to_name(flag: &ClassAccess) -> &'static str {
79
84
use ClassAccess :: * ;
80
85
81
86
match flag {
82
- Public => "PUBLIC_FLAG " ,
83
- Final => "FINAL_FLAG " ,
84
- Super => "SUPER_FLAG " ,
85
- Interface => "INTERFACE_FLAG " ,
86
- Abstract => "ABSTRACT_FLAG " ,
87
- Synthetic => "SYNTHETIC_FLAG " ,
88
- Annotation => "ANNOTATION_FLAG " ,
89
- Enum => "ENUM_FLAG " ,
90
- Module => "MODULE_FLAG " ,
87
+ Public => "ACC_PUBLIC " ,
88
+ Final => "ACC_FINAL " ,
89
+ Super => "ACC_SUPER " ,
90
+ Interface => "ACC_INTERFACE " ,
91
+ Abstract => "ACC_ABSTRACT " ,
92
+ Synthetic => "ACC_SYNTHETIC " ,
93
+ Annotation => "ACC_ANNOTATION " ,
94
+ Enum => "ACC_ENUM " ,
95
+ Module => "ACC_MODULE " ,
91
96
}
92
97
}
93
98
You can’t perform that action at this time.
0 commit comments