Files
sdk/pkg/front_end/test/expression_compilation_tools_test.dart
T
Lasse R.H. Nielsen f8086c81ae Collect all test-related files in package:expect.
Collects files from `package:async_helper` and `tests/language`
that are generally useful, so that all test-related helpers are
in `package:expect`.

Moves the two libraries from `package:async_helper` into `package:expect`,
and the `tests/language/static_type_helper.dart` file too.

Deprecates `async_minitest.dart`, to follow `minitest.dart`,
expecting the Flutter use of it to have been fixed to not break
on deprecation (I believe Flutter no longer breaks builds on deprecations at all).

Patch 1 is the actual change.
Patch 2+4+8 is changing all existing references to the files.
Patch 6 ignores deprecation in files still using `async_minitest.dart`.

3+5+7+9 are updating this text to make the numbers match.
Then it's just test-expectations and small tweaks from there.

Change-Id: I1b665135b5fef9b9a0c3b340ffe9daf874d0174c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/373120
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2024-10-11 16:53:52 +00:00

155 lines
5.0 KiB
Dart

// Copyright (c) 2022, 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.
import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use
import 'package:front_end/src/api_prototype/expression_compilation_tools.dart';
void main() {
// null value.
expect(parseDefinitionTypes(["null"]), [new ParsedType.nullType()]);
// String, kNonNullable
expect(
parseDefinitionTypes([
"dart:core",
"_OneByteString",
"1",
"0",
]),
[new ParsedType.interface("dart:core", "_OneByteString", 1)]);
// List<something it can't represent which thus becomes an explicit
// dynamic/null>, kNonNullable.
expect(parseDefinitionTypes(["dart:core", "List", "1", "1", "null"]), [
new ParsedType.interface("dart:core", "List", 1)
..arguments!.add(new ParsedType.nullType())
]);
// List<int>, kNonNullable
expect(
parseDefinitionTypes([
"dart:core",
"_GrowableList",
"1",
"1",
"dart:core",
"int",
"1",
"0",
]),
[
new ParsedType.interface("dart:core", "_GrowableList", 1)
..arguments!.add(new ParsedType.interface("dart:core", "int", 1))
]);
// Map<int, int>, kNonNullable
expect(
parseDefinitionTypes([
"dart:core",
"Map",
"1",
"2",
"dart:core",
"int",
"1",
"0",
"dart:core",
"int",
"1",
"0",
]),
[
new ParsedType.interface("dart:core", "Map", 1)
..arguments!.add(new ParsedType.interface("dart:core", "int", 1))
..arguments!.add(new ParsedType.interface("dart:core", "int", 1))
]);
// [0] = String
// [1] = int
// [2] = List<String>
// [3] = Bar
// [4] = null
// [5] = HashMap<Map<int, List<int>>, List<String>>
expect(
parseDefinitionTypes([
// String, kNonNullable, no arguments
"dart:core", "_OneByteString", "1", "0",
// Int, kNonNullable, no arguments
"dart:core", "_Smi", "1", "0",
// List, kNonNullable, 1 argument
"dart:core", "_GrowableList", "1", "1",
// -> String, kNonNullable (i.e. the above is List<String>)
/**/ "dart:core", "String", "1", "0",
// "Bar", kNonNullable, no arguments
"file://wherever/t.dart", "Bar", "1", "0",
// null value
"null",
// HashMap, kNonNullable, 2 arguments
"dart:collection", "_InternalLinkedHashMap", "1", "2",
// -> Map, kNonNullable, 2 arguments
/**/ "dart:core", "Map", "1", "2",
// -> -> int, kNonNullable, no arguments
/*/**/*/ "dart:core", "int", "1", "0",
// -> -> List, kNonNullable, 1 argument
/*/**/*/ "dart:core", "List", "1", "1",
// -> -> -> int, kNonNullable, no arguments
/*/*/**/*/*/ "dart:core", "int", "1", "0",
// -> List, kNonNullable, 1 argument
"dart:core", "List", "1", "1",
// -> -> String, kNonNullable, no arguments
"dart:core", "String", "1", "0"
]),
<ParsedType>[
// String
new ParsedType.interface("dart:core", "_OneByteString", 1),
// int
new ParsedType.interface("dart:core", "_Smi", 1),
// List<String>
new ParsedType.interface("dart:core", "_GrowableList", 1)
..arguments!.addAll([
new ParsedType.interface("dart:core", "String", 1),
]),
// Bar
new ParsedType.interface("file://wherever/t.dart", "Bar", 1),
// null value
new ParsedType.nullType(),
// HashMap<Map<int, List<int>>, List<String>>
new ParsedType.interface("dart:collection", "_InternalLinkedHashMap", 1)
..arguments!.addAll([
new ParsedType.interface("dart:core", "Map", 1)
..arguments!.addAll([
new ParsedType.interface("dart:core", "int", 1),
new ParsedType.interface("dart:core", "List", 1)
..arguments!.addAll([
new ParsedType.interface("dart:core", "int", 1),
]),
]),
new ParsedType.interface("dart:core", "List", 1)
..arguments!.addAll([
new ParsedType.interface("dart:core", "String", 1),
]),
]),
]);
// Set<(int, {int foo})>, kNonNullable
expect(
parseDefinitionTypes([
//
/**/ "dart:_compact_hash", "_Set", "1", "1",
/* */ "record", "1", "2", "1", "foo",
/* */ "dart:core", "int", "1", "0",
/* */ "dart:core", "int", "1", "0",
]),
[
new ParsedType.interface("dart:_compact_hash", "_Set", 1)
..arguments!.add(
new ParsedType.record(1, [null, "foo"])
..arguments!.add(new ParsedType.interface("dart:core", "int", 1))
..arguments!.add(new ParsedType.interface("dart:core", "int", 1)),
)
],
);
}