Use native private members in rush-lib - #5939
Open
Bharat Middha (bmiddha) wants to merge 4 commits into
Open
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8ebd5bf2-c44b-42d5-be25-e7936d4b0a14
Convert TypeScript-only private methods, getters, and setters in libraries/rush-lib to ECMAScript # private syntax, matching the private field migration already on this branch. Preserved as TypeScript-only private (not converted) because tests rely on reflection-style access that true private members do not support: - OperationBuildCache#tryCollectPathsToCacheAsync (accessed via bracket-notation string literal in tests) - RushPnpmCommandLineParser (entire class): its test suite constructs partial instances via Object.create(prototype) and assigns/reads members directly, which is incompatible with real private fields - Telemetry#flushAsyncTasks (accessed through an Omit<> interface cast in tests) - RushCommandLineParser#reportErrorAndSetExitCode (monkey-patched onto the prototype by test mocks to prevent process.exit) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8ebd5bf2-c44b-42d5-be25-e7936d4b0a14
The decoupled ESLint plugin does not recognize native private methods, causing no-new-null to report a false positive. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8ebd5bf2-c44b-42d5-be25-e7936d4b0a14
…rivate' into bmiddha/native-private-fields-rush-lib
Bharat Middha (bmiddha)
changed the base branch from
main
to
bmiddha/fix-no-new-null-native-private
August 20, 2026 06:05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@microsoft/rush-libto ECMAScript#privatemembersValidation
rush build --to @microsoft/rush-lib --verboseheft test --clean(741 tests)Dependency
Stacked on #5947, which fixes
@rushstack/no-new-nullhandling for ECMAScript private members. Narrow suppressions remain because these packages consume the released decoupled plugin; they can be removed after the patched plugin is published and adopted.