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

`}

`