encoder_lua: Handle explicitly positive infinity

This commit is contained in:
Kim Alvefur 2023-10-04 12:08:14 +02:00
parent 610896e5ed
commit 8f6d57f58e
3 changed files with 9 additions and 1 deletions

View File

@ -129,6 +129,8 @@ numbers:
- octal: 0o30 - octal: 0o30
- float: 123.45 - float: 123.45
- infinity: .inf - infinity: .inf
plus_infinity: +.inf
minus_infinity: -.inf
- not: .nan - not: .nan
``` ```
@ -162,6 +164,8 @@ return {
}, },
{ {
["infinity"] = (1/0); ["infinity"] = (1/0);
["plus_infinity"] = (1/0);
["minus_infinity"] = (-1/0);
}, },
{ {
["not"] = (0/0); ["not"] = (0/0);

View File

@ -292,7 +292,7 @@ func (le *luaEncoder) encodeAny(writer io.Writer, node *yaml.Node) error {
return writeString(writer, strings.ToLower(node.Value)) return writeString(writer, strings.ToLower(node.Value))
case "!!float": case "!!float":
switch strings.ToLower(node.Value) { switch strings.ToLower(node.Value) {
case ".inf": case ".inf", "+.inf":
return writeString(writer, "(1/0)") return writeString(writer, "(1/0)")
case "-.inf": case "-.inf":
return writeString(writer, "(-1/0)") return writeString(writer, "(-1/0)")

View File

@ -135,6 +135,8 @@ numbers:
- octal: 0o30 - octal: 0o30
- float: 123.45 - float: 123.45
- infinity: .inf - infinity: .inf
plus_infinity: +.inf
minus_infinity: -.inf
- not: .nan - not: .nan
`, `,
expected: `return { expected: `return {
@ -161,6 +163,8 @@ numbers:
}, },
{ {
["infinity"] = (1/0); ["infinity"] = (1/0);
["plus_infinity"] = (1/0);
["minus_infinity"] = (-1/0);
}, },
{ {
["not"] = (0/0); ["not"] = (0/0);