Closed
Description
This is only valid TS, but it causes a debug failure in JS.
class Printer {
constructor() {
this.prop = format;
}
declare prop: string;
method() {
this.prop.oops/*quick info or diagnostics*/
}
}
⚠️ Note that typescript-4.8.4 also had errors ⚠️
Req #478 - completionInfo
at getConstructorDefinedThisAssignmentTypes (/typescript-4.8.4/lib/tsserver.js:56965:22)
at getWidenedTypeForAssignmentDeclaration (/typescript-4.8.4/lib/tsserver.js:56783:90)
at getTypeOfVariableOrParameterOrPropertyWorker (/typescript-4.8.4/lib/tsserver.js:57191:24)
at getTypeOfVariableOrParameterOrProperty (/typescript-4.8.4/lib/tsserver.js:57117:28)
at getTypeOfSymbol (/typescript-4.8.4/lib/tsserver.js:57489:24)
at checkPropertyAccessExpressionOrQualifiedName (/typescript-4.8.4/lib/tsserver.js:75543:126)
at checkPropertyAccessExpression (/typescript-4.8.4/lib/tsserver.js:75330:17)
at getSymbolOfNameOrPropertyAccessExpression (/typescript-4.8.4/lib/tsserver.js:87403:25)
at getSymbolAtLocation (/typescript-4.8.4/lib/tsserver.js:87510:32)
at Object.getSymbolAtLocation (/typescript-4.8.4/lib/tsserver.js:48862:31)
at getTypeScriptMemberSymbols (/typescript-4.8.4/lib/tsserver.js:135331:46)
at getCompletionData (/typescript-4.8.4/lib/tsserver.js:135240:17)
at Object.getCompletionsAtPosition (/typescript-4.8.4/lib/tsserver.js:133845:34)
at Object.getCompletionsAtPosition (/typescript-4.8.4/lib/tsserver.js:167309:35)
at IOSession.Session.getCompletions (/typescript-4.8.4/lib/tsserver.js:179441:64)
at Session.handlers.ts.Map.ts.getEntries._a.<computed> (/typescript-4.8.4/lib/tsserver.js:178114:61)
at /typescript-4.8.4/lib/tsserver.js:180174:96
at IOSession.Session.executeWithRequestId (/typescript-4.8.4/lib/tsserver.js:180165:28)
at IOSession.Session.executeCommand (/typescript-4.8.4/lib/tsserver.js:180174:41)
at IOSession.Session.onMessage (/typescript-4.8.4/lib/tsserver.js:180202:35)
at Interface.<anonymous> (/typescript-4.8.4/lib/tsserver.js:184338:31)
Req #478 - completionInfo
at getConstructorDefinedThisAssignmentTypes (/typescript-5.0.0-dev.20221113/lib/tsserver.js:50243:13)
at getWidenedTypeForAssignmentDeclaration (/typescript-5.0.0-dev.20221113/lib/tsserver.js:50075:80)
at getTypeOfVariableOrParameterOrPropertyWorker (/typescript-5.0.0-dev.20221113/lib/tsserver.js:50430:16)
at getTypeOfVariableOrParameterOrProperty (/typescript-5.0.0-dev.20221113/lib/tsserver.js:50370:22)
at getTypeOfSymbol (/typescript-5.0.0-dev.20221113/lib/tsserver.js:50675:16)
at checkPropertyAccessExpressionOrQualifiedName (/typescript-5.0.0-dev.20221113/lib/tsserver.js:65303:118)
at checkPropertyAccessExpression (/typescript-5.0.0-dev.20221113/lib/tsserver.js:65091:96)
at getSymbolOfNameOrPropertyAccessExpression (/typescript-5.0.0-dev.20221113/lib/tsserver.js:75191:13)
at getSymbolAtLocation (/typescript-5.0.0-dev.20221113/lib/tsserver.js:75298:20)
at Object.getSymbolAtLocation (/typescript-5.0.0-dev.20221113/lib/tsserver.js:43137:23)
at getTypeScriptMemberSymbols (/typescript-5.0.0-dev.20221113/lib/tsserver.js:134619:34)
at getCompletionData (/typescript-5.0.0-dev.20221113/lib/tsserver.js:134538:7)
at Object.getCompletionsAtPosition (/typescript-5.0.0-dev.20221113/lib/tsserver.js:133244:28)
at Object.getCompletionsAtPosition2 [as getCompletionsAtPosition] (/typescript-5.0.0-dev.20221113/lib/tsserver.js:121773:37)
at IOSession.getCompletions (/typescript-5.0.0-dev.20221113/lib/tsserver.js:159375:56)
at completionInfo (/typescript-5.0.0-dev.20221113/lib/tsserver.js:158054:45)
at /typescript-5.0.0-dev.20221113/lib/tsserver.js:160076:71
at IOSession.executeWithRequestId (/typescript-5.0.0-dev.20221113/lib/tsserver.js:160068:16)
at IOSession.executeCommand (/typescript-5.0.0-dev.20221113/lib/tsserver.js:160076:31)
at IOSession.onMessage (/typescript-5.0.0-dev.20221113/lib/tsserver.js:160104:53)
at Interface.<anonymous> (/typescript-5.0.0-dev.20221113/lib/tsserver.js:161639:16)
That is a filtered view of the text. To see the raw error text, go to RepoResults1/babel.babel.rawError.txt in the artifact folder
Last few requests
{"seq":475,"type":"request","command":"completionEntryDetails","arguments":{"file":"@PROJECT_ROOT@/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js","line":568,"offset":32,"entryNames":["arguments"]}}
{"seq":476,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js","line":591,"offset":13}}
{"seq":477,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js","line":596,"offset":59,"includeExternalModuleExports":false,"includeInsertTextCompletions":true,"triggerKind":2,"triggerCharacter":" "}}
{"seq":478,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js","line":616,"offset":29,"includeExternalModuleExports":false,"includeInsertTextCompletions":true,"triggerKind":2,"triggerCharacter":"."}}
Repro Steps
git clone https://github.com/babel/babel --recurse-submodules
- In dir
babel
, rungit reset --hard 088b28a062fdc5351480acf559a680faca72a0fe
- Back in the initial folder, download
RepoResults1/babel.babel.replay.txt
from the artifact folder npm install --no-save @typescript/server-replay
npx tsreplay ./babel ./babel.babel.replay.txt path/to/tsserver.js
npx tsreplay --help
to learn about helpful switches for debugging, logging, etc
Originally posted by @typescript-bot in #51510 (comment)