File: issue-65679-inst-opaque-ty-from-val-twice.rs

package info (click to toggle)
rustc 1.85.0%2Bdfsg3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, sid, trixie
  • size: 893,396 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,051; perl: 29; lisp: 29; ruby: 19; sql: 11
file content (21 lines) | stat: -rw-r--r-- 630 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//@ check-pass

#![feature(type_alias_impl_trait, rustc_attrs)]
mod foo {
    pub type T = impl Sized;
    // The concrete type referred by impl-trait-type-alias(`T`) is guaranteed
    // to be the same as where it occurs, whereas `impl Trait`'s instance is location sensitive;
    // so difference assertion should not be declared on impl-trait-type-alias's instances.
    // for details, check RFC-2515:
    // https://github.com/rust-lang/rfcs/blob/master/text/2515-type_alias_impl_trait.md

    fn bop(_: T) {
        super::take(|| {});
        super::take(|| {});
    }
}
use foo::*;

fn take(_: fn() -> T) {}

fn main() {}