File tree Expand file tree Collapse file tree 4 files changed +21
-5
lines changed Expand file tree Collapse file tree 4 files changed +21
-5
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ fn print_i64(i:i64) void;
66fn print_i128(i:i128) void;
77fn print_u64(i:u64) void;
88fn print_u128(i:u128) void;
9+ fn print_hex(i:i64) void;
910
1011
1112pub fn print_any<T>(t:T) void {
@@ -30,7 +31,7 @@ pub fn print_any<T>(t:T) void {
3031 if is_ptr<T>() {
3132 let result = unsafe_cast<*u8>(&t);
3233 let i = gc::ptr_to_int(*result);
33- print_i64 (i);
34+ print_hex (i);
3435 print_s(" )");
3536 return;
3637 }
@@ -100,12 +101,22 @@ pub fn print_any<T>(t:T) void {
100101 print_s(" )");
101102 return;
102103 }
103- forfields(t, {
104+ let re = forfields(t, {
104105 print_s(_field_name);
105106 print_s(": ");
106107 print_any(_field);
107108 print_s(" ");
108109 });
110+ if !re {// is trait
111+ let result = unsafe_cast<i64>(&t);
112+ // let hash = *result;
113+ let i_ptr = gc::ptr_to_int(unsafe_cast<u8>(result)) + 8;
114+ let v_ptr = gc::int_to_ptr(i_ptr);
115+ let v = unsafe_cast<i64>(v_ptr);
116+ let i = *v;
117+ print_hex(i);
118+ print_s(" ");
119+ }
109120 print_s(")");
110121 return;
111122}
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ use project1::test::ifel;
22use project1::test::generic;
33use project1::test::st;
44use project1::test::method;
5- use project1::test::constant ;
5+ use project1::test::global ;
66use project1::test::traits;
77use project1::test::simple;
88use project1::test::flow;
@@ -37,7 +37,7 @@ pub fn main() i64 {
3737 generic::test_generic();
3838 method::test_impl();
3939 test_struct();
40- constant::test_const ();
40+ global::test_global ();
4141 traits::test_trait();
4242 simple::test_simple();
4343 flow::test_flow();
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ pub fn change_global() void {
1818 return;
1919}
2020
21- pub fn test_const () void {
21+ pub fn test_global () void {
2222 panic::assert(*a == 100);
2323 change_global();
2424 panic::assert(b.a == 100);
Original file line number Diff line number Diff line change @@ -76,6 +76,11 @@ fn print_u128(i: u128) {
7676 print ! ( "{}" , i) ;
7777}
7878
79+ #[ is_runtime]
80+ fn print_hex ( i : i64 ) {
81+ print ! ( "0x{:X}" , i) ;
82+ }
83+
7984#[ is_runtime]
8085fn utf8_count ( ptr : * mut u8 , byte_len : i64 ) -> i64 {
8186 let s = unsafe { std:: slice:: from_raw_parts ( ptr, byte_len as usize ) } ;
You can’t perform that action at this time.
0 commit comments