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
- float: 123.45
- infinity: .inf
plus_infinity: +.inf
minus_infinity: -.inf
- not: .nan
```
@ -162,6 +164,8 @@ return {
},
{
["infinity"] = (1/0);
["plus_infinity"] = (1/0);
["minus_infinity"] = (-1/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))
case "!!float":
switch strings.ToLower(node.Value) {
case ".inf":
case ".inf", "+.inf":
return writeString(writer, "(1/0)")
case "-.inf":
return writeString(writer, "(-1/0)")

View File

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