Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Unified Diff: pkg/front_end/test/src/incremental/kernel_driver_test.dart

Issue 2995773002: When using SDK outline, transplant its names into the name root. (Closed)
Patch Set: Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/test/src/incremental/kernel_driver_test.dart
diff --git a/pkg/front_end/test/src/incremental/kernel_driver_test.dart b/pkg/front_end/test/src/incremental/kernel_driver_test.dart
index 0bb7511ecdd4539f8d12ac1716cebf79d8cff431..f4de69e90973955076e8f452fa32414ce5f50d5d 100644
--- a/pkg/front_end/test/src/incremental/kernel_driver_test.dart
+++ b/pkg/front_end/test/src/incremental/kernel_driver_test.dart
@@ -8,9 +8,9 @@ import 'package:front_end/compiler_options.dart';
import 'package:front_end/memory_file_system.dart';
import 'package:front_end/src/base/performace_logger.dart';
import 'package:front_end/src/base/processed_options.dart';
+import 'package:front_end/src/byte_store/byte_store.dart';
import 'package:front_end/src/fasta/kernel/utils.dart';
import 'package:front_end/src/fasta/uri_translator_impl.dart';
-import 'package:front_end/src/byte_store/byte_store.dart';
import 'package:front_end/src/incremental/kernel_driver.dart';
import 'package:front_end/summary_generator.dart';
import 'package:kernel/ast.dart';
@@ -295,24 +295,63 @@ static field (core::String) → core::int f;
writeFile('/test/.packages', 'test:lib/');
String aPath = '/test/lib/a.dart';
+ String bPath = '/test/lib/b.dart';
Uri aUri = writeFile(aPath, r'''
+int getValue() {
+ return 1;
+}
+''');
+ Uri bUri = writeFile(bPath, r'''
import 'dart:async';
+import 'a.dart';
var a = 1;
Future<String> b;
''');
- KernelResult result = await driver.getKernel(aUri);
+ KernelResult result = await driver.getKernel(bUri);
// The result does not include SDK libraries.
_assertLibraryUris(result,
- includes: [aUri],
+ includes: [bUri],
excludes: [Uri.parse('dart:core'), Uri.parse('dart:core')]);
// The types of top-level variables are resolved.
- var library = _getLibrary(result, aUri);
+ var library = _getLibrary(result, bUri);
expect(library.fields[0].type.toString(), 'dart.core::int');
expect(library.fields[1].type.toString(),
'dart.async::Future<dart.core::String>');
+
+ {
+ // Update a.dart and recompile.
+ writeFile(aPath, r'''
+int getValue() {
+ return 2;
+}
+''');
+ driver.invalidate(aUri);
+ var kernelResult = await driver.getKernel(bUri);
+ var allLibraries = kernelResult.results
+ .map((c) => c.kernelLibraries)
+ .expand((libs) => libs)
+ .toList();
+
+ // The result does not include SDK libraries.
+ _assertLibraryUris(result,
+ includes: [bUri],
+ excludes: [Uri.parse('dart:core'), Uri.parse('dart:core')]);
+
+ // The types of top-level variables are resolved.
+ var library = _getLibrary(result, bUri);
+ expect(library.fields[0].type.toString(), 'dart.core::int');
+ expect(library.fields[1].type.toString(),
+ 'dart.async::Future<dart.core::String>');
+
+ // We should be able to serialize the libraries without SDK.
+ var program =
+ new Program(nameRoot: kernelResult.nameRoot, libraries: allLibraries);
+ serializeProgram(program,
+ filter: (library) => !library.importUri.isScheme('dart'));
+ }
}
test_limitedStore_exportDependencies() async {

Powered by Google App Engine
This is Rietveld 408576698