From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- .../builtin-superkinds-capabilities-xc.rs | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs (limited to 'src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs') diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs new file mode 100644 index 000000000..8416bb3a3 --- /dev/null +++ b/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs @@ -0,0 +1,27 @@ +// run-pass +// aux-build:trait_superkinds_in_metadata.rs + +// Tests "capabilities" granted by traits with super-builtin-kinds, +// even when using them cross-crate. + + +extern crate trait_superkinds_in_metadata; + +use std::sync::mpsc::{channel, Sender, Receiver}; +use trait_superkinds_in_metadata::{RequiresRequiresShareAndSend, RequiresShare}; + +#[derive(PartialEq, Debug)] +struct X(T); + +impl RequiresShare for X { } +impl RequiresRequiresShareAndSend for X { } + +fn foo(val: T, chan: Sender) { + chan.send(val).unwrap(); +} + +pub fn main() { + let (tx, rx): (Sender>, Receiver>) = channel(); + foo(X(31337), tx); + assert_eq!(rx.recv().unwrap(), X(31337)); +} -- cgit v1.2.3