mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 22:01:19 +00:00
8a883fa54d
Leaves some in parser test: pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart TEST=Refactoring, covered by existing tests. Change-Id: I7a83ef95df3cbd283878b3685b5c747bd89a1b16 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256125 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com>
72 lines
2.7 KiB
Dart
72 lines
2.7 KiB
Dart
// 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.
|
|
|
|
// @dart = 2.7
|
|
|
|
import 'package:async_helper/async_helper.dart';
|
|
import 'package:compiler/src/commandline_options.dart';
|
|
import 'package:compiler/src/common/elements.dart';
|
|
import 'package:compiler/src/common/names.dart';
|
|
import 'package:compiler/src/compiler.dart';
|
|
import 'package:compiler/src/elements/entities.dart';
|
|
import 'package:compiler/src/inferrer/abstract_value_domain.dart';
|
|
import 'package:compiler/src/inferrer/typemasks/masks.dart';
|
|
import 'package:compiler/src/js_model/element_map.dart';
|
|
import 'package:compiler/src/js_model/js_world.dart';
|
|
import 'package:expect/expect.dart';
|
|
import 'package:kernel/ast.dart' as ir;
|
|
import '../helpers/memory_compiler.dart';
|
|
|
|
const String source = '''
|
|
import 'package:expect/expect.dart' deferred as expect;
|
|
|
|
main() {
|
|
callLoadLibrary();
|
|
}
|
|
|
|
callLoadLibrary() => expect.loadLibrary();
|
|
''';
|
|
|
|
main() async {
|
|
asyncTest(() async {
|
|
print('--test Dart 2 ----------------------------------------------------');
|
|
await runTest([], trust: false);
|
|
print('--test Dart 2 --omit-implicit-checks -----------------------------');
|
|
await runTest([Flags.omitImplicitChecks]);
|
|
});
|
|
}
|
|
|
|
runTest(List<String> options, {bool trust = true}) async {
|
|
CompilationResult result = await runCompiler(
|
|
memorySourceFiles: {'main.dart': source}, options: options);
|
|
Expect.isTrue(result.isSuccess);
|
|
Compiler compiler = result.compiler;
|
|
JsClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
|
|
AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;
|
|
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
|
|
LibraryEntity helperLibrary =
|
|
elementEnvironment.lookupLibrary(Uris.dart__js_helper);
|
|
FunctionEntity loadDeferredLibrary = elementEnvironment.lookupLibraryMember(
|
|
helperLibrary, 'loadDeferredLibrary');
|
|
TypeMask typeMask;
|
|
|
|
KernelToLocalsMap localsMap = compiler
|
|
.globalInference.resultsForTesting.globalLocalsMap
|
|
.getLocalsMap(loadDeferredLibrary);
|
|
MemberDefinition definition =
|
|
closedWorld.elementMap.getMemberDefinition(loadDeferredLibrary);
|
|
ir.Procedure procedure = definition.node;
|
|
typeMask = compiler.globalInference.resultsForTesting.resultOfParameter(
|
|
localsMap
|
|
.getLocalVariable(procedure.function.positionalParameters.first));
|
|
|
|
if (trust) {
|
|
Expect.equals(
|
|
abstractValueDomain.includeNull(abstractValueDomain.stringType),
|
|
typeMask);
|
|
} else {
|
|
Expect.equals(abstractValueDomain.dynamicType, typeMask);
|
|
}
|
|
}
|