Skip to content

template string with recursive function lead to wrong result #2953

@HerrCai0907

Description

@HerrCai0907

Bug description

use recursive function + template string will lead to wrong result.

Steps to reproduce

function f(v: number): string {
  if (v <= 0) return "done";
  return `[ ${f(v - 1)}, ${f(v - 2)} ]`;
}

export function _start(): void {
  trace(f(10));
}
trace: [ [ [ [ [ [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ], [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ] ], [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ] ], [ [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ], [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ] ] ], [ [ [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ], [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ] ], [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ] ] ], [ [ [ [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ], [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ] ], [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ] ], [ [ [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ], [ [ [ done, done ], done ], [ done, done ] ] ], [ [ [ [ done, done ], done ], [ done, done ] ], [ [ done, done ], done ] ] ] ] ]

AssemblyScript version

all

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