diff options
| author | Marcus Klaas <mail@marcusklaas.nl> | 2015-10-24 12:19:58 +0200 |
|---|---|---|
| committer | Marcus Klaas <mail@marcusklaas.nl> | 2015-10-24 13:13:15 +0200 |
| commit | d122ad5adc2164e34e59a7e9e7e8da2dfba7ffb5 (patch) | |
| tree | 47c808713a466de490677005fa422f27a0260164 /tests/source | |
| parent | 58ff0d8730806332e05b34189d91c8504f71eccc (diff) | |
Address some issues with multiline patterns in let statements
Diffstat (limited to 'tests/source')
| -rw-r--r-- | tests/source/issue-510.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/source/issue-510.rs b/tests/source/issue-510.rs new file mode 100644 index 00000000000..faf3d657ada --- /dev/null +++ b/tests/source/issue-510.rs @@ -0,0 +1,39 @@ +impl ISizeAndMarginsComputer for AbsoluteNonReplaced { +fn solve_inline_size_constraints(&self, +block: &mut BlockFlow, +input: &ISizeConstraintInput) +-> ISizeConstraintSolution { + +let (inline_start,inline_size,margin_inline_start,margin_inline_end) = +match (inline_startssssssxxxxxxsssssxxxxxxxxxssssssxxx,inline_startssssssxxxxxxsssssxxxxxxxxxssssssxxx) { +(MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Auto) => { +let margin_start = inline_start_margin.specified_or_zero(); +let margin_end = inline_end_margin.specified_or_zero(); +// Now it is the same situation as inline-start Specified and inline-end +// and inline-size Auto. +// +// Set inline-end to zero to calculate inline-size. +let inline_size = block.get_shrink_to_fit_inline_size(available_inline_size - +(margin_start + margin_end)); +(Au(0), inline_size, margin_start, margin_end) +} +}; + +// FIXME(#501): tuple width heuristic may not be optimal for patterns. + let (inline_start, inline_size, margin_inline_start, margin_inline_end) = + match (inline_start, inline_end, computed_inline_size) { + (MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Auto) => { + let margin_start = inline_start_margin.specified_or_zero(); + let margin_end = inline_end_margin.specified_or_zero(); + // Now it is the same situation as inline-start Specified and inline-end + // and inline-size Auto. + // + // Set inline-end to zero to calculate inline-size. + let inline_size = + block.get_shrink_to_fit_inline_size(available_inline_size - + (margin_start + margin_end)); + (Au(0), inline_size, margin_start, margin_end) + } + }; +} +} |
