You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two instances of the same error on line foo!: ComplicatedTypeDerived;:
Property 'foo' in type 'Derived' is not assignable to the same property in base type 'Base'. Type 'ComplicatedTypeDerived' is not assignable to type 'ComplicatedTypeBase'.(2416)
Property 'foo' in type 'Derived' is not assignable to the same property in base type 'Base'. Type 'ComplicatedTypeDerived' is not assignable to type 'ComplicatedTypeBase'. 'string' index signatures are incompatible. Property 'a' is missing in type 'ADerived' but required in type 'ABase'.(2416)
π Expected behavior
A single instance of the error
Additional information about the issue
No response
The text was updated successfully, but these errors were encountered:
Found this when coming up with test cases for #57842.
The way I came up with it is to look at where we call getTypeOfExpression, and then create a program where we call getTypeOfExpression on an expression that produces an error that is dependent on the state of the checker, such that we end up with two different diagnostics, one when we check the expression regularly, another when we re-check the expression through a call to getTypeOfExpression.
Note this is not unique to checking class expressions, nor to the specific error code in the example: I can likely construct other types of program that exhibit this same problem.
I think our duplicate elimination machinery needs to be smarter about removing error messages without elaborations when otherwise identical error messages with elaborations exist for the same location.
π Search Terms
duplicate diagnostics, duplicate errors
π Version & Regression Information
β― Playground Link
https://www.typescriptlang.org/play?ts=5.5.0-dev.20240415#code/JYOwLgpgTgZghgYwgAgMIHsC2AHANsBOSAEwBUBPbCAITgGcUBvAKGTeQG06AuZOsKKADmAXV4BBWgwDczAL7NQkWIhQYc+QiQpUAItGAA3CMWQt2nHnwHCxycfsHHishUujwk9qU1bs4vPyCIEKuiuAeqvaORiZmfmwARoE2IWEIuPR0yD7xFjDo6ACEvOp4BEQmOjT0EOnoIPzIAB7IALzIGVnIMc7IEM2QIMTZuebsBcWlWOVaVZQQvSZhuBBgyOiJAFa8jMgAzCnBQshy7WYHvABEYAAWUBAQV6eym1sczSLSQA
π» Code
π Actual behavior
Two instances of the same error on line
foo!: ComplicatedTypeDerived;
:Property 'foo' in type 'Derived' is not assignable to the same property in base type 'Base'. Type 'ComplicatedTypeDerived' is not assignable to type 'ComplicatedTypeBase'.(2416)
Property 'foo' in type 'Derived' is not assignable to the same property in base type 'Base'. Type 'ComplicatedTypeDerived' is not assignable to type 'ComplicatedTypeBase'. 'string' index signatures are incompatible. Property 'a' is missing in type 'ADerived' but required in type 'ABase'.(2416)
π Expected behavior
A single instance of the error
Additional information about the issue
No response
The text was updated successfully, but these errors were encountered: