Skip to content

Unusual parsing of equal signs followed by a char as part of strings in a dictionary without spaces #9879

@ghost

Description

Describe the bug

The ast parsing somehow often thinks that a = followed by a char in a string of a dictionary, which dosnt contain spaces, makes the entire dictionary a command.

How to reproduce

These examples produce Error: nu::parser::unknown_command:

  • {"":"=a"}
  • {"=a":""}
  • {"foo":"=foo"}
  • {"":"=a","":""}

These similar examples parse correctly:

  • {"":""}
  • {"":"="}
  • {"": "="}
  • {"foo":"foo"}
  • {"":" ="}
  • {"":"=a", "":""}
  • {"":"=a","": ""}
  • {"":"=a","":" "}
  • {"":"foobar="}

Expected behavior

all of those should be dictionaries

Screenshots

No response

Configuration

key value
version 0.83.0
branch
commit_hash
build_os linux-x86_64
build_target x86_64-unknown-linux-gnu
rust_version rustc 1.70.0 (90c541806 2023-05-31) (built from a source tarball)
cargo_version cargo 1.70.0
build_time 1980-01-01 00:00:00 +00:00
build_rust_channel release
allocator standard
features default, sqlite, trash, which, zip
installed_plugins

(from nupkgs)
(nu0.82.0 is also affected)

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    A:parserIssues related to parsingcategory:bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions