Fix compiler panic for float with no vertical alignment (#2437)

This commit is contained in:
MALO 2023-10-22 13:43:24 +02:00 committed by GitHub
parent 3ed6462ee0
commit cf9ca6cb59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -95,7 +95,10 @@ impl Layout for PlaceElem {
let float = self.float(styles);
let alignment = self.alignment(styles);
if float && alignment.map_or(false, |align| align.y() == Some(VAlign::Horizon)) {
if float
&& alignment
.map_or(false, |align| matches!(align.y(), None | Some(VAlign::Horizon)))
{
bail!(self.span(), "floating placement must be `auto`, `top`, or `bottom`");
} else if !float && alignment.is_auto() {
return Err("automatic positioning is only available for floating placement")

View File

@ -17,3 +17,15 @@
---
// Error: 2-45 floating placement must be `auto`, `top`, or `bottom`
#place(center + horizon, float: true)[Hello]
---
// Error: 2-36 floating placement must be `auto`, `top`, or `bottom`
#place(horizon, float: true)[Hello]
---
// Error: 2-27 floating placement must be `auto`, `top`, or `bottom`
#place(float: true)[Hello]
---
// Error: 2-34 floating placement must be `auto`, `top`, or `bottom`
#place(right, float: true)[Hello]