{"record":{"id":"67d5e0a92a3a2c8d","repo":"typst/typst","slug":"tile-spacing-must-be-finite","errorCode":null,"errorMessage":"tile spacing must be finite","messagePattern":"tile spacing must be finite","errorType":"validation","errorClass":"SourceDiagnostic","httpStatus":null,"severity":"error","filePath":"crates/typst-library/src/visualize/tiling.rs","lineNumber":257,"sourceCode":"\n            // Ensure that sizes are non-zero and finite.\n            if size.x.is_zero()\n                || size.y.is_zero()\n                || !size.x.is_finite()\n                || !size.y.is_finite()\n            {\n                bail!(size_span, \"tile size must be non-zero and non-infinite\");\n            }\n        }\n\n        // Ensure that spacing is absolute.\n        if !spacing.v.x.em.is_zero() || !spacing.v.y.em.is_zero() {\n            bail!(spacing.span, \"tile spacing must be absolute\");\n        }\n\n        // Ensure that spacing is finite.\n        if !spacing.v.x.is_finite() || !spacing.v.y.is_finite() {\n            bail!(spacing.span, \"tile spacing must be finite\");\n        }\n\n        // Ensure that offset is not font-relative.\n        if !offset.v.x.abs.em.is_zero() || !offset.v.y.abs.em.is_zero() {\n            bail!(offset.span, \"tile offset must not be font-relative\");\n        }\n\n        // Ensure that offset is finite.\n        if !offset.v.x.rel.get().is_finite()\n            || !offset.v.x.abs.is_finite()\n            || !offset.v.y.rel.get().is_finite()\n            || !offset.v.y.abs.is_finite()\n        {\n            bail!(offset.span, \"tile offset must be finite\");\n        }\n\n        if !angle.v.is_finite() {\n            bail!(angle.span, \"tile angle must be finite\");","sourceCodeStart":239,"sourceCodeEnd":275,"githubUrl":"https://github.com/typst/typst/blob/35417aa769ab9d699a60384f91082b09bc6ba421/crates/typst-library/src/visualize/tiling.rs#L239-L275","documentation":"Raised in `Tiling::construct` after checking that the `spacing` argument is absolute (no `em` components): here the spacing length must also be finite. A user-supplied `spacing` of `inf` (or a computation yielding infinity, e.g. `1pt/0`) for either axis fails this guard, since a non-finite gap between tile cells cannot be laid out.","triggerScenarios":"Thrown at crates/typst-library/src/visualize/tiling.rs:257 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a finite spacing value on both axes","Check spacing computations for division by zero or overflow"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"35417aa769ab9d699a60384f91082b09bc6ba421","analyzedAt":"2026-08-17T21:03:48.984Z","contentChangedAt":"2026-08-17T21:03:48.984Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}