File: cfg_accessible-not_sure.rs

package info (click to toggle)
rustc-web 1.70.0%2Bdfsg1-7~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,517,036 kB
  • sloc: xml: 147,962; javascript: 10,210; sh: 8,590; python: 8,220; ansic: 5,901; cpp: 4,635; makefile: 4,006; asm: 2,856
file content (89 lines) | stat: -rw-r--r-- 2,135 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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// revisions: edition2015 edition2021
// [edition2015]compile-flags: --edition=2015
// [edition2021]compile-flags: --edition=2021

#![feature(extern_types)]
#![feature(cfg_accessible)]

// Struct::unresolved - error

struct Struct {
    existing: u8,
}

#[cfg_accessible(Struct::existing)] //~ ERROR not sure
const A: bool = true;
#[cfg_accessible(Struct::unresolved)] //~ ERROR not sure
const B: bool = true;

// Union::unresolved - error

struct Union {
    existing: u8,
}

#[cfg_accessible(Union::existing)] //~ ERROR not sure
const A: bool = true;
#[cfg_accessible(Union::unresolved)] //~ ERROR not sure
const B: bool = true;

// Enum::unresolved - error

enum Enum {
    Existing { existing: u8 },
}

#[cfg_accessible(Enum::Existing::existing)] //~ ERROR not sure
const A: bool = true;
#[cfg_accessible(Enum::Existing::unresolved)] //~ ERROR not sure
const B: bool = true;
#[cfg_accessible(Enum::unresolved)] //~ ERROR not sure
const C: bool = true;

// Trait::unresolved - false or error, depending on edition (error if you can write Trait::foo
// instead of <dyn Trait>::foo for methods like impl dyn Trait { fn foo() {} })

trait Trait {}
impl dyn Trait { fn existing() {} }

// FIXME: Should be an error for edition > 2015
#[cfg_accessible(Trait::existing)] //~ ERROR not sure
const A: bool = true;
#[cfg_accessible(Trait::unresolved)] //~ ERROR not sure
const B: bool = true;

// TypeAlias::unresolved - error

type TypeAlias = Struct;

#[cfg_accessible(TypeAlias::existing)] //~ ERROR not sure
const A: bool = true;
#[cfg_accessible(TypeAlias::unresolved)] //~ ERROR not sure
const B: bool = true;

// ForeignType::unresolved - error

extern {
    type ForeignType;
}

#[cfg_accessible(ForeignType::unresolved)] //~ ERROR not sure
const A: bool = true;

// AssocType::unresolved - error

trait AssocType {
    type AssocType;
}

#[cfg_accessible(AssocType::AssocType::unresolved)] //~ ERROR not sure
const A: bool = true;

// PrimitiveType::unresolved - error

#[cfg_accessible(u8::unresolved)] //~ ERROR not sure
const A: bool = true;
#[cfg_accessible(u8::is_ascii)] //~ ERROR not sure
const B: bool = true;

fn main() {}