Follow-up found while reviewing #539 / #543.
Problem
OXC's extract_host_bindings_in / extract_host_listeners_in (crates/oxc_angular_compiler/src/directive/property_decorators.rs, ~lines 1558-1650) collect @HostBinding/@HostListener members without checking member.isStatic or EcmaScriptPrivate access. ngtsc's filterToMembersWithDecorator (packages/compiler-cli/src/ngtsc/reflection/src/typescript.ts:621) excludes static members, so @HostBinding() static x / @HostListener('c') static m() are ignored upstream but produce host: { properties: { x: 'x' } } bindings in OXC.
Expected
Skip r#static and PropertyKey::PrivateIdentifier members when collecting host bindings/listeners, matching the upstream filter.
References
- Upstream:
packages/compiler-cli/src/ngtsc/reflection/src/typescript.ts (filterToMembersWithDecorator, !member.isStatic)
- OXC:
crates/oxc_angular_compiler/src/directive/property_decorators.rs (extract_host_bindings_in, extract_host_listeners_in)
Follow-up found while reviewing #539 / #543.
Problem
OXC's
extract_host_bindings_in/extract_host_listeners_in(crates/oxc_angular_compiler/src/directive/property_decorators.rs, ~lines 1558-1650) collect@HostBinding/@HostListenermembers without checkingmember.isStaticorEcmaScriptPrivateaccess. ngtsc'sfilterToMembersWithDecorator(packages/compiler-cli/src/ngtsc/reflection/src/typescript.ts:621) excludes static members, so@HostBinding() static x/@HostListener('c') static m()are ignored upstream but producehost: { properties: { x: 'x' } }bindings in OXC.Expected
Skip
r#staticandPropertyKey::PrivateIdentifiermembers when collecting host bindings/listeners, matching the upstream filter.References
packages/compiler-cli/src/ngtsc/reflection/src/typescript.ts(filterToMembersWithDecorator,!member.isStatic)crates/oxc_angular_compiler/src/directive/property_decorators.rs(extract_host_bindings_in,extract_host_listeners_in)