Skip to content

[ServerErrors][JavaScript] 5.5.0-dev.20240324 #57924

Description

The following errors were reported by 5.5.0-dev.20240324
Pipeline that generated this bug
Logs for the pipeline run
File that generated the pipeline

This run considered 300 popular TS repos from GH (after skipping the top 0).

Successfully analyzed 292 of 300 visited repos
OutcomeCount
Detected interesting changes5
Detected no interesting changes287
Unknown failure8

Investigation Status

ErrorsReposOutcome
Server exited prematurely with code unknown and signal SIGABRT1
Error: Debug Failure. Did not expect ObjectLiteralExpression to have an Identifier in its trivia1Deprioritizing investigation as the error shows for a minimized file and does not have a clear repro.
Error: Debug Failure. False expression.1CompletionInfo is failing due to the synthetic propertySignature is using an incorrect questionToken position, causing the Assert to fail. I noticed that there's two signatures with the same property name in different positions. I suspect that the second property, the one out of bounds of the range, is being assigned to the signature incorrectly.
Investigation: assignPositionsToNode is probably the culprit of the node not having the right position. We validated before that no positions are set. We do not know yet if it's because is reusing a node or is just assigning an incorrect value.

Fix on PR #58263
Error: Debug Failure. Expected declaration to have at least one class-like declaration1Assigning a property its prototype caused definition to stop working. Minimal repro:
const A ={};
A.B = class Foo {}
new A.|B|(); // <-- Go to definition here
A.B.prototype.C = null; // Comment this line and the issue do not repro.
Investigation: Hypothesis is that on an expando object we're not looking into the right side of the assignment before getting to getConstructSignatureDefinition. Note: I don't understand why commenting out prototype causes it to work. If we do the symbol is no longer flag as a class so it doesn't hit the Debug.Fail.

Fix in PR #57628.
Error: Debug Failure. False expression: Expected the specifier to be a default export1Completions gets confused by processing a named export with the default version, causing the assert to be hit. See repro:
// file1.js
const a = 1;
export {
a as b
};
export default a;

// file2.js
import * as foo from './file1';
| //<-- Trigger completions here
export default foo.b;
Investigation: We're getting an alias for a default export, but why do we get an alias? (getDefaultExportInfoWorker)

Metadata

Metadata

Labels

BugA bug in TypeScript

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions