aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-type.h7
-rw-r--r--gcc/testsuite/rust/compile/issue-1173.rs20
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-893-2.rs2
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);