Make effects
an incomplete feature · rust-lang/rust@81da6a6 (original) (raw)
`@@ -7,6 +7,7 @@
`
7
7
`// not remove this test.
`
8
8
`//
`
9
9
`` // FIXME(effects) add const_trait
to Fn
so we use ~const
``
``
10
`` +
// FIXME(effects) restore const_trait
to Destruct
``
10
11
`#![feature(const_trait_impl)]
`
11
12
`#![crate_name = "foo"]
`
12
13
``
`@@ -24,9 +25,9 @@ pub trait Tr {
`
24
25
`// @has - '//section[@id="method.a"]/h4[@class="code-header"]/a[@class="trait"]' 'Fn'
`
25
26
`// @!has - '//section[@id="method.a"]/h4[@class="code-header"]/span[@class="where"]' '~const'
`
26
27
`// @has - '//section[@id="method.a"]/h4[@class="code-header"]/div[@class="where"]' ': Fn'
`
27
``
`-
fn a<A: /* ~const */ Fn() + ~const Destruct>()
`
``
28
`+
fn a<A: /* ~const */ Fn() /* + ~const Destruct */>()
`
28
29
`where
`
29
``
`-
Option: /* ~const */ Fn() + ~const Destruct,
`
``
30
`+
Option: /* ~const / Fn() / + ~const Destruct */,
`
30
31
`{
`
31
32
`}
`
32
33
`}
`
`@@ -36,13 +37,13 @@ pub trait Tr {
`
36
37
`// @has - '//section[@id="impl-Tr%3CT%3E-for-T"]/h3[@class="code-header"]/a[@class="trait"]' 'Fn'
`
37
38
`// @!has - '//section[@id="impl-Tr%3CT%3E-for-T"]/h3[@class="code-header"]/span[@class="where"]' '~const'
`
38
39
`// @has - '//section[@id="impl-Tr%3CT%3E-for-T"]/h3[@class="code-header"]/div[@class="where"]' ': Fn'
`
39
``
`-
impl<T: /* ~const */ Fn() + ~const Destruct> const Tr for T
`
``
40
`+
impl<T: /* ~const */ Fn() /* + ~const Destruct */> const Tr for T
`
40
41
`where
`
41
``
`-
Option: /* ~const */ Fn() + ~const Destruct,
`
``
42
`+
Option: /* ~const / Fn() / + ~const Destruct */,
`
42
43
`{
`
43
``
`-
fn a<A: /* ~const */ Fn() + ~const Destruct>()
`
``
44
`+
fn a<A: /* ~const */ Fn() /* + ~const Destruct */>()
`
44
45
`where
`
45
``
`-
Option: /* ~const */ Fn() + ~const Destruct,
`
``
46
`+
Option: /* ~const / Fn() / + ~const Destruct */,
`
46
47
`{
`
47
48
`}
`
48
49
`}
`
`@@ -51,9 +52,9 @@ where
`
51
52
`// @has - '//pre[@class="rust item-decl"]/code/a[@class="trait"]' 'Fn'
`
52
53
`// @!has - '//pre[@class="rust item-decl"]/code/div[@class="where"]' '~const'
`
53
54
`// @has - '//pre[@class="rust item-decl"]/code/div[@class="where"]' ': Fn'
`
54
``
`-
pub const fn foo<F: /* ~const */ Fn() + ~const Destruct>()
`
``
55
`+
pub const fn foo<F: /* ~const */ Fn() /* + ~const Destruct */>()
`
55
56
`where
`
56
``
`-
Option: /* ~const */ Fn() + ~const Destruct,
`
``
57
`+
Option: /* ~const / Fn() / + ~const Destruct */,
`
57
58
`{
`
58
59
`F::a()
`
59
60
`}
`
`@@ -63,9 +64,9 @@ impl S {
`
63
64
`// @has - '//section[@id="method.foo"]/h4[@class="code-header"]/a[@class="trait"]' 'Fn'
`
64
65
`// @!has - '//section[@id="method.foo"]/h4[@class="code-header"]/span[@class="where"]' '~const'
`
65
66
`// @has - '//section[@id="method.foo"]/h4[@class="code-header"]/div[@class="where"]' ': Fn'
`
66
``
`-
pub const fn foo<B, C: /* ~const */ Fn() + ~const Destruct>()
`
``
67
`+
pub const fn foo<B, C: /* ~const */ Fn() /* + ~const Destruct */>()
`
67
68
`where
`
68
``
`-
B: /* ~const */ Fn() + ~const Destruct,
`
``
69
`+
B: /* ~const / Fn() / + ~const Destruct */,
`
69
70
`{
`
70
71
`B::a()
`
71
72
`}
`