DescriptionIntroduce isAbstractlyInstantiated to avoid exact masks of abstract classes.
Classes can be instantiated directly, abstractly or indirectly:
When [cls] is directly instantiated: This means that at runtime instances of exactly [cls] are assumed to exist.
When [cls] is abstractly instantiated: This means that at runtime instances of [cls] or unknown subclasses of [cls] are assumed to exist.
This is used to mark native and/or reflectable classes as instantiated. For native classes we do not know the exact class that instantiates [cls] so [cls] here represents the root of the subclasses. For reflectable classes we need event abstract classes to be 'live' even though they cannot themselves be instantiated.
When [cls] is indirectly instantiated: This means that a subclass of [cls] is directly or abstractly instantiated.
R=sigmund@google.com
Committed: https://github.com/dart-lang/sdk/commit/b0ecbef3cc976c5b60eafa807a1d9a626658f9b1
Patch Set 1 #Patch Set 2 : Cleanup. #Patch Set 3 : Cleanup #2 #
Total comments: 8
Patch Set 4 : Updated cf. comments. #
Messages
Total messages: 7 (3 generated)
|