Skip to content

Commit 87ca824

Browse files
bors[bot]Marwes
andauthored
Merge #856
856: fix: Keep type field arguments on the same line as the name r=Marwes a=Marwes bors r+ Co-authored-by: Markus Westerlind <[email protected]>
2 parents 5cc0ec1 + b1e40d3 commit 87ca824

File tree

2 files changed

+47
-9
lines changed

2 files changed

+47
-9
lines changed

base/src/types/mod.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2833,11 +2833,13 @@ where
28332833
}
28342834

28352835
let f = chain![arena;
2836-
field.name.as_ref(),
2837-
arena.line(),
2838-
arena.concat(field.typ.params().iter().map(|param| {
2839-
arena.text(param.id.as_ref()).append(arena.line())
2840-
})),
2836+
chain![arena;
2837+
field.name.as_ref(),
2838+
arena.line(),
2839+
arena.concat(field.typ.params().iter().map(|param| {
2840+
arena.text(param.id.as_ref()).append(arena.line())
2841+
}))
2842+
].group(),
28412843
arena.text("= "),
28422844
if filter == Filter::RetainKey {
28432845
arena.text("...")

base/tests/types.rs

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ fn show_record_multifield() {
102102
);
103103
assert_eq_display!(format!("{}", typ), "{ Test a = a -> String, x : Int }");
104104
}
105+
105106
#[test]
106107
fn show_record_multiline() {
107108
let data = |s, a| ArcType::from(type_con(s, a));
@@ -140,6 +141,44 @@ fn show_record_multiline() {
140141
);
141142
}
142143

144+
#[test]
145+
fn show_record_long_type() {
146+
let data = |s, a| ArcType::from(type_con(s, a));
147+
let fun = Type::function(
148+
vec![
149+
data(
150+
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
151+
vec![],
152+
),
153+
data("a", vec![]),
154+
data("a", vec![]),
155+
],
156+
Type::string(),
157+
);
158+
let test = data("Test", vec![data("a", vec![])]);
159+
let record = Type::record(
160+
vec![Field::new(
161+
"Test",
162+
Alias::from(AliasData::new(
163+
"Test",
164+
vec![Generic::new("a", Kind::typ())],
165+
fun.clone(),
166+
)),
167+
)],
168+
vec![],
169+
);
170+
171+
assert_eq_display!(
172+
format!("{}", record),
173+
r#"{
174+
Test a = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
175+
-> a
176+
-> a
177+
-> String
178+
}"#
179+
);
180+
}
181+
143182
#[test]
144183
fn show_record_filtered() {
145184
let data = |s, a| ArcType::from(type_con(s, a));
@@ -262,10 +301,7 @@ fn show_record_multi_line_nested() {
262301
#[test]
263302
fn show_variant() {
264303
let typ: ArcType<&str> = Type::variant(vec![
265-
Field::new(
266-
"A",
267-
Type::function(vec![Type::int()], Type::opaque()),
268-
),
304+
Field::new("A", Type::function(vec![Type::int()], Type::opaque())),
269305
Field::new("B", Type::opaque()),
270306
]);
271307
assert_eq_display!(format!("{}", typ), "| A Int\n| B");

0 commit comments

Comments
 (0)