+++ /dev/null
-// run-pass
-#![feature(dyn_star)]
-#![allow(unused)]
-
-use std::fmt::Debug;
-
-fn make_dyn_star() {
- let i = 42usize;
- let dyn_i: dyn* Debug = i as dyn* Debug;
-}
-
-fn main() {
- make_dyn_star();
-}
+++ /dev/null
-// run-pass
-// check-run-results
-#![feature(dyn_star)]
-
-use std::fmt::Debug;
-
-#[derive(Debug)]
-struct Foo(usize);
-
-impl Drop for Foo {
- fn drop(&mut self) {
- println!("destructor called");
- }
-}
-
-fn make_dyn_star(i: Foo) {
- let _dyn_i: dyn* Debug = i as dyn* Debug;
-}
-
-fn main() {
- make_dyn_star(Foo(42));
-}
+++ /dev/null
-destructor called
+++ /dev/null
-#![feature(dyn_star)]
-
-use std::fmt::Debug;
-
-trait Foo {}
-
-fn make_dyn_star() {
- let i = 42;
- let dyn_i: dyn* Foo = i as dyn* Foo; //~ ERROR trait bound `{integer}: Foo` is not satisfied
-}
-
-fn main() {}
+++ /dev/null
-error[E0277]: the trait bound `{integer}: Foo` is not satisfied
- --> $DIR/dyn-star-trait-error.rs:9:27
- |
-LL | let dyn_i: dyn* Foo = i as dyn* Foo;
- | ^ the trait `Foo` is not implemented for `{integer}`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0277`.
+++ /dev/null
-// run-pass
-#![feature(dyn_star)]
-
-trait Foo {
- fn get(&self) -> usize;
-}
-
-impl Foo for usize {
- fn get(&self) -> usize {
- *self
- }
-}
-
-fn invoke_dyn_star(i: dyn* Foo) -> usize {
- i.get()
-}
-
-fn make_and_invoke_dyn_star(i: usize) -> usize {
- let dyn_i: dyn* Foo = i as dyn* Foo;
- invoke_dyn_star(dyn_i)
-}
-
-fn main() {
- println!("{}", make_and_invoke_dyn_star(42));
-}
--- /dev/null
+// run-pass
+#![feature(dyn_star)]
+#![allow(unused)]
+
+use std::fmt::Debug;
+
+fn make_dyn_star() {
+ let i = 42usize;
+ let dyn_i: dyn* Debug = i as dyn* Debug;
+}
+
+fn main() {
+ make_dyn_star();
+}
--- /dev/null
+// run-pass
+// check-run-results
+#![feature(dyn_star)]
+
+use std::fmt::Debug;
+
+#[derive(Debug)]
+struct Foo(usize);
+
+impl Drop for Foo {
+ fn drop(&mut self) {
+ println!("destructor called");
+ }
+}
+
+fn make_dyn_star(i: Foo) {
+ let _dyn_i: dyn* Debug = i as dyn* Debug;
+}
+
+fn main() {
+ make_dyn_star(Foo(42));
+}
--- /dev/null
+destructor called
--- /dev/null
+#![feature(dyn_star)]
+
+use std::fmt::Debug;
+
+trait Foo {}
+
+fn make_dyn_star() {
+ let i = 42;
+ let dyn_i: dyn* Foo = i as dyn* Foo; //~ ERROR trait bound `{integer}: Foo` is not satisfied
+}
+
+fn main() {}
--- /dev/null
+error[E0277]: the trait bound `{integer}: Foo` is not satisfied
+ --> $DIR/error.rs:9:27
+ |
+LL | let dyn_i: dyn* Foo = i as dyn* Foo;
+ | ^ the trait `Foo` is not implemented for `{integer}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
--- /dev/null
+// run-pass
+#![feature(dyn_star)]
+
+trait Foo {
+ fn get(&self) -> usize;
+}
+
+impl Foo for usize {
+ fn get(&self) -> usize {
+ *self
+ }
+}
+
+fn invoke_dyn_star(i: dyn* Foo) -> usize {
+ i.get()
+}
+
+fn make_and_invoke_dyn_star(i: usize) -> usize {
+ let dyn_i: dyn* Foo = i as dyn* Foo;
+ invoke_dyn_star(dyn_i)
+}
+
+fn main() {
+ println!("{}", make_and_invoke_dyn_star(42));
+}