Dart: ignore internal warning related to visibleForTesting usage #1644
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.
----- Motivation -----
In order to allow users to mock static functions in classes the 'prototype'
approach was implemented in the past. It uses prototype class to redirect
static function calls.
A class with '$Impl' suffix is created as a prototype. It is annotated as
'visibleForTesting' and exported from the library.
The user may provide its own implementation in tests and this way redirect
the calls to the mock (after setting it as prototype).
Sadly, when a class is derived from the class, which has static methods, then
its '$Impl' derives from the '$Impl' of base class. This leads to linter warnings:
'invalid_use_of_visible_for_testing_member'.
----- Implemented solution -----
This change adds a comment, which disables linter warnings for derived '$Impl'
classes to remove the mentioned warnings from the generated code.