Skip to content

fix: failure on anonymous class with a method (backport #1824) #1845

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

aws-cdk-automation
Copy link
Collaborator

Backport

This will backport the following commits from main to maintenance/v5.5:

Questions ?

Please refer to the Backport tool documentation

`jsii` used to fail when trying to generate deprecation warnings and
given a statement like this:

```ts
export function propertyInjectionDecorator<T extends Constructor>(ctr: T) {
  // Important for the bug: the anonymous class extends something, *and*
  // declares a method.
  return class extends ctr {
    public someMethod(): string {
      return 'abc';
    }
  };
}
```

The reason is that during generation of deprecation warnings we iterate
over all classes and methods (both exported and unexported), and
generate a symbol identifier for every method; but this class is
anonymous
so it doesn't have a symbol, and generating the identifier fails with
the error:

```
TypeError: Cannot read properties of undefined (reading 'flags')
    at symbolIdentifier (.../jsii/lib/common/symbol-id.js:40:17)
```

Handle this by handling the case where we don't have a symbol
and returning `undefined`.

Fixes aws/aws-cdk#33213

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the [Apache 2.0 license].

[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0

---------

Co-authored-by: Eli Polonsky <[email protected]>
(cherry picked from commit dbd4506)
@aws-cdk-automation aws-cdk-automation added this pull request to the merge queue Mar 10, 2025
Merged via the queue into maintenance/v5.5 with commit 9243a30 Mar 10, 2025
77 checks passed
@aws-cdk-automation aws-cdk-automation deleted the backport/maintenance/v5.5-pr-1824 branch March 10, 2025 09:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-approve Automatically approve this PR backport
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants