diff options
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-type.h | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/issue-1173.rs | 20 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/torture/issue-893-2.rs | 2 |
3 files changed, 22 insertions, 7 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-type.h b/gcc/rust/resolve/rust-ast-resolve-type.h index 4920e2b..7284633 100644 --- a/gcc/rust/resolve/rust-ast-resolve-type.h +++ b/gcc/rust/resolve/rust-ast-resolve-type.h @@ -169,13 +169,8 @@ public: return CanonicalPath::create_empty (); } - std::string generics - = ResolveTypeToCanonicalPath::canonicalize_generic_args ( - seg.get_generic_args ()); - return CanonicalPath::new_seg (seg.get_node_id (), - seg.get_ident_segment ().as_string () - + "::" + generics); + seg.get_ident_segment ().as_string ()); } }; diff --git a/gcc/testsuite/rust/compile/issue-1173.rs b/gcc/testsuite/rust/compile/issue-1173.rs new file mode 100644 index 0000000..b08d720 --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-1173.rs @@ -0,0 +1,20 @@ +// { dg-additional-options "-w" } +mod mem { + extern "rust-intrinsic" { + fn transmute<U, V>(_: U) -> V; + } +} + +pub trait Hasher { + fn write(&mut self, bytes: &[u8]); + fn write_u16(&mut self, i: u16) { + self.write(&mem::transmute::<_, [u8; 2]>(i)) + } +} + +pub struct SipHasher; + +impl Hasher for SipHasher { + #[inline] + fn write(&mut self, msg: &[u8]) {} +} diff --git a/gcc/testsuite/rust/compile/torture/issue-893-2.rs b/gcc/testsuite/rust/compile/torture/issue-893-2.rs index 88a865d..c0eb1bb 100644 --- a/gcc/testsuite/rust/compile/torture/issue-893-2.rs +++ b/gcc/testsuite/rust/compile/torture/issue-893-2.rs @@ -24,7 +24,7 @@ impl Baz<i32, f32> { pub fn main() { let a = Foo::<i32>::new::<f32>(123, 456f32); - let b = Foo::new::<f32>(123, 456f32); + // let b = Foo::new::<f32>(123, 456f32); let c = Bar::<i32>(123); let d = Bar::baz(c); |