mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 00:09:49 +00:00
Test code for CFE expression compilation.
Change-Id: I90f953592d66be04bfb26ffb5f604ba5e7f010a5 Reviewed-on: https://dart-review.googlesource.com/51322 Commit-Queue: Samir Jindel <sjindel@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
This commit is contained in:
parent
001af89c8e
commit
69f35c18bc
380
pkg/front_end/test/fasta/expression_test.dart
Normal file
380
pkg/front_end/test/fasta/expression_test.dart
Normal file
|
@ -0,0 +1,380 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE.md file.
|
||||
|
||||
library fasta.test.incremental_test;
|
||||
|
||||
import "dart:async" show Future;
|
||||
|
||||
import "dart:convert" show JsonEncoder;
|
||||
|
||||
import "dart:io" show File, IOSink;
|
||||
|
||||
import "package:kernel/ast.dart"
|
||||
show
|
||||
Procedure,
|
||||
Component,
|
||||
CanonicalName,
|
||||
DynamicType,
|
||||
DartType,
|
||||
TypeParameter;
|
||||
|
||||
import "package:testing/testing.dart"
|
||||
show Chain, ChainContext, Result, Step, TestDescription, runMe;
|
||||
|
||||
import "package:yaml/yaml.dart" show YamlMap, YamlList, loadYamlNode;
|
||||
|
||||
import "package:front_end/src/api_prototype/front_end.dart"
|
||||
show CompilationMessage, CompilerOptions;
|
||||
|
||||
import "package:front_end/src/api_prototype/memory_file_system.dart"
|
||||
show MemoryFileSystem;
|
||||
|
||||
import 'package:front_end/src/compute_platform_binaries_location.dart'
|
||||
show computePlatformBinariesLocation;
|
||||
|
||||
import 'package:front_end/src/external_state_snapshot.dart'
|
||||
show ExternalStateSnapshot;
|
||||
|
||||
import 'package:front_end/src/base/processed_options.dart'
|
||||
show ProcessedOptions;
|
||||
|
||||
import 'package:front_end/src/fasta/compiler_context.dart' show CompilerContext;
|
||||
|
||||
import 'package:front_end/src/fasta/incremental_compiler.dart'
|
||||
show IncrementalCompiler;
|
||||
|
||||
import 'package:kernel/text/ast_to_text.dart' show Printer;
|
||||
|
||||
import '../../lib/src/fasta/testing/kernel_chain.dart' show runDiff, openWrite;
|
||||
|
||||
import '../../lib/src/fasta/kernel/utils.dart' show writeComponentToFile;
|
||||
|
||||
const JsonEncoder json = const JsonEncoder.withIndent(" ");
|
||||
|
||||
class Context extends ChainContext {
|
||||
final CompilerContext compilerContext;
|
||||
final ExternalStateSnapshot snapshot;
|
||||
final List<CompilationMessage> errors;
|
||||
|
||||
final List<Step> steps;
|
||||
|
||||
Context(
|
||||
this.compilerContext, this.snapshot, this.errors, bool updateExpectations)
|
||||
: steps = <Step>[
|
||||
const ReadTest(),
|
||||
const CompileExpression(),
|
||||
new MatchProcedureExpectations(".expect",
|
||||
updateExpectations: updateExpectations)
|
||||
];
|
||||
|
||||
ProcessedOptions get options => compilerContext.options;
|
||||
|
||||
MemoryFileSystem get fileSystem => options.fileSystem;
|
||||
|
||||
T runInContext<T>(T action(CompilerContext c)) {
|
||||
return compilerContext.runInContext<T>(action);
|
||||
}
|
||||
|
||||
void reset() {
|
||||
errors.clear();
|
||||
snapshot.restore();
|
||||
}
|
||||
|
||||
List<CompilationMessage> takeErrors() {
|
||||
List<CompilationMessage> result = new List<CompilationMessage>.from(errors);
|
||||
errors.clear();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
class CompilationResult {
|
||||
Procedure compiledProcedure;
|
||||
List<CompilationMessage> errors;
|
||||
CompilationResult(this.compiledProcedure, this.errors);
|
||||
|
||||
String printResult(Uri entryPoint, Context context) {
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
buffer.write("Errors: {\n");
|
||||
for (var error in errors) {
|
||||
buffer.write(" ");
|
||||
buffer.write("${error.message} (@${error.span.start.offset})");
|
||||
buffer.write("\n");
|
||||
}
|
||||
buffer.write("}\n");
|
||||
if (compiledProcedure == null) {
|
||||
buffer.write("<no procedure>");
|
||||
} else {
|
||||
new Printer(buffer).visitProcedure(compiledProcedure);
|
||||
}
|
||||
Uri base = entryPoint.resolve(".");
|
||||
return "$buffer".replaceAll("$base", "org-dartlang-testcase:///");
|
||||
}
|
||||
}
|
||||
|
||||
class TestCase {
|
||||
final TestDescription description;
|
||||
|
||||
final Uri entryPoint;
|
||||
|
||||
final List<String> definitions;
|
||||
|
||||
final List<String> typeDefinitions;
|
||||
|
||||
final bool isStaticMethod;
|
||||
|
||||
final CanonicalName enclosingNode;
|
||||
|
||||
String expression;
|
||||
|
||||
List<CompilationResult> results = [];
|
||||
|
||||
TestCase(
|
||||
this.description,
|
||||
this.entryPoint,
|
||||
this.definitions,
|
||||
this.typeDefinitions,
|
||||
this.isStaticMethod,
|
||||
this.enclosingNode,
|
||||
this.expression);
|
||||
|
||||
String toString() {
|
||||
return "TestCase("
|
||||
"$entryPoint, "
|
||||
"$definitions, "
|
||||
"$typeDefinitions,"
|
||||
"$enclosingNode, "
|
||||
"static = $isStaticMethod)";
|
||||
}
|
||||
|
||||
String validate() {
|
||||
print(this);
|
||||
if (entryPoint == null) {
|
||||
return "No entryPoint.";
|
||||
}
|
||||
if (!(new File.fromUri(entryPoint)).existsSync()) {
|
||||
return "Entry point $entryPoint doesn't exist.";
|
||||
}
|
||||
if (enclosingNode == null || enclosingNode == "") {
|
||||
return "No enclosing node.";
|
||||
}
|
||||
if (expression == null) {
|
||||
return "No expression to compile.";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
class MatchProcedureExpectations extends Step<List<TestCase>, Null, Context> {
|
||||
final String suffix;
|
||||
final bool updateExpectations;
|
||||
|
||||
const MatchProcedureExpectations(this.suffix,
|
||||
{this.updateExpectations: false});
|
||||
|
||||
String get name => "match expectations";
|
||||
|
||||
Future<Result<Null>> run(List<TestCase> tests, Context context) async {
|
||||
String actual = "";
|
||||
for (var test in tests) {
|
||||
var primary = test.results.first.printResult(test.entryPoint, context);
|
||||
actual += primary;
|
||||
for (int i = 1; i < test.results.length; ++i) {
|
||||
var secondary = test.results[i].printResult(test.entryPoint, context);
|
||||
if (primary != secondary) {
|
||||
return fail(
|
||||
null,
|
||||
"Multiple expectations don't match on $test:" +
|
||||
"\nFirst expectation:\n$actual\n" +
|
||||
"\nSecond expectation:\n$secondary\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
var test = tests.first;
|
||||
Uri testUri = test.description.uri;
|
||||
File expectedFile = new File("${testUri.toFilePath()}$suffix");
|
||||
if (await expectedFile.exists()) {
|
||||
String expected = await expectedFile.readAsString();
|
||||
if (expected.trim() != actual.trim()) {
|
||||
if (!updateExpectations) {
|
||||
String diff = await runDiff(expectedFile.uri, actual);
|
||||
return fail(
|
||||
null, "$testUri doesn't match ${expectedFile.uri}\n$diff");
|
||||
}
|
||||
} else {
|
||||
return pass(null);
|
||||
}
|
||||
}
|
||||
if (updateExpectations) {
|
||||
await openWrite(expectedFile.uri, (IOSink sink) {
|
||||
sink.writeln(actual.trim());
|
||||
});
|
||||
return pass(null);
|
||||
} else {
|
||||
return fail(null, """
|
||||
Please create file ${expectedFile.path} with this content:
|
||||
$actual""");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class ReadTest extends Step<TestDescription, List<TestCase>, Context> {
|
||||
const ReadTest();
|
||||
|
||||
String get name => "read test";
|
||||
|
||||
Future<Result<List<TestCase>>> run(
|
||||
TestDescription description, Context context) async {
|
||||
context.reset();
|
||||
Uri uri = description.uri;
|
||||
String contents = await new File.fromUri(uri).readAsString();
|
||||
|
||||
Uri entryPoint;
|
||||
List<String> definitions = <String>[];
|
||||
List<String> typeDefinitions = <String>[];
|
||||
bool isStaticMethod = false;
|
||||
CanonicalName enclosingNode;
|
||||
String expression;
|
||||
|
||||
dynamic maps = loadYamlNode(contents, sourceUrl: uri);
|
||||
if (maps is YamlMap) maps = [maps];
|
||||
|
||||
final List<TestCase> tests = [];
|
||||
for (YamlMap map in maps) {
|
||||
for (var _key in map.keys) {
|
||||
String key = _key;
|
||||
var value = map[key];
|
||||
|
||||
if (key == "entry_point") {
|
||||
entryPoint = description.uri.resolveUri(Uri.parse(value as String));
|
||||
} else if (key == "position") {
|
||||
Uri positionUri =
|
||||
description.uri.resolveUri(Uri.parse(value as String));
|
||||
enclosingNode = new CanonicalName.root();
|
||||
enclosingNode =
|
||||
enclosingNode.getChild("${positionUri.removeFragment()}");
|
||||
if (positionUri.fragment != null && positionUri.fragment != '') {
|
||||
enclosingNode = enclosingNode.getChild(positionUri.fragment);
|
||||
}
|
||||
} else if (key == "definitions") {
|
||||
definitions = (value as YamlList).map((x) => x as String).toList();
|
||||
} else if (key == "type_definitions") {
|
||||
typeDefinitions =
|
||||
(value as YamlList).map((x) => x as String).toList();
|
||||
} else if (key == "static") {
|
||||
isStaticMethod = value;
|
||||
} else if (key == "expression") {
|
||||
expression = value;
|
||||
}
|
||||
}
|
||||
var test = new TestCase(description, entryPoint, definitions,
|
||||
typeDefinitions, isStaticMethod, enclosingNode, expression);
|
||||
var result = test.validate();
|
||||
if (result != null) {
|
||||
return new Result.fail(tests, result);
|
||||
}
|
||||
tests.add(test);
|
||||
}
|
||||
return new Result.pass(tests);
|
||||
}
|
||||
}
|
||||
|
||||
class CompileExpression extends Step<List<TestCase>, List<TestCase>, Context> {
|
||||
const CompileExpression();
|
||||
|
||||
String get name => "compile expression";
|
||||
|
||||
Future<Result<List<TestCase>>> run(
|
||||
List<TestCase> tests, Context context) async {
|
||||
for (var test in tests) {
|
||||
context.fileSystem.entityForUri(test.entryPoint).writeAsBytesSync(
|
||||
await new File.fromUri(test.entryPoint).readAsBytes());
|
||||
|
||||
var sourceCompiler = new IncrementalCompiler(context.compilerContext);
|
||||
Component component =
|
||||
await sourceCompiler.computeDelta(entryPoint: test.entryPoint);
|
||||
var errors = context.takeErrors();
|
||||
if (!errors.isEmpty) {
|
||||
return fail(tests, "Couldn't compile entry-point: $errors");
|
||||
}
|
||||
Uri dillFileUri = new Uri(
|
||||
scheme: test.entryPoint.scheme, path: test.entryPoint.path + ".dill");
|
||||
File dillFile = new File.fromUri(dillFileUri);
|
||||
if (!await dillFile.exists()) {
|
||||
await writeComponentToFile(component, dillFileUri);
|
||||
}
|
||||
|
||||
var dillCompiler =
|
||||
new IncrementalCompiler(context.compilerContext, dillFileUri);
|
||||
await dillCompiler.computeDelta(entryPoint: test.entryPoint);
|
||||
await dillFile.delete();
|
||||
|
||||
errors = context.takeErrors();
|
||||
|
||||
// Since it compiled successfully from source, the bootstrap-from-Dill
|
||||
// should also succeed without errors.
|
||||
assert(errors.isEmpty);
|
||||
|
||||
Map<String, DartType> definitions = {};
|
||||
for (String name in test.definitions) {
|
||||
definitions[name] = new DynamicType();
|
||||
}
|
||||
List<TypeParameter> typeParams = [];
|
||||
for (String name in test.typeDefinitions) {
|
||||
typeParams.add(new TypeParameter(name, new DynamicType()));
|
||||
}
|
||||
|
||||
for (var compiler in [sourceCompiler, dillCompiler]) {
|
||||
// TODO: actually run the compiler
|
||||
test.results
|
||||
.add(new CompilationResult(compiler == null ? null : null, []));
|
||||
}
|
||||
}
|
||||
return new Result.pass(tests);
|
||||
}
|
||||
}
|
||||
|
||||
Future<Context> createContext(
|
||||
Chain suite, Map<String, String> environment) async {
|
||||
final Uri base = Uri.parse("org-dartlang-test:///");
|
||||
|
||||
/// Unused because we supply entry points to [computeDelta] directly above.
|
||||
final Uri entryPoint = base.resolve("nothing.dart");
|
||||
|
||||
/// The custom URI used to locate the dill file in the MemoryFileSystem.
|
||||
final Uri sdkSummary = base.resolve("vm_platform.dill");
|
||||
|
||||
/// The actual location of the dill file.
|
||||
final Uri sdkSummaryFile =
|
||||
computePlatformBinariesLocation().resolve("vm_platform.dill");
|
||||
|
||||
final MemoryFileSystem fs = new MemoryFileSystem(base);
|
||||
|
||||
fs
|
||||
.entityForUri(sdkSummary)
|
||||
.writeAsBytesSync(await new File.fromUri(sdkSummaryFile).readAsBytes());
|
||||
|
||||
final List<CompilationMessage> errors = <CompilationMessage>[];
|
||||
|
||||
final CompilerOptions optionBuilder = new CompilerOptions()
|
||||
..strongMode = false
|
||||
..reportMessages = true
|
||||
..verbose = true
|
||||
..fileSystem = fs
|
||||
..sdkSummary = sdkSummary
|
||||
..onError = (CompilationMessage message) {
|
||||
errors.add(message);
|
||||
};
|
||||
|
||||
final ProcessedOptions options =
|
||||
new ProcessedOptions(optionBuilder, false, [entryPoint]);
|
||||
|
||||
final ExternalStateSnapshot snapshot =
|
||||
new ExternalStateSnapshot(await options.loadSdkSummary(null));
|
||||
|
||||
return new Context(new CompilerContext(options), snapshot, errors,
|
||||
new String.fromEnvironment("updateExpectations") == "true");
|
||||
}
|
||||
|
||||
main([List<String> arguments = const []]) =>
|
||||
runMe(arguments, createContext, "../../testing.json");
|
|
@ -2,51 +2,46 @@
|
|||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
class_capture.expression: Crash
|
||||
class_getter.expression: Crash
|
||||
class_invalid_static.expression: Crash
|
||||
class_invalid_static_capture.expression: Crash
|
||||
class_invalid_static_getter.expression: Crash
|
||||
class_invalid_static_setter.expression: Crash
|
||||
class_method.expression: Crash
|
||||
class_setter.expression: Crash
|
||||
class_static.expression: Crash
|
||||
class_static2.expression: Crash
|
||||
class_static3.expression: Crash
|
||||
class_type_param_bound.expression: Crash
|
||||
class_type_param_bound_illegal.expression: Crash
|
||||
class_type_param_reference.expression: Crash
|
||||
class_type_param_reference_arg.expression: Crash
|
||||
class_type_param_reference_arg_inferred.expression: Crash
|
||||
class_type_param_reference_ctor.expression: Crash
|
||||
class_type_param_reference_ctor_inferred.expression: Crash
|
||||
class_type_param_reference_var.expression: Crash
|
||||
core_lib_imported.expression: Crash
|
||||
core_lib_internal.expression: Crash
|
||||
eval.dart: Crash
|
||||
invalid.expression: Crash
|
||||
invalid_type_variable.expression: Crash
|
||||
invalid_variable.expression: Crash
|
||||
lib_ctor.expression: Crash
|
||||
lib_external_ctor.expression: Crash
|
||||
lib_nonctor.expression: Crash
|
||||
lib_nonreference.expression: Crash
|
||||
lib_nonshown_ctor.expression: Crash
|
||||
lib_reference.expression: Crash
|
||||
lib_simple.expression: Crash
|
||||
missing_variable_types.expression: Crash
|
||||
noclass.expression: Crash
|
||||
nolib.expression: Crash
|
||||
param_assign.expression: Crash
|
||||
param_capture.expression: Crash
|
||||
param_conflict.expression: Crash
|
||||
param_conflict_class.expression: Crash
|
||||
param_method.expression: Crash
|
||||
type_param_bound.expression: Crash
|
||||
type_param_shadow.expression: Crash
|
||||
type_param_shadow_arg.expression: Crash
|
||||
type_param_shadow_arg_ctor_inferred.expression: Crash
|
||||
type_param_shadow_arg_inferred.expression: Crash
|
||||
type_param_shadow_ctor.expression: Crash
|
||||
type_param_shadow_var.expression: Crash
|
||||
|
||||
class_capture.expression: Fail
|
||||
class_getter.expression: Fail
|
||||
class_invalid_static.expression: Fail
|
||||
class_invalid_static_capture.expression: Fail
|
||||
class_invalid_static_getter.expression: Fail
|
||||
class_invalid_static_setter.expression: Fail
|
||||
class_method.expression: Fail
|
||||
class_setter.expression: Fail
|
||||
class_static.expression: Fail
|
||||
class_static2.expression: Fail
|
||||
class_static3.expression: Fail
|
||||
class_type_param_bound.expression: Fail
|
||||
class_type_param_bound_illegal.expression: Fail
|
||||
class_type_param_reference.expression: Fail
|
||||
class_type_param_reference_arg.expression: Fail
|
||||
class_type_param_reference_arg_inferred.expression: Fail
|
||||
class_type_param_reference_ctor.expression: Fail
|
||||
class_type_param_reference_ctor_inferred.expression: Fail
|
||||
class_type_param_reference_var.expression: Fail
|
||||
core_lib_imported.expression: Fail
|
||||
core_lib_internal.expression: Fail
|
||||
eval.dart: Fail
|
||||
invalid.expression: Fail
|
||||
lib_ctor.expression: Fail
|
||||
lib_external_ctor.expression: Fail
|
||||
lib_nonctor.expression: Fail
|
||||
lib_nonreference.expression: Fail
|
||||
lib_nonshown_ctor.expression: Fail
|
||||
lib_reference.expression: Fail
|
||||
lib_simple.expression: Fail
|
||||
missing_variable_types.expression: Fail
|
||||
param_assign.expression: Fail
|
||||
param_capture.expression: Fail
|
||||
param_conflict.expression: Fail
|
||||
param_conflict_class.expression: Fail
|
||||
param_method.expression: Fail
|
||||
type_param_bound.expression: Fail
|
||||
type_param_shadow.expression: Fail
|
||||
type_param_shadow_arg.expression: Fail
|
||||
type_param_shadow_arg_ctor_inferred.expression: Fail
|
||||
type_param_shadow_arg_inferred.expression: Fail
|
||||
type_param_shadow_ctor.expression: Fail
|
||||
type_param_shadow_var.expression: Fail
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
- entry_point: "eval.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
- entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
- entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
type_definitions: ["a#b"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["a#b"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["s"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x", "y"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x", "y"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["dostat", "y"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["A", "y"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x", "y"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
# for details. All rights reserved. Use of this source code is governed by a
|
||||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
entry_point: "main.dart"
|
||||
definitions: ["x"]
|
||||
|
|
|
@ -149,7 +149,18 @@
|
|||
"exclude": [
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "expression",
|
||||
"kind": "Chain",
|
||||
"source": "test/fasta/expression_test.dart",
|
||||
"path": "testcases/expression/",
|
||||
"status": "testcases/expression.status",
|
||||
"pattern": [
|
||||
"\\.expression\\.yaml$"
|
||||
],
|
||||
"exclude": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "incremental_load_from_dill",
|
||||
"kind": "Chain",
|
||||
|
|
Loading…
Reference in a new issue