Skip to content

tsgo panics with invalid UTF-8 when marshalling build info #1531

@tnowad

Description

@tnowad

Stack trace

panic: Failed to marshal build info: json: cannot marshal from Go incremental.BuildInfoDiagnosticsOfFile within "/semanticDiagnosticsPerFile/0": invalid UTF-8 within "/1/1/message" after offset 319

goroutine 1 [running]:
github.com/microsoft/typescript-go/internal/incremental.(*Program).emitBuildInfo(0xc002a0c180, {0xdb5728, 0x14ad4e0}, {0x0?, 0xd8?, 0x0?})
        github.com/microsoft/typescript-go/internal/incremental/program.go:264 +0x588
github.com/microsoft/typescript-go/internal/incremental.(*emitFilesHandler).emitAllAffectedFiles(0xc000b35590, {0x0?, 0x1e?, 0x0?})
        github.com/microsoft/typescript-go/internal/incremental/emitfileshandler.go:132 +0x696
github.com/microsoft/typescript-go/internal/incremental.emitFiles({0xdb5728, 0x14ad4e0}, 0xc002a0c180, {0x0?, 0x0?, 0x0?}, 0x0)
        github.com/microsoft/typescript-go/internal/incremental/emitfileshandler.go:273 +0x1a5
github.com/microsoft/typescript-go/internal/incremental.(*Program).Emit(0xc002a0c180, {0xdb5728, 0x14ad4e0}, {0x0?, 0x0?, 0x0?})
        github.com/microsoft/typescript-go/internal/incremental/program.go:193 +0x307
github.com/microsoft/typescript-go/internal/execute.emitFilesAndReportErrors({0xdb8450, 0xc000144000}, {0xdbb000, 0xc002a0c180}, 0xc0001285e0)
        github.com/microsoft/typescript-go/internal/execute/tsc.go:384 +0x1cf
github.com/microsoft/typescript-go/internal/execute.emitAndReportStatistics({0xdb8450, 0xc000144000}, {0xdbb000?, 0xc002a0c180?}, 0xc000002000, 0xc0001560f0, 0x0?, 0x6325c, 0x299e9ef, 0x7ffd6e, ...)
        github.com/microsoft/typescript-go/internal/execute/tsc.go:308 +0x6d
github.com/microsoft/typescript-go/internal/execute.performIncrementalCompilation({0xdb8450, 0xc000144000}, 0xc0001560f0, 0xc0001285e0, 0xc00011e240, 0x6325c, 0x0)
        github.com/microsoft/typescript-go/internal/execute/tsc.go:250 +0x40c
github.com/microsoft/typescript-go/internal/execute.tscCompilation({0xdb8450, 0xc000144000}, 0xc000156000, 0x0)
        github.com/microsoft/typescript-go/internal/execute/tsc.go:194 +0xb53
github.com/microsoft/typescript-go/internal/execute.CommandLine({0xdb8450, 0xc000144000}, {0xc0000200a0, 0x0, 0x0}, 0x0)
        github.com/microsoft/typescript-go/internal/execute/tsc.go:63 +0x17e
main.runMain()
        github.com/microsoft/typescript-go/cmd/tsgo/main.go:23 +0x109
main.main()
        github.com/microsoft/typescript-go/cmd/tsgo/main.go:10 +0x13

Steps to reproduce

  1. Create a .ts file with this content:
const createFileListFromFiles = (files: File[]): FileList => {
  const fileList: FileList = {
    length: files.length,
    item: (index: number): File | null => files[index] || null,
    [Symbol.iterator]: function* (): IterableIterator<File> {
      for (const file of files) yield file;
    },
    ...files,
  } as unknown as FileList;

  return fileList;
};
  1. Run:
tsgo

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions