Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Debug Failure. No error for last overload signature #60229

Copy link
Copy link
@thomasballinger

Description

@thomasballinger
Issue body actions

🔎 Search Terms

Debug Failure. No error for last overload signature

possibly related to

🕗 Version & Regression Information

  • This is the behavior in every version I tried, from 4.5.5 on through 5.7.0-dev.20241014. In 4.4 there's a different error, RangeError: Maximum call stack size exceeded.

⏯ Playground Link

Playground link

💻 Code

// First copy of a library
type ComponentDefinitionExports<T> =
  T extends ComponentDefinition<infer Exports> ? Exports : never;

class InstalledComponent<Definition extends ComponentDefinition<any>> {
  get exports(): ComponentDefinitionExports<Definition> {
    return null as any;
  }
}

type ComponentDefinition<_Exports> = {
  use<Definition extends ComponentDefinition<any>>(
    definition: Definition
  ): InstalledComponent<Definition>;
};

function defineComponent(): ComponentDefinition<any> {
  return null as any as ComponentDefinition<any>;
}

const aggregate = defineComponent();

// Imagine another copy of the library

type ComponentDefinitionExports2<T> =
  T extends ComponentDefinition2<infer Exports> ? Exports : never;

class InstalledComponent2<Definition extends ComponentDefinition2<any>> {
  get exports(): ComponentDefinitionExports2<Definition> {
    return null as any;
  }
}

type ComponentDefinition2<_Exports> = {
  use<Definition extends ComponentDefinition2<any>>(
    definition: Definition
  ): InstalledComponent2<Definition>;
};

export type AppDefinition2 = {
  use<Definition extends ComponentDefinition2<any>>(
    definition: Definition
  ): InstalledComponent2<Definition>;
};

export function defineApp2(): AppDefinition2 {
  return null as any;
}

const app = defineApp2();
app.use(aggregate);

🙁 Actual behavior

tsc exits with error code 1 and write to stderr Debug Failure. No error for last overload signature

/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:113984
      throw e;
      ^

Error: Debug Failure. No error for last overload signature
    at resolveCall (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:69834:19)
    at resolveCallExpression (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:70216:12)
    at resolveSignature (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:70599:16)
    at getResolvedSignature (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:70619:20)
    at checkCallExpression (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:70728:23)
    at checkExpressionWorker (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:73819:16)
    at checkExpression (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:73729:32)
    at checkExpressionStatement (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:76310:5)
    at checkSourceElementWorker (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:79237:16)
    at checkSourceElement (/Users/tomb/aggregate/node_modules/typescript/lib/tsc.js:79097:7)

In the playground,

Uncaught (in promise) Error: Debug Failure. No error for last overload signature
    at wR (tsWorker.js:341:318135)
    ...

🙂 Expected behavior

I'm not sure. I'd like this to pass typechecking.

Additional information about the issue

I tried to minimize this but I imagine this is not the minimal repro. Please give this a better title :)

Reactions are currently unavailable

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptA bug in TypeScriptDomain: CrashesUnhandled exceptions/panics with no immediate primary root cause identifiedUnhandled exceptions/panics with no immediate primary root cause identified

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.