Closed MarkMcCulloh closed 2 weeks ago
Thanks for opening this pull request! :tada: Please consult the contributing guidelines for details on how to contribute to this project. If you need any assistence, don't hesitate to ping the relevant owner over Slack.
Topic | Owner |
---|---|
Wing SDK and utility APIs | @chriscbr |
Wing Console | @ainvoner , @skyrpex , @polamoros |
JSON, structs, primitives and collections | @hasanaburayyan |
Platforms and plugins | @hasanaburayyan |
Frontend resources (website, react, etc) | @tsuf239 |
Language design | @chriscbr |
VSCode extension and language server | @markmcculloh |
Compiler architecture, inflights, lifting | @yoav-steinberg |
Wing Testing Framework | @tsuf239 |
Wing CLI | @markmcculloh |
Build system, dev environment, releases | @markmcculloh |
Library Ecosystem | @chriscbr |
Documentation | @hasanaburayyan |
SDK test suite | @tsuf239 |
Examples | @hasanaburayyan |
Wing Playground | @eladcon |
Console preview environment is available at https://wing-console-pr-6362.fly.dev :rocket:
Thanks for contributing, @MarkMcCulloh! This PR will now be added to the merge queue, or immediately merged if mark/jsii-fix-type-on-class
is up-to-date with main
and the queue is empty.
Congrats! :rocket: This was released in Wing 0.73.9.
Fixes #6285 Fixes #5507
JSII allows types to be defined in classes (kinda, moreso that a class can also be a namespace), i.e
assembly.class.interface
. Wing does not support defining or directly referencing types like this. Previously, the JSII importer would not import these types and also would fail to import any types that come after these types in a given namespace. Some JSII libs, like aws-cdk-lib, make extensive use of these so a lot of types were not available.Now, the JSII importer supports importing these types and other JSII types that reference them. Wing still cannot directly reference them in type annotations, but there are cases where it is used and type checked (e.g. implicit structs).
In addition, language server completion requests do a better job of eagerly importing JSII types that aren't referenced in the rest of the file
Before
After
Misc:
.split()
callsloaded
from namespace struct. It was causing issues because it's not a "deep" flag. After some work in this PR is seemed to no longer be useful. If the benchmarks are bad here I'll look into seeing if it needs to be reintroduced