Skip to content

Panic on a file with a "goto" when buliding stylua with LuaJIT but not Lua 5.2 #986

@dimfeld

Description

@dimfeld

When building with cargo install stylua --feature luajit, I get a panic when formatting a Lua file that contains a goto.

Everything works fine if I build with cargo install stylua --feature luajit --feature lua52, so I'm just doing that instead.

Reproduction

  1. Build with --feature luajit
  2. Create any file with a goto statement. Even just a single line "goto x" works.
  3. Run stylua on the file

Stack Trace

thread '<unnamed>' panicked at /Users/dimfeld/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stylua-2.1.0/src/formatters/stmt.rs:1110:5:
unknown node Goto(Goto { goto_token: TokenReference { leading_trivia: [Token { start_position: Position { bytes: 7597, line: 272, character: 1 }, end_position: Position { bytes: 7603, line: 272, character: 7 }, token_type: Whitespace { characters: ShortString("      ") } }], token: Token { start_position: Position { bytes: 7603, line: 272, character: 7 }, end_position: Position { bytes: 7607, line: 272, character: 11 }, token_type: Symbol { symbol: Goto } }, trailing_trivia: [Token { start_position: Position { bytes: 7607, line: 272, character: 11 }, end_position: Position { bytes: 7608, line: 272, character: 12 }, token_type: Whitespace { characters: ShortString(" ") } }] }, label_name: TokenReference { leading_trivia: [], token: Token { start_position: Position { bytes: 7608, line: 272, character: 12 }, end_position: Position { bytes: 7616, line: 272, character: 20 }, token_type: Identifier { identifier: ShortString("continue") } }, trailing_trivia: [Token { start_position: Position { bytes: 7616, line: 272, character: 20 }, end_position: Position { bytes: 7617, line: 272, character: 20 }, token_type: Whitespace { characters: ShortString("\n") } }] } })
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: stylua_lib::formatters::stmt::format_stmt
   3: stylua_lib::formatters::block::format_block
   4: stylua_lib::formatters::stmt::format_stmt
   5: stylua_lib::formatters::block::format_block
   6: stylua_lib::formatters::stmt::format_stmt
   7: stylua_lib::formatters::block::format_block
   8: stylua_lib::formatters::functions::format_function_body
   9: stylua_lib::formatters::functions::format_local_function
  10: stylua_lib::formatters::stmt::format_stmt
  11: stylua_lib::formatters::block::format_block
  12: stylua_lib::formatters::CodeFormatter::format
  13: stylua_lib::format_ast
  14: stylua_lib::format_code
  15: <F as threadpool::FnBox>::call_box

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions