]> git.lizzy.rs Git - rust.git/blob - tests/ui/consts/const-trait-to-trait.rs
suggest fix for attempted integer identifier in patterns
[rust.git] / tests / ui / consts / const-trait-to-trait.rs
1 // run-pass
2 #![allow(dead_code)]
3 #![allow(unused_variables)]
4 // Issue #24644 - block causes a &Trait -> &Trait coercion:
5 trait Trait {}
6
7 struct Bar;
8 impl Trait for Bar {}
9
10 fn main() {
11     let x: &[&dyn Trait] = &[{ &Bar }];
12 }
13
14 // Issue #25748 - the cast causes an &Encoding -> &Encoding coercion:
15 pub struct UTF8Encoding;
16 pub const UTF_8: &'static UTF8Encoding = &UTF8Encoding;
17 pub trait Encoding {}
18 impl Encoding for UTF8Encoding {}
19 pub fn f() -> &'static dyn Encoding { UTF_8 as &'static dyn Encoding }
20
21 // Root of the problem: &Trait -> &Trait coercions:
22 const FOO: &'static dyn Trait = &Bar;
23 const BAR: &'static dyn Trait = FOO;
24 fn foo() { let _x = BAR; }