Make CoreType test friendly

The classes Future and Stream are exported by dart:core.
By attempting to look up FutureOr in dart:core before dart:async,
we support simple a simple test scenario where there's only one
platform library.

Change-Id: I76627f89957b91fbdb52a7772c177a769c37cecb
Reviewed-on: https://dart-review.googlesource.com/c/90381
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
This commit is contained in:
Peter von der Ahé 2019-01-29 13:29:32 +00:00 committed by commit-bot@chromium.org
parent d025ff5367
commit f822d0abb8
3 changed files with 12 additions and 3 deletions

View file

@ -1114,6 +1114,8 @@ const String defaultDartCoreSource = """
import 'dart:_internal';
import 'dart:async';
export 'dart:async' show Future, Stream;
print(object) {}
class Iterator {}

View file

@ -204,11 +204,12 @@ class CoreTypes {
}
Class get futureClass {
return _futureClass ??= index.getClass('dart:async', 'Future');
return _futureClass ??= index.getClass('dart:core', 'Future');
}
Class get futureOrClass {
return _futureOrClass ??= index.getClass('dart:async', 'FutureOr');
return _futureOrClass ??= (index.tryGetClass('dart:core', 'FutureOr') ??
index.getClass('dart:async', 'FutureOr'));
}
Procedure get identicalProcedure {
@ -316,7 +317,7 @@ class CoreTypes {
}
Class get streamClass {
return _streamClass ??= index.getClass('dart:async', 'Stream');
return _streamClass ??= index.getClass('dart:core', 'Stream');
}
Member get streamIteratorSubscription {

View file

@ -141,6 +141,12 @@ class _ClassTable {
for (var class_ in library.classes) {
_classes[class_.name] = new _MemberTable(this, class_);
}
for (Reference reference in library.additionalExports) {
NamedNode node = reference.node;
if (node is Class) {
_classes[node.name] = new _MemberTable(this, node);
}
}
}
return _classes;
}