dart-sdk/pkg/compiler
Johnni Winther b0ecbef3cc Introduce 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

Review URL: https://codereview.chromium.org/2443953002 .
2016-10-28 08:45:57 +02:00
..
bin Handle parts as input in resolver. 2016-08-31 11:04:40 +02:00
lib Introduce isAbstractlyInstantiated to avoid exact masks of abstract classes. 2016-10-28 08:45:57 +02:00
tool Add kernel generation to the compiler/perf script 2016-10-21 10:02:13 -07:00
pubspec.yaml roll dart2js_info to 0.3.0 2016-09-30 16:02:55 -07:00