Skip to content

Commit 9c61010

Browse files
basil-cowjackh726
authored andcommitted
add comments to tests
1 parent 39650c4 commit 9c61010

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

tests/test/discriminant_kind.rs

+28
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
use super::*;
22

3+
// Test that user-provided impls of `Discriminantkind` are prohibited
4+
#[test]
5+
fn no_discriminant_kind_impls() {
6+
lowering_error! {
7+
program {
8+
#[lang(discriminant_kind)]
9+
trait DiscriminantKind {
10+
type Discriminant;
11+
}
12+
13+
impl DiscriminantKind for u32 {
14+
type Discriminant = u32;
15+
}
16+
} error_msg {
17+
"trait impl for `DiscriminantKind` does not meet well-formedness requirements"
18+
}
19+
}
20+
}
21+
22+
// Test that all types are implementing DiscriminantKind
323
#[test]
424
fn discriminant_kind_impl() {
525
test! {
@@ -75,12 +95,14 @@ fn discriminant_kind_assoc() {
7595
}
7696
}
7797

98+
// Discriminant for types with no discriminant should be u8
7899
goal {
79100
Normalize(<u32 as DiscriminantKind>::Discriminant -> u8)
80101
} yields {
81102
"Unique"
82103
}
83104

105+
// Same as above
84106
goal {
85107
forall<'a> {
86108
Normalize(<dyn Principal + 'a as DiscriminantKind>::Discriminant -> u8)
@@ -89,12 +111,15 @@ fn discriminant_kind_assoc() {
89111
"Unique"
90112
}
91113

114+
// Discriminant for enums with unspecified discriminant should be isize
92115
goal {
93116
Normalize(<A as DiscriminantKind>::Discriminant -> isize)
94117
} yields {
95118
"Unique"
96119
}
97120

121+
// Discriminant should be the same as specified in `repr`
122+
// -----
98123
goal {
99124
Normalize(<B as DiscriminantKind>::Discriminant -> isize)
100125
} yields {
@@ -118,13 +143,16 @@ fn discriminant_kind_assoc() {
118143
} yields {
119144
"Unique"
120145
}
146+
//--------
121147

148+
// Generators have u32 as the discriminant
122149
goal {
123150
Normalize(<empty_gen as DiscriminantKind>::Discriminant -> u32)
124151
} yields {
125152
"Unique"
126153
}
127154

155+
// Placeholders don't have a determined discriminant
128156
goal {
129157
forall<T> {
130158
exists<U> {

tests/test/wf_lowering.rs

-18
Original file line numberDiff line numberDiff line change
@@ -1438,21 +1438,3 @@ fn coerce_unsized_struct() {
14381438
}
14391439
}
14401440
}
1441-
1442-
#[test]
1443-
fn no_discriminant_kind_impls() {
1444-
lowering_error! {
1445-
program {
1446-
#[lang(discriminant_kind)]
1447-
trait DiscriminantKind {
1448-
type Discriminant;
1449-
}
1450-
1451-
impl DiscriminantKind for u32 {
1452-
type Discriminant = u32;
1453-
}
1454-
} error_msg {
1455-
"trait impl for `DiscriminantKind` does not meet well-formedness requirements"
1456-
}
1457-
}
1458-
}

0 commit comments

Comments
 (0)