mirror of
https://github.com/github/codeql.git
synced 2026-04-27 17:55:19 +02:00
Slightly modified version of Henning's suggestion
This commit is contained in:
@@ -511,8 +511,7 @@ For example, the following construction is legal::
|
||||
}
|
||||
|
||||
However, a similar implementation that restricts ``InitialValueSource`` in a class extension is not valid.
|
||||
The class ``DefiniteInitialization`` triggers a type test for ``InitialValueSource``, which results in an illegal recursion
|
||||
``DefiniteInitialization -> InitialValueSource -> UnknownInitialGarbage -> ¬DefiniteInitialization`` since ``UnknownInitialGarbage`` relies on ``DefiniteInitialization``::
|
||||
If we had implemented ``DefiniteInitialization`` as a class extension instead, it would trigger a type test for ``InitialValueSource``. This results in an illegal recursion ``DefiniteInitialization -> InitialValueSource -> UnknownInitialGarbage -> ¬DefiniteInitialization`` since ``UnknownInitialGarbage`` relies on ``DefiniteInitialization``::
|
||||
|
||||
class DefiniteInitialization extends InitialValueSource {
|
||||
DefiniteInitialization() {
|
||||
|
||||
Reference in New Issue
Block a user