Closed guuzeing closed 4 years ago
Seems like the same error+stack mentioned in #34672
@sandersn the referenced bug above claims to have been fixed. Maybe you can try to synthesize a repro for this?
@guuzeing can you try out the nightly extension to validate that this is fixed?
@RyanCavanaugh it wasn't necessarily fixed, the repro we had just stopped crashing before we narrowed down the cause. It happened quite a while before this bug was filed, so I don't think they're the same.
@guuzeing, if you find that this isn't fixed, let me know and I can walk you through modifying your tsc.js to print the actual source text instead of [object Object]
. That will make reproing this easier.
In #34672, looks like we missed the fact that getAssignmentDeclarationKind
uses isBindableStaticNameExpression
, but the assertion is for isBindableStaticAccessExpression
, which has some additional restrictions.
I'm trying to figure out if those restrictions are proved elsewhere in getAssignmentDeclarationKind
, but if they aren't, I should be able to use that to construct a repro.
After comparing isBindableStaticNameExpression
with isBindableStaticAccessExpression
, I think they're equivalent, or that isBindableStaticNameExpression
is a superset of isBindableStaticAccessExpression
. However, there are lots of possible exceptions since the functions are confusingly interdependent.
In the meantime, I'm going to fix the assert message to include the declaration text at fault.
I'm going to close this as "fixed to the best of our knowledge". Without a repro, there's no way of knowing it isn't caused by something else or was handled by one of the referenced PRs.
Hi,
I have Angular5 project and when I tried to upgrade it to Angular9, I found this issue when I tried to execute ng serve
after the upgrade:
WARNING: This is a simple server for use in testing or debugging Angular applications
locally. It hasn't been reviewed for security issues.
Binding this server to an open connection can result in compromising your application or
computer. Using a different host than the one passed to the "--host" flag might result in
websocket connection issues. You might need to use "--disableHostCheck" if that's the
case.
Warning: Entry point 'ng2-date-picker' contains deep imports into '/var/www/MyREDACTEDProject/node_modules/moment/moment'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
Compiling @angular/animations : module as esm5
Compiling @angular/core : module as esm5
Compiling @angular/animations/browser : module as esm5
Compiling @angular/animations/browser/testing : module as esm5
Compiling @angular/common : module as esm5
Compiling @angular/common/http : module as esm5
Compiling @angular/common/http/testing : module as esm5
Compiling @angular/core/testing : module as esm5
Compiling @angular/platform-browser : module as esm5
Compiling @angular/platform-browser-dynamic : module as esm5
Compiling @angular/platform-browser/testing : module as esm5
Compiling @angular/compiler/testing : module as esm5
Compiling @angular/platform-browser-dynamic/testing : module as esm5
Compiling @angular/platform-browser/animations : module as esm5
Compiling @angular/platform-server : module as esm5
Compiling @angular/platform-server/testing : module as esm5
Compiling @angular/common/testing : module as esm5
Compiling @angular/router : module as esm5
Compiling @angular/router/testing : module as esm5
Compiling @auth0/angular-jwt : module as esm5
Compiling @fortawesome/angular-fontawesome : module as esm5
Compiling @fortawesome/angular-fontawesome/testing : module as esm5
Compiling @handsontable/angular : module as esm5
Compiling @angular/forms : module as esm5
Compiling @ng-bootstrap/ng-bootstrap : module as esm5
Compiling @nguniversal/common : module as esm5
Compiling @nguniversal/common/engine : module as esm5
Compiling @nguniversal/common/tokens : module as esm5
Compiling @nguniversal/express-engine/tokens : module as esm5
Compiling @nguniversal/express-engine : module as esm5
Compiling angular-recaptcha3 : module as esm5
Error: Debug Failure. Invalid cast. The supplied value [object Object] did not pass the test 'isBindableStaticAccessExpression'.
at Object.cast (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:1488:25)
at bindSpecialPropertyAssignment (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:31602:53)
at bindWorker (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:31166:29)
at bind (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:31045:13)
at bindExpressionStatement (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:30249:13)
at bindChildrenWorker (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:29711:21)
at bindChildren (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:29632:17)
at bind (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:31056:21)
at /var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:29638:94
at bindEach (/var/www/MyREDACTEDProject/node_modules/typescript/lib/typescript.js:29654:21)
An unhandled exception occurred: NGCC failed.
See "/tmp/ng-nefAL3/angular-errors.log" for further details.
And it was annoying since I wasn't able to make it disappear with Typescript 3.9 nor with Typescript 3.83 and since I'm sure the project was working fine with an older version of Typescript, I tried to downgrade the version of Typescript between 3.6 and 3.9 as recommended and this issue was fixed when I downgraded Typescript from 3.8 to 3.6. But I tried to test if the version 3.7 (3.7.5) will also keep doing the job or not and I found that it did very well
This is the output of npm outdated --allow-dirty
after I fixed the issue:
Package Current Wanted Latest Location
@angular-devkit/build-angular 0.901.9 0.901.10 0.1000.1 angular-latest
@angular/animations 9.1.11 9.1.11 10.0.2 angular-latest
@angular/cli 9.1.9 9.1.10 10.0.1 angular-latest
@angular/common 9.1.11 9.1.11 10.0.2 angular-latest
@angular/compiler 9.1.11 9.1.11 10.0.2 angular-latest
@angular/compiler-cli 9.1.11 9.1.11 10.0.2 angular-latest
@angular/core 9.1.11 9.1.11 10.0.2 angular-latest
@angular/forms 9.1.11 9.1.11 10.0.2 angular-latest
@angular/language-service 7.2.16 7.2.16 10.0.2 angular-latest
@angular/localize 9.1.11 9.1.11 10.0.2 angular-latest
@angular/platform-browser 9.1.11 9.1.11 10.0.2 angular-latest
@angular/platform-browser-dynamic 9.1.11 9.1.11 10.0.2 angular-latest
@angular/platform-server 9.1.11 9.1.11 10.0.2 angular-latest
@angular/router 9.1.11 9.1.11 10.0.2 angular-latest
@auth0/angular-jwt 2.1.2 2.1.2 4.2.0 angular-latest
@nguniversal/express-engine 9.1.1 9.1.1 10.0.1 angular-latest
@sentry/browser 5.18.1 5.19.0 5.19.0 angular-latest
@types/node 10.17.26 10.17.26 14.0.14 angular-latest
@yaireo/tagify 2.31.6 2.31.6 3.13.0 angular-latest
angular-recaptcha3 0.2.0-beta 0.2.0-beta 0.1.2 angular-latest
core-js 2.6.11 2.6.11 3.6.5 angular-latest
jasmine-spec-reporter 4.2.1 4.2.1 5.0.2 angular-latest
karma-chrome-launcher 2.2.0 2.2.0 3.1.0 angular-latest
karma-coverage-istanbul-reporter 2.1.1 2.1.1 3.0.3 angular-latest
karma-jasmine 2.0.1 2.0.1 3.3.1 angular-latest
ng-dynamic-component 6.1.0 6.1.0 7.0.1 angular-latest
ngx-loading 3.0.1 3.0.1 8.0.0 angular-latest
rxjs 6.5.5 6.6.0 6.6.0 angular-latest
rxjs-compat 6.5.5 6.6.0 6.6.0 angular-latest
ts-node 7.0.1 7.0.1 8.10.2 angular-latest
tslib 1.13.0 1.13.0 2.0.0 angular-latest
tslint 5.20.1 5.20.1 6.1.2 angular-latest
typescript 3.7.5 3.9.6 3.9.6 angular-latest
npm -v
6.14.5
ng v
...
Angular CLI: 9.1.9
Node: 10.16.0
OS: linux x64
...
Now when I tried to deploy again the project in a new folder, I get surprised with this issue again after executing ng serve
. And then, I figured out maybe that this issue was fixed after downgrading Typescript to the version 3.6 directly and not with the version 3.7
So I wanted to check if this is correct by executing:
npm install typescript@3.6
ng serve
And the error was gone
This is the output of the new npm outdated --allow-dirty
:
Package Current Wanted Latest Location
@angular-devkit/build-angular 0.901.9 0.901.10 0.1000.1 angular-latest
@angular/animations 9.1.11 9.1.11 10.0.2 angular-latest
@angular/cli 9.1.9 9.1.10 10.0.1 angular-latest
@angular/common 9.1.11 9.1.11 10.0.2 angular-latest
@angular/compiler 9.1.11 9.1.11 10.0.2 angular-latest
@angular/compiler-cli 9.1.11 9.1.11 10.0.2 angular-latest
@angular/core 9.1.11 9.1.11 10.0.2 angular-latest
@angular/forms 9.1.11 9.1.11 10.0.2 angular-latest
@angular/language-service 7.2.16 7.2.16 10.0.2 angular-latest
@angular/localize 9.1.11 9.1.11 10.0.2 angular-latest
@angular/platform-browser 9.1.11 9.1.11 10.0.2 angular-latest
@angular/platform-browser-dynamic 9.1.11 9.1.11 10.0.2 angular-latest
@angular/platform-server 9.1.11 9.1.11 10.0.2 angular-latest
@angular/router 9.1.11 9.1.11 10.0.2 angular-latest
@auth0/angular-jwt 2.1.2 2.1.2 4.2.0 angular-latest
@nguniversal/express-engine 9.1.1 9.1.1 10.0.1 angular-latest
@sentry/browser 5.18.1 5.19.0 5.19.0 angular-latest
@types/node 10.17.26 10.17.26 14.0.14 angular-latest
@yaireo/tagify 2.31.6 2.31.6 3.13.0 angular-latest
angular-recaptcha3 0.2.0-beta 0.2.0-beta 0.1.2 angular-latest
core-js 2.6.11 2.6.11 3.6.5 angular-latest
jasmine-spec-reporter 4.2.1 4.2.1 5.0.2 angular-latest
karma-chrome-launcher 2.2.0 2.2.0 3.1.0 angular-latest
karma-coverage-istanbul-reporter 2.1.1 2.1.1 3.0.3 angular-latest
karma-jasmine 2.0.1 2.0.1 3.3.1 angular-latest
ng-dynamic-component 6.1.0 6.1.0 7.0.1 angular-latest
ngx-loading 3.0.1 3.0.1 8.0.0 angular-latest
rxjs 6.5.5 6.6.0 6.6.0 angular-latest
rxjs-compat 6.5.5 6.6.0 6.6.0 angular-latest
ts-node 7.0.1 7.0.1 8.10.2 angular-latest
tslib 1.13.0 1.13.0 2.0.0 angular-latest
tslint 5.20.1 5.20.1 6.1.2 angular-latest
typescript 3.6.5 3.9.6 3.9.6 angular-latest
Maybe the installation of Typescript 3.6 comes with specific dependencies that fixed the issue and those dependencies were still there even after upgrading Typescript to 3.7. I can't figure out what are these dependencies that makes this issue disappear since the only difference that we can figure out in the output of npm outdated --allow-dirty
is the Typescript version
So this is how I fixed this issue and I wanted to share this with you.
I hope this could be helpful
Do you get the exact same stack trace in 3.9.6? @sandersn did some work to improve the message.
Issue Type: Bug
TypeScript Version: 3.8.3 Steps to reproduce crash 1. 2. 3. TS Server Error Stack
VS Code version: Code 1.43.2 (0ba0ca52957102ca3527cf479571617f0de6ed50, 2020-03-24T07:38:38.248Z) OS version: Windows_NT x64 10.0.18363
System Info
|Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz (4 x 3592)| |GPU Status|2d_canvas: enabledflash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: disabled_off
protected_video_decode: unavailable_off
rasterization: enabled
skia_renderer: disabled_off_ok
video_decode: enabled
viz_display_compositor: enabled_on
viz_hit_test_surface_layer: disabled_off_ok
webgl: enabled
webgl2: enabled| |Load (avg)|undefined| |Memory (System)|11.92GB (6.30GB free)| |Process Argv|E:\Projects\dianping\pkg\_1112452836_161.wxapkg_dir\app-service.js| |Screen Reader|no| |VM|0%|
Extensions (26)
Extension|Author (truncated)|Version ---|---|--- markdown-preview-github-styles|bie|0.1.6 smali|cra|1.0.1 arm|dan|1.2.0 xml|Dot|2.5.0 vscode-great-icons|emm|2.1.47 shell-format|fox|7.0.1 beautify|Hoo|1.5.0 markdown-extended|jeb|1.0.16 csharpfixformat|Leo|0.0.84 expand-region|let|0.1.4 markdown-formatter|mer|0.7.9 xml-format|mik|1.0.2 vscode-language-pack-zh-hans|MS-|1.44.0 csharp|ms-|1.21.15 python|ms-|2020.3.69010 cpptools|ms-|0.26.3 syncing|non|3.0.13 java|red|0.58.0 vscode-xml|red|0.11.0 vscodeintellicode|Vis|1.2.6 vscode-java-debug|vsc|0.25.1 vscode-java-dependency|vsc|0.9.0 vscode-java-pack|vsc|0.8.1 vscode-java-test|vsc|0.22.2 vscode-maven|vsc|0.21.2 clang-format|xav|1.9.0 (2 theme extensions excluded)