Version 2.12.0-27.0.dev
Merge commit 'd54e2bb56805ecfdfd8202352e3c69a225b567be' into 'dev'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 07174b4..d7db0cc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -91,8 +91,9 @@
* New option `dart pub outdated mode=null-safety` that will analyze your
dependencies for null-safety.
* `dart pub publish` will now check your pubspec keys for likely typos.
-* `pub get` will print a warning if the resolution is in mixed-mode requiring
+* `dart pub get` will print a warning if the resolution is in mixed-mode requiring
the code to run with `dart --no-sound-null-safety`.
+* New command `dart pub login` that logs in to pub.dev.
## 2.10.3 - 2020-10-29
diff --git a/DEPS b/DEPS
index 702b16d..57a2c16 100644
--- a/DEPS
+++ b/DEPS
@@ -44,7 +44,7 @@
# co19 is a cipd package. Use update.sh in tests/co19[_2] to update these
# hashes. It requires access to the dart-build-access group, which EngProd
# has.
- "co19_rev": "2111e4f933e262e8b127bbbae766609463364a67",
+ "co19_rev": "de1f3498dff1091b7ca715eb7f831e24ec1a8c64",
"co19_2_rev": "e48b3090826cf40b8037648f19d211e8eab1b4b6",
# The internal benchmarks to use. See go/dart-benchmarks-internal
@@ -132,7 +132,7 @@
"ply_rev": "604b32590ffad5cbb82e4afef1d305512d06ae93",
"pool_rev": "eedbd5fde84f9a1a8da643b475305a81841da599",
"protobuf_rev": "3746c8fd3f2b0147623a8e3db89c3ff4330de760",
- "pub_rev": "5b4df5a6f931c63622ac349602d6ef0367e8070f",
+ "pub_rev": "900e796a37fd9f68de9dd183cf4798fe5f055eaa",
"pub_semver_tag": "v1.4.4",
"resource_rev": "6b79867d0becf5395e5819a75720963b8298e9a7",
"root_certificates_rev": "7e5ec82c99677a2e5b95ce296c4d68b0d3378ed8",
diff --git a/pkg/compiler/lib/src/ir/scope_visitor.dart b/pkg/compiler/lib/src/ir/scope_visitor.dart
index 74ac0b9..7806fae 100644
--- a/pkg/compiler/lib/src/ir/scope_visitor.dart
+++ b/pkg/compiler/lib/src/ir/scope_visitor.dart
@@ -701,6 +701,10 @@
const EvaluationComplexity.lazy();
@override
+ EvaluationComplexity visitNullType(ir.NullType node) =>
+ const EvaluationComplexity.lazy();
+
+ @override
EvaluationComplexity visitInvalidType(ir.InvalidType node) =>
const EvaluationComplexity.lazy();
diff --git a/pkg/compiler/lib/src/ir/static_type.dart b/pkg/compiler/lib/src/ir/static_type.dart
index 13b7967..2b6981c 100644
--- a/pkg/compiler/lib/src/ir/static_type.dart
+++ b/pkg/compiler/lib/src/ir/static_type.dart
@@ -195,7 +195,12 @@
while (type is ir.TypeParameterType) {
type = (type as ir.TypeParameterType).parameter.bound;
}
- return type is ir.InterfaceType ? type : null;
+ if (type is ir.InterfaceType) {
+ return type;
+ } else if (type is ir.NullType) {
+ return typeEnvironment.coreTypes.deprecatedNullType;
+ }
+ return null;
}
/// Returns the static type of the expression as an instantiation of
@@ -222,7 +227,7 @@
while (type is ir.TypeParameterType) {
type = (type as ir.TypeParameterType).parameter.bound;
}
- if (type == typeEnvironment.nullType) {
+ if (type is ir.NullType) {
return typeEnvironment.coreTypes
.bottomInterfaceType(superclass, currentLibrary.nullable);
}
@@ -711,7 +716,7 @@
ir.DartType promotedType = typeMap.typeOf(node, typeEnvironment);
assert(
node.promotedType == null ||
- promotedType == typeEnvironment.nullType ||
+ promotedType is ir.NullType ||
promotedType is ir.FutureOrType ||
typeEnvironment.isSubtypeOf(promotedType, node.promotedType,
ir.SubtypeCheckMode.ignoringNullabilities),
@@ -1003,7 +1008,7 @@
ir.DartType visitNullCheck(ir.NullCheck node) {
ir.DartType operandType = visitNode(node.operand);
handleNullCheck(node, operandType);
- ir.DartType resultType = operandType == typeEnvironment.nullType
+ ir.DartType resultType = operandType is ir.NullType
? const ir.NeverType(ir.Nullability.nonNullable)
: operandType.withDeclaredNullability(ir.Nullability.nonNullable);
_staticTypeCache._expressionTypes[node] = resultType;
@@ -1502,13 +1507,13 @@
for (ir.DartType type in falseTypes) {
if (typeEnvironment.isSubtypeOf(
declaredType, type, ir.SubtypeCheckMode.ignoringNullabilities)) {
- return typeEnvironment.nullType;
+ return const ir.NullType();
}
}
}
if (trueTypes != null) {
for (ir.DartType type in trueTypes) {
- if (type == typeEnvironment.nullType) {
+ if (type is ir.NullType) {
return type;
}
if (typeEnvironment.isSubtypeOf(
@@ -1770,9 +1775,9 @@
if (candidate == null) {
candidate = type;
} else {
- if (type == typeEnvironment.nullType) {
+ if (type is ir.NullType) {
// Keep the current candidate.
- } else if (candidate == typeEnvironment.nullType) {
+ } else if (candidate is ir.NullType) {
candidate = type;
} else if (typeEnvironment.isSubtypeOf(
candidate, type, ir.SubtypeCheckMode.ignoringNullabilities)) {
diff --git a/pkg/compiler/lib/src/ir/static_type_base.dart b/pkg/compiler/lib/src/ir/static_type_base.dart
index a19523e..246ed21 100644
--- a/pkg/compiler/lib/src/ir/static_type_base.dart
+++ b/pkg/compiler/lib/src/ir/static_type_base.dart
@@ -121,7 +121,7 @@
}
@override
- ir.DartType visitNullLiteral(ir.NullLiteral node) => typeEnvironment.nullType;
+ ir.DartType visitNullLiteral(ir.NullLiteral node) => const ir.NullType();
@override
ir.DartType visitIntLiteral(ir.IntLiteral node) =>
diff --git a/pkg/compiler/lib/src/ir/util.dart b/pkg/compiler/lib/src/ir/util.dart
index 437a842..fc79ee4 100644
--- a/pkg/compiler/lib/src/ir/util.dart
+++ b/pkg/compiler/lib/src/ir/util.dart
@@ -222,6 +222,9 @@
bool visitNeverType(ir.NeverType node) => false;
@override
+ bool visitNullType(ir.NullType node) => false;
+
+ @override
bool visitVoidType(ir.VoidType node) => false;
@override
diff --git a/pkg/compiler/lib/src/ir/visitors.dart b/pkg/compiler/lib/src/ir/visitors.dart
index e4a2425..d375fed 100644
--- a/pkg/compiler/lib/src/ir/visitors.dart
+++ b/pkg/compiler/lib/src/ir/visitors.dart
@@ -181,6 +181,11 @@
DartType visitNeverType(ir.NeverType node) {
return _convertNullability(_dartTypes.neverType(), node.nullability);
}
+
+ @override
+ DartType visitNullType(ir.NullType node) {
+ return elementMap.commonElements.nullType;
+ }
}
class ConstantValuefier extends ir.ComputeOnceConstantVisitor<ConstantValue> {
diff --git a/pkg/compiler/lib/src/kernel/kernel_impact.dart b/pkg/compiler/lib/src/kernel/kernel_impact.dart
index ad10c22..d167042 100644
--- a/pkg/compiler/lib/src/kernel/kernel_impact.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_impact.dart
@@ -141,6 +141,12 @@
if (receiverType is ir.InterfaceType) {
return new StrongModeConstraint(commonElements, _nativeBasicData,
elementMap.getClass(receiverType.classNode), relation);
+ } else if (receiverType is ir.NullType) {
+ return new StrongModeConstraint(
+ commonElements,
+ _nativeBasicData,
+ elementMap.getClass(typeEnvironment.coreTypes.deprecatedNullClass),
+ relation);
}
return null;
}
diff --git a/pkg/compiler/lib/src/serialization/abstract_source.dart b/pkg/compiler/lib/src/serialization/abstract_source.dart
index 26f9bc1..b3ad306 100644
--- a/pkg/compiler/lib/src/serialization/abstract_source.dart
+++ b/pkg/compiler/lib/src/serialization/abstract_source.dart
@@ -276,6 +276,8 @@
ir.Nullability nullability = readEnum(ir.Nullability.values);
ir.DartType typeArgument = _readDartTypeNode(functionTypeVariables);
return new ir.FutureOrType(typeArgument, nullability);
+ case DartTypeNodeKind.nullType:
+ return const ir.NullType();
}
throw new UnsupportedError("Unexpected DartTypeKind $kind");
}
diff --git a/pkg/compiler/lib/src/serialization/helpers.dart b/pkg/compiler/lib/src/serialization/helpers.dart
index b2c6d10..25162f0 100644
--- a/pkg/compiler/lib/src/serialization/helpers.dart
+++ b/pkg/compiler/lib/src/serialization/helpers.dart
@@ -120,6 +120,7 @@
doesNotComplete,
neverType,
futureOrType,
+ nullType,
}
const String functionTypeNodeTag = 'function-type-node';
@@ -181,6 +182,12 @@
}
@override
+ void visitNullType(
+ ir.NullType node, List<ir.TypeParameter> functionTypeVariables) {
+ _sink.writeEnum(DartTypeNodeKind.nullType);
+ }
+
+ @override
void visitInterfaceType(
ir.InterfaceType node, List<ir.TypeParameter> functionTypeVariables) {
if (node is ThisInterfaceType) {
diff --git a/pkg/compiler/test/analyses/analysis_helper.dart b/pkg/compiler/test/analyses/analysis_helper.dart
index 3261133..06e356a 100644
--- a/pkg/compiler/test/analyses/analysis_helper.dart
+++ b/pkg/compiler/test/analyses/analysis_helper.dart
@@ -311,7 +311,7 @@
ir.DartType staticType = node?.accept(this);
assert(
node is! ir.Expression ||
- staticType == typeEnvironment.nullType ||
+ staticType is ir.NullType ||
staticType is ir.FutureOrType ||
typeEnvironment.isSubtypeOf(
staticType,
diff --git a/pkg/compiler/test/helpers/ir_types.dart b/pkg/compiler/test/helpers/ir_types.dart
index e5cbaa3..65a87a4 100644
--- a/pkg/compiler/test/helpers/ir_types.dart
+++ b/pkg/compiler/test/helpers/ir_types.dart
@@ -119,6 +119,11 @@
}
@override
+ void visitNullType(ir.NullType node, StringBuffer sb) {
+ sb.write('Null');
+ }
+
+ @override
void visitVoidType(ir.VoidType node, StringBuffer sb) {
sb.write('void');
}
diff --git a/pkg/dartdev/lib/dartdev.dart b/pkg/dartdev/lib/dartdev.dart
index 84d9d95..e2229b4 100644
--- a/pkg/dartdev/lib/dartdev.dart
+++ b/pkg/dartdev/lib/dartdev.dart
@@ -12,6 +12,7 @@
import 'package:dart_style/src/cli/format_command.dart';
import 'package:nnbd_migration/migration_cli.dart';
import 'package:pedantic/pedantic.dart';
+import 'package:pub/pub.dart';
import 'package:usage/usage.dart';
import 'src/analytics.dart';
@@ -19,7 +20,6 @@
import 'src/commands/compile.dart';
import 'src/commands/create.dart';
import 'src/commands/fix.dart';
-import 'src/commands/pub.dart';
import 'src/commands/run.dart';
import 'src/commands/test.dart';
import 'src/core.dart';
@@ -194,7 +194,7 @@
addCommand(FixCommand());
addCommand(FormatCommand(verbose: verbose));
addCommand(MigrateCommand(verbose: verbose));
- addCommand(PubCommand());
+ addCommand(pubCommand());
addCommand(RunCommand(verbose: verbose));
addCommand(TestCommand());
}
diff --git a/pkg/dartdev/lib/src/commands/pub.dart b/pkg/dartdev/lib/src/commands/pub.dart
deleted file mode 100644
index 9f18a82..0000000
--- a/pkg/dartdev/lib/src/commands/pub.dart
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (c) 2020, 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 'dart:async';
-
-import 'package:args/args.dart';
-
-import '../core.dart';
-import '../experiments.dart';
-import '../sdk.dart';
-import '../vm_interop_handler.dart';
-
-class PubCommand extends DartdevCommand {
- static const String cmdName = 'pub';
-
- PubCommand() : super(cmdName, 'Work with packages.');
-
- // TODO(jwren) as soon as pub commands are are implemented directly in
- // dartdev, remove this static list.
- /// A list of all subcommands, used only for the implementation of
- /// [usagePath], see below.
- static List<String> pubSubcommands = [
- 'cache',
- 'deps',
- 'downgrade',
- 'get',
- 'global',
- 'logout',
- 'outdated',
- 'publish',
- 'run',
- 'upgrade',
- 'uploader',
- 'version',
- ];
-
- @override
- ArgParser createArgParser() => ArgParser.allowAnything();
-
- @override
- void printUsage() {
- // Override [printUsage] for invocations of 'dart help pub' which won't
- // execute [run] below. Without this, the 'dart help pub' reports the
- // command pub with no commands or flags.
- if (!Sdk.checkArtifactExists(sdk.pubSnapshot)) {
- return;
- }
- final command = sdk.pubSnapshot;
- final args = ['help'];
-
- log.trace('$command ${args.first}');
-
- // Call 'pub help'
- VmInteropHandler.run(command, args);
- }
-
- @override
- FutureOr<int> run() async {
- if (!Sdk.checkArtifactExists(sdk.pubSnapshot)) {
- return 255;
- }
- final command = sdk.pubSnapshot;
- var args = argResults.arguments;
-
- final enabledExperiments = argResults.enabledExperiments;
- // Pass any --enable-experiment options along.
- if (args.isNotEmpty && enabledExperiments.isNotEmpty) {
- if (args.first == 'run') {
- args = [
- ...args.sublist(0, 1),
- '--$experimentFlagName=${enabledExperiments.join(',')}',
- ...args.sublist(1),
- ];
- } else if (args.length > 1 && args[0] == 'global' && args[0] == 'run') {
- args = [
- ...args.sublist(0, 2),
- '--$experimentFlagName=${enabledExperiments.join(',')}',
- ...args.sublist(2),
- ];
- }
- }
-
- log.trace('$command ${args.join(' ')}');
- VmInteropHandler.run(command, args);
- return 0;
- }
-}
diff --git a/pkg/dartdev/lib/src/commands/run.dart b/pkg/dartdev/lib/src/commands/run.dart
index b350b38..8d92c83 100644
--- a/pkg/dartdev/lib/src/commands/run.dart
+++ b/pkg/dartdev/lib/src/commands/run.dart
@@ -9,6 +9,7 @@
import 'package:args/args.dart';
import 'package:path/path.dart';
+import 'package:pub/pub.dart';
import '../core.dart';
import '../experiments.dart';
@@ -153,69 +154,27 @@
@override
FutureOr<int> run() async {
- // The command line arguments after 'run'
- var args = argResults.arguments.toList();
+ var mainCommand = '';
+ var runArgs = <String>[];
+ if (argResults.rest.isNotEmpty) {
+ mainCommand = argResults.rest.first;
+ // The command line arguments after the command name.
+ runArgs = argResults.rest.skip(1).toList();
+ }
// --launch-dds is provided by the VM if the VM service is to be enabled. In
// that case, we need to launch DDS as well.
- bool launchDds = false;
+ String launchDdsArg = argResults['launch-dds'];
String ddsHost = '';
String ddsPort = '';
-
- final launchDdsArg = args.singleWhere(
- (element) => element.startsWith('--launch-dds'),
- orElse: () => null,
- );
+ bool launchDds = false;
if (launchDdsArg != null) {
launchDds = true;
- final ddsUrl = (launchDdsArg.split('=')[1]).split(':');
+ final ddsUrl = launchDdsArg.split(':');
ddsHost = ddsUrl[0];
ddsPort = ddsUrl[1];
}
- var argsContainFile = false;
- for (var arg in args) {
- // The arg.contains('.') matches a file name pattern, i.e. some 'foo.dart'
- if (arg.contains('.')) {
- argsContainFile = true;
- } else if (!argsContainFile &&
- (arg == '--help' || arg == '-h' || arg == 'help')) {
- // Only print usage if a help flag is provided before the script name.
- printUsage();
- return 0;
- }
- }
-
- var disableServiceAuthCodes =
- argResults['disable-service-auth-codes'] ?? false;
-
- final cwd = Directory.current;
- if (!argsContainFile && cwd.existsSync()) {
- var foundImplicitFileToRun = false;
- var cwdName = cwd.name;
- for (var entity in cwd.listSync(followLinks: false)) {
- if (entity is Directory && entity.name == 'bin') {
- var filesInBin =
- entity.listSync(followLinks: false).whereType<File>();
-
- // Search for a dart file in bin/ with the pattern foo/bin/foo.dart
- for (var fileInBin in filesInBin) {
- if (fileInBin.isDartFile && fileInBin.name == '$cwdName.dart') {
- args.add('bin/${fileInBin.name}');
- foundImplicitFileToRun = true;
- break;
- }
- }
- // break here, no actions taken on any entities that are not bin/
- break;
- }
- }
-
- if (!foundImplicitFileToRun) {
- // This throws.
- usageException('Could not find the implicit file to run: '
- 'bin$separator$cwdName.dart.');
- }
- }
+ bool disableServiceAuthCodes = argResults['disable-service-auth-codes'];
// If the user wants to start a debugging session we need to do some extra
// work and spawn a Dart Development Service (DDS) instance. DDS is a VM
@@ -231,20 +190,14 @@
}
}
- var path = args.firstWhere((e) => !e.startsWith('-'));
- final pathIndex = args.indexOf(path);
- final runArgs = (pathIndex + 1 == args.length)
- ? <String>[]
- : args.sublist(pathIndex + 1);
+ String path;
try {
- path = Uri.parse(path).toFilePath();
- } catch (_) {
- // Input path will either be a valid path or a file uri
- // (e.g /directory/file.dart or file:///directory/file.dart). We will try
- // parsing it as a Uri, but if parsing failed for any reason (likely
- // because path is not a file Uri), `path` will be passed without
- // modification to the VM.
+ path = await getExecutableForCommand(mainCommand);
+ } on CommandResolutionFailedException catch (e) {
+ log.stderr(e.message);
+ return errorExitCode;
}
+
VmInteropHandler.run(path, runArgs);
return 0;
}
diff --git a/pkg/dartdev/pubspec.yaml b/pkg/dartdev/pubspec.yaml
index 6eb66f8..e5b9295 100644
--- a/pkg/dartdev/pubspec.yaml
+++ b/pkg/dartdev/pubspec.yaml
@@ -21,6 +21,8 @@
path: ../nnbd_migration
path: ^1.0.0
pedantic: ^1.9.0
+ pub:
+ path: ../../third_party/pkg/pub
stagehand: 3.3.7
telemetry:
path: ../telemetry
diff --git a/pkg/dartdev/test/analytics_test.dart b/pkg/dartdev/test/analytics_test.dart
index cb25407..26d9822 100644
--- a/pkg/dartdev/test/analytics_test.dart
+++ b/pkg/dartdev/test/analytics_test.dart
@@ -86,23 +86,23 @@
expect(extractAnalytics(result), [
{
'hitType': 'screenView',
- // TODO(sigurdm): this should be pub/get
- 'message': {'viewName': 'pub'}
+ 'message': {'viewName': 'pub/get'}
},
{
'hitType': 'event',
'message': {
'category': 'dartdev',
- 'action': 'pub',
+ 'action': 'pub/get',
'label': null,
'value': null,
'cd1': '0',
+ 'cd3': ' dry-run '
}
},
{
'hitType': 'timing',
'message': {
- 'variableName': 'pub',
+ 'variableName': 'pub/get',
'time': isA<int>(),
'category': 'commands',
'label': null
diff --git a/pkg/dartdev/test/commands/flag_test.dart b/pkg/dartdev/test/commands/flag_test.dart
index 7bef6a24..6416ffc 100644
--- a/pkg/dartdev/test/commands/flag_test.dart
+++ b/pkg/dartdev/test/commands/flag_test.dart
@@ -42,6 +42,11 @@
command.name != 'pub') {
expect(command.argParser.usageLineLength,
stdout.hasTerminal ? stdout.terminalColumns : null);
+ } else if (command.name == 'pub') {
+ // TODO(sigurdm): Avoid special casing here.
+ // https://github.com/dart-lang/pub/issues/2700
+ expect(command.argParser.usageLineLength,
+ stdout.hasTerminal ? stdout.terminalColumns : 80);
} else {
expect(command.argParser.usageLineLength, isNull);
}
diff --git a/pkg/dartdev/test/commands/help_test.dart b/pkg/dartdev/test/commands/help_test.dart
index 65f75a5..c272e43 100644
--- a/pkg/dartdev/test/commands/help_test.dart
+++ b/pkg/dartdev/test/commands/help_test.dart
@@ -37,10 +37,10 @@
}
});
- test('(help pub == pub help)', () {
+ test('(help pub == pub --help)', () {
p = project();
var result = p.runSync('help', ['pub']);
- var pubHelpResult = p.runSync('pub', ['help']);
+ var pubHelpResult = p.runSync('pub', ['--help']);
expect(result.stdout, contains(pubHelpResult.stdout));
expect(result.stderr, contains(pubHelpResult.stderr));
diff --git a/pkg/dartdev/test/commands/pub_test.dart b/pkg/dartdev/test/commands/pub_test.dart
index 14db6be..d8a4a04 100644
--- a/pkg/dartdev/test/commands/pub_test.dart
+++ b/pkg/dartdev/test/commands/pub_test.dart
@@ -20,13 +20,18 @@
void _assertPubHelpInvoked(ProcessResult result) {
expect(result, isNotNull);
expect(result.exitCode, 0);
- expect(result.stdout, contains('Pub is a package manager for Dart'));
- expect(result.stdout, contains('Available commands:'));
+ expect(result.stdout, contains('Work with packages'));
+ expect(result.stdout, contains('Available subcommands:'));
expect(result.stderr, isEmpty);
}
test('implicit --help', () {
- _assertPubHelpInvoked(project().runSync('pub', []));
+ final result = project().runSync('pub', []);
+ expect(result, isNotNull);
+ expect(result.exitCode, 64);
+ expect(result.stderr, contains('Missing subcommand for "dart pub".'));
+ expect(result.stderr, contains('Available subcommands:'));
+ expect(result.stdout, isEmpty);
});
test('--help', () {
@@ -39,7 +44,7 @@
test('help cache', () {
p = project();
- var result = p.runSync('pub', ['help', 'cache']);
+ var result = p.runSync('help', ['pub', 'cache']);
var result2 = p.runSync('pub', ['cache', '--help']);
expect(result.exitCode, 0);
@@ -53,7 +58,7 @@
test('help publish', () {
p = project();
- var result = p.runSync('pub', ['help', 'publish']);
+ var result = p.runSync('help', ['pub', 'publish']);
var result2 = p.runSync('pub', ['publish', '--help']);
expect(result.exitCode, 0);
diff --git a/pkg/dartdev/test/commands/run_test.dart b/pkg/dartdev/test/commands/run_test.dart
index 4c0a9c1..e1b441e 100644
--- a/pkg/dartdev/test/commands/run_test.dart
+++ b/pkg/dartdev/test/commands/run_test.dart
@@ -65,9 +65,11 @@
ProcessResult result = p.runSync('run', []);
expect(result.stdout, isEmpty);
- expect(result.stderr,
- contains('Could not find the implicit file to run: bin'));
- expect(result.exitCode, 64);
+ expect(
+ result.stderr,
+ contains(
+ 'Could not find `bin/dartdev_temp.dart` in package `dartdev_temp`.'));
+ expect(result.exitCode, 255);
});
test('arguments are properly passed', () {
diff --git a/pkg/dartdev/test/core_test.dart b/pkg/dartdev/test/core_test.dart
index e49c479..5f49133 100644
--- a/pkg/dartdev/test/core_test.dart
+++ b/pkg/dartdev/test/core_test.dart
@@ -9,7 +9,6 @@
import 'package:dartdev/src/commands/compile.dart';
import 'package:dartdev/src/commands/create.dart';
import 'package:dartdev/src/commands/fix.dart';
-import 'package:dartdev/src/commands/pub.dart';
import 'package:dartdev/src/commands/run.dart';
import 'package:dartdev/src/commands/test.dart';
import 'package:dartdev/src/core.dart';
@@ -81,10 +80,6 @@
_assertDartdevCommandProperties(FixCommand(), 'fix', 'fix');
});
- test('pub', () {
- _assertDartdevCommandProperties(PubCommand(), 'pub', 'pub');
- });
-
test('run', () {
_assertDartdevCommandProperties(RunCommand(verbose: false), 'run', 'run');
});
diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart
index 8a5f5b2..16cd2fe 100644
--- a/pkg/dev_compiler/lib/src/kernel/compiler.dart
+++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart
@@ -1070,7 +1070,7 @@
c == _coreTypes.stringClass ||
c == _coreTypes.functionClass ||
c == _coreTypes.intClass ||
- c == _coreTypes.nullClass ||
+ c == _coreTypes.deprecatedNullClass ||
c == _coreTypes.numClass ||
c == _coreTypes.doubleClass ||
c == _coreTypes.boolClass)) {
@@ -2567,12 +2567,16 @@
@override
js_ast.Expression visitBottomType(BottomType type) =>
- _emitType(_types.nullType);
+ _emitType(const NullType());
+
+ @override
+ js_ast.Expression visitNullType(NullType type) =>
+ _emitInterfaceType(_coreTypes.deprecatedNullType);
@override
js_ast.Expression visitNeverType(NeverType type) =>
type.nullability == Nullability.nullable
- ? visitInterfaceType(_coreTypes.nullType)
+ ? visitNullType(const NullType())
: _emitNullabilityWrapper(runtimeCall('Never'), type.nullability);
/// Normalizes `FutureOr` types and emits the normalized version.
@@ -2605,8 +2609,7 @@
// FutureOr<Never> --> Future<Never>
return _emitInterfaceType(InterfaceType(
_coreTypes.futureClass, futureOr.nullability, [typeArgument]));
- } else if (typeArgument is InterfaceType &&
- typeArgument.classNode == _coreTypes.nullClass) {
+ } else if (typeArgument is NullType) {
// FutureOr<Null> --> Future<Null>?
return _emitInterfaceType(InterfaceType(
_coreTypes.futureClass, Nullability.nullable, [typeArgument]));
@@ -2690,7 +2693,7 @@
// * The types were written in JS context or as part of the dart:_runtime
// library.
if (!emitNullability ||
- type == _coreTypes.nullType ||
+ type == _coreTypes.deprecatedNullType ||
// TODO(38701) Remove these once the SDK has unforked and is running
// "opted-in"
!coreLibrary.isNonNullableByDefault &&
@@ -5134,8 +5137,7 @@
importUri.path == 'html_common');
bool _isNull(Expression expr) =>
- expr is NullLiteral ||
- expr.getStaticType(_staticTypeContext) == _coreTypes.nullType;
+ expr is NullLiteral || expr.getStaticType(_staticTypeContext) is NullType;
bool _doubleEqIsIdentity(Expression left, Expression right) {
// If we statically know LHS or RHS is null we can use ==.
diff --git a/pkg/dev_compiler/lib/src/kernel/js_typerep.dart b/pkg/dev_compiler/lib/src/kernel/js_typerep.dart
index 6206452..272b682 100644
--- a/pkg/dev_compiler/lib/src/kernel/js_typerep.dart
+++ b/pkg/dev_compiler/lib/src/kernel/js_typerep.dart
@@ -39,10 +39,10 @@
// Note that this should be changed if Dart gets non-nullable types
if (type == const BottomType()) return JSType.jsNull;
+ if (type == const NullType()) return JSType.jsNull;
if (type is InterfaceType) {
var c = type.classNode;
- if (c == coreTypes.nullClass) return JSType.jsNull;
if (c == coreTypes.numClass ||
c == coreTypes.intClass ||
c == coreTypes.doubleClass ||
diff --git a/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart b/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
index eb1c8b1..437fcce 100644
--- a/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
+++ b/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
@@ -336,6 +336,7 @@
t is InterfaceType ||
t is InvalidType ||
t is NeverType ||
+ t is NullType ||
t is TypeParameterType ||
t is TypedefType ||
t is VoidType;
diff --git a/pkg/dev_compiler/lib/src/kernel/type_table.dart b/pkg/dev_compiler/lib/src/kernel/type_table.dart
index 179a59b..ddaf27f 100644
--- a/pkg/dev_compiler/lib/src/kernel/type_table.dart
+++ b/pkg/dev_compiler/lib/src/kernel/type_table.dart
@@ -119,6 +119,7 @@
if (type is VoidType) return 'void';
if (type is NeverType) return 'Never$nullability';
if (type is BottomType) return 'bottom';
+ if (type is NullType) return 'Null';
return 'invalid';
}
diff --git a/pkg/dev_compiler/test/nullable_inference_test.dart b/pkg/dev_compiler/test/nullable_inference_test.dart
index 9326ea29..9753c50 100644
--- a/pkg/dev_compiler/test/nullable_inference_test.dart
+++ b/pkg/dev_compiler/test/nullable_inference_test.dart
@@ -52,7 +52,7 @@
});
test('Map', () async {
await expectNotNull('main() { print({"x": null}); }',
- '<dart.core::String*, dart.core::Null?>{"x": null}, "x"');
+ '<dart.core::String*, Null>{"x": null}, "x"');
});
test('Symbol', () async {
@@ -258,7 +258,7 @@
test('function expression', () async {
await expectNotNull(
- 'main() { () => null; f() {}; f; }', 'dart.core::Null? () => null, f');
+ 'main() { () => null; f() {}; f; }', 'Null () => null, f');
});
test('cascades (kernel BlockExpression)', () async {
@@ -399,7 +399,7 @@
await expectNotNull('''main() {
var x = () => 42;
var y = (() => x = null);
- }''', 'dart.core::int* () => 42, 42, dart.core::Null? () => x = null');
+ }''', 'dart.core::int* () => 42, 42, Null () => x = null');
});
test('do not depend on unrelated variables', () async {
await expectNotNull('''main() {
diff --git a/pkg/front_end/lib/src/fasta/builder/class_builder.dart b/pkg/front_end/lib/src/fasta/builder/class_builder.dart
index 6f675d8..6b97dd9 100644
--- a/pkg/front_end/lib/src/fasta/builder/class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/class_builder.dart
@@ -16,6 +16,7 @@
InterfaceType,
Member,
Name,
+ NullType,
Nullability,
Supertype,
TypeParameter,
@@ -538,7 +539,7 @@
Nullability nullability, List<DartType> arguments) {
assert(arguments == null || cls.typeParameters.length == arguments.length);
if (isNullClass) {
- nullability = Nullability.nullable;
+ return const NullType();
}
if (name == "FutureOr") {
LibraryBuilder parentLibrary = parent;
@@ -781,7 +782,7 @@
InterfaceType requiredInterface =
substitution.substituteSupertype(constraint).asInterfaceType;
InterfaceType implementedInterface = hierarchy.getTypeAsInstanceOf(
- supertype, requiredInterface.classNode, library.library, coreTypes);
+ supertype, requiredInterface.classNode, library.library);
if (implementedInterface == null ||
!typeEnvironment.areMutualSubtypes(
implementedInterface,
diff --git a/pkg/front_end/lib/src/fasta/builder/library_builder.dart b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
index 224ecbc..7f80ef3e 100644
--- a/pkg/front_end/lib/src/fasta/builder/library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
@@ -157,6 +157,8 @@
void addSyntheticDeclarationOfNever();
+ void addSyntheticDeclarationOfNull();
+
/// Lookups the member [name] declared in this library.
///
/// If [required] is `true` and no member is found an internal problem is
@@ -387,6 +389,9 @@
if (scope.lookupLocalMember("Never", setter: false) == null) {
addSyntheticDeclarationOfNever();
}
+ if (scope.lookupLocalMember("Null", setter: false) == null) {
+ addSyntheticDeclarationOfNull();
+ }
}
@override
diff --git a/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart b/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
index dec0428..e09e091 100644
--- a/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
@@ -6,17 +6,7 @@
import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
-import 'package:kernel/ast.dart'
- show
- Class,
- DartType,
- Extension,
- InterfaceType,
- InvalidType,
- Supertype,
- TreeNode,
- TypeParameter,
- TypedefType;
+import 'package:kernel/ast.dart' hide MapEntry;
import '../fasta_codes.dart'
show
@@ -262,7 +252,6 @@
TypeVariableBuilder typeParameterBuilder = declaration;
TypeParameter typeParameter = typeParameterBuilder.parameter;
if (typeParameter.parent is Class || typeParameter.parent is Extension) {
- messageTypeVariableInStaticContext;
library.addProblem(
messageTypeVariableInStaticContext,
charOffset ?? TreeNode.noOffset,
@@ -295,6 +284,50 @@
declaration.buildType(library, library.nonNullableBuilder, arguments);
if (type is InterfaceType) {
return new Supertype(type.classNode, type.typeArguments);
+ } else if (type is NullType) {
+ // Even though Null is disallowed as a supertype, ClassHierarchyBuilder
+ // still expects it to be built to the respective InterfaceType
+ // referencing the deprecated class.
+ // TODO(dmitryas): Remove the dependency on the deprecated Null class
+ // from ClassHierarchyBuilder.
+ TypeDeclarationBuilder unaliasedDeclaration = this.declaration;
+ // The following code assumes that the declaration is a TypeAliasBuilder
+ // that through a chain of other TypeAliasBuilders (possibly, the chian
+ // length is 0) references a ClassBuilder of the Null class. Otherwise,
+ // it won't produce the NullType on the output.
+ while (unaliasedDeclaration is TypeAliasBuilder) {
+ unaliasedDeclaration =
+ (unaliasedDeclaration as TypeAliasBuilder).type.declaration;
+ assert(unaliasedDeclaration != null);
+ }
+ assert(unaliasedDeclaration is ClassBuilder &&
+ unaliasedDeclaration.name == "Null");
+ return new Supertype(
+ (unaliasedDeclaration as ClassBuilder).cls, const <DartType>[]);
+ } else if (type is FutureOrType) {
+ // Even though FutureOr is disallowed as a supertype,
+ // ClassHierarchyBuilder still expects it to be built to the respective
+ // InterfaceType referencing the deprecated class. In contrast with
+ // Null, it doesn't surface as an error due to FutureOr class not having
+ // any inheritable members.
+ // TODO(dmitryas): Remove the dependency on the deprecated FutureOr
+ // class from ClassHierarchyBuilder.
+ TypeDeclarationBuilder unaliasedDeclaration = this.declaration;
+ // The following code assumes that the declaration is a TypeAliasBuilder
+ // that through a chain of other TypeAliasBuilders (possibly, the chian
+ // length is 0) references a ClassBuilder of the FutureOr class.
+ // Otherwise, it won't produce the FutureOrType on the output.
+ while (unaliasedDeclaration is TypeAliasBuilder) {
+ unaliasedDeclaration =
+ (unaliasedDeclaration as TypeAliasBuilder).type.declaration;
+ assert(unaliasedDeclaration != null);
+ }
+ assert(unaliasedDeclaration is ClassBuilder &&
+ unaliasedDeclaration.name == "FutureOr");
+ return new Supertype((unaliasedDeclaration as ClassBuilder).cls,
+ <DartType>[type.typeArgument]);
+ } else {
+ // Do nothing: handleInvalidSuper below will handle the erroneous case.
}
} else if (declaration is InvalidTypeDeclarationBuilder) {
library.addProblem(
diff --git a/pkg/front_end/lib/src/fasta/builder/never_type_declaration_builder.dart b/pkg/front_end/lib/src/fasta/builder/never_type_declaration_builder.dart
index f8700b1..509dd32 100644
--- a/pkg/front_end/lib/src/fasta/builder/never_type_declaration_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/never_type_declaration_builder.dart
@@ -4,17 +4,15 @@
library fasta.never_type_builder;
-import 'package:kernel/ast.dart' show DartType, InterfaceType, Nullability;
+import 'package:kernel/ast.dart' show DartType, NullType, Nullability;
import 'builtin_type_declaration_builder.dart';
-import 'class_builder.dart';
import 'library_builder.dart';
import 'nullability_builder.dart';
import 'type_builder.dart';
class NeverTypeDeclarationBuilder extends BuiltinTypeDeclarationBuilder {
final LibraryBuilder coreLibrary;
- DartType _nullType;
NeverTypeDeclarationBuilder(DartType type, this.coreLibrary, int charOffset)
: super("Never", type, coreLibrary, charOffset) {
@@ -23,19 +21,11 @@
String get debugName => "NeverTypeDeclarationBuilder";
- DartType get nullType {
- if (_nullType == null) {
- ClassBuilder nullClass = coreLibrary.lookupLocalMember('Null');
- _nullType = new InterfaceType(nullClass.cls, Nullability.nullable, []);
- }
- return _nullType;
- }
-
DartType buildType(LibraryBuilder library,
NullabilityBuilder nullabilityBuilder, List<TypeBuilder> arguments,
[bool notInstanceContext]) {
if (!library.isNonNullableByDefault) {
- return nullType;
+ return const NullType();
}
return type.withDeclaredNullability(nullabilityBuilder.build(library));
}
@@ -43,7 +33,7 @@
DartType buildTypesWithBuiltArguments(LibraryBuilder library,
Nullability nullability, List<DartType> arguments) {
if (!library.isNonNullableByDefault) {
- return nullType;
+ return const NullType();
}
return type.withDeclaredNullability(nullability);
}
diff --git a/pkg/front_end/lib/src/fasta/builder/null_type_declaration_builder.dart b/pkg/front_end/lib/src/fasta/builder/null_type_declaration_builder.dart
new file mode 100644
index 0000000..cbfd853
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/builder/null_type_declaration_builder.dart
@@ -0,0 +1,31 @@
+// Copyright (c) 2020, 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.
+
+library fasta.null_type_declaration_builder;
+
+import 'package:kernel/ast.dart' show DartType, Nullability;
+
+import 'builtin_type_declaration_builder.dart';
+import 'library_builder.dart';
+import 'nullability_builder.dart';
+import 'type_builder.dart';
+
+class NullTypeDeclarationBuilder extends BuiltinTypeDeclarationBuilder {
+ NullTypeDeclarationBuilder(
+ DartType type, LibraryBuilder compilationUnit, int charOffset)
+ : super("Null", type, compilationUnit, charOffset);
+
+ String get debugName => "NullTypeBuilder";
+
+ DartType buildType(LibraryBuilder library,
+ NullabilityBuilder nullabilityBuilder, List<TypeBuilder> arguments,
+ [bool notInstanceContext]) {
+ return type;
+ }
+
+ DartType buildTypesWithBuiltArguments(LibraryBuilder library,
+ Nullability nullability, List<DartType> arguments) {
+ return type;
+ }
+}
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
index fd2a831..08d1655 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
@@ -164,6 +164,10 @@
-1);
}
+ void addSyntheticDeclarationOfNull() {
+ // The name "Null" is declared by the class Null.
+ }
+
void addClass(Class cls) {
DillClassBuilder classBulder = new DillClassBuilder(cls, this);
addBuilder(cls.name, classBulder, cls.fileOffset);
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart
index 2bbe28c..9cf8bad 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart
@@ -4,8 +4,7 @@
library fasta.dill_typedef_builder;
-import 'package:kernel/ast.dart'
- show DartType, InterfaceType, InvalidType, Typedef;
+import 'package:kernel/ast.dart' show DartType, InvalidType, NullType, Typedef;
import '../builder/library_builder.dart';
import '../builder/metadata_builder.dart';
@@ -90,14 +89,5 @@
}
@override
- bool get isNullAlias {
- DartType dartType = typedef.type;
- if (dartType is InterfaceType) {
- Uri importUri = dartType.classNode.enclosingLibrary.importUri;
- return dartType.classNode.name == "Null" &&
- importUri.scheme == "dart" &&
- importUri.path == "core";
- }
- return false;
- }
+ bool get isNullAlias => typedef.type is NullType;
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart b/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart
index ec6d37e..5c5223c 100644
--- a/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart
@@ -352,8 +352,6 @@
final Class functionClass;
- final Class nullClass;
-
final List<DelayedTypeComputation> _delayedTypeComputations =
<DelayedTypeComputation>[];
@@ -368,8 +366,7 @@
ClassHierarchyBuilder(this.objectClassBuilder, this.loader, this.coreTypes)
: objectClass = objectClassBuilder.cls,
futureClass = coreTypes.futureClass,
- functionClass = coreTypes.functionClass,
- nullClass = coreTypes.nullClass {
+ functionClass = coreTypes.functionClass {
types = new Types(this);
}
@@ -500,23 +497,9 @@
return null;
}
- InterfaceType getTypeAsInstanceOf(InterfaceType type, Class superclass,
- Library clientLibrary, CoreTypes coreTypes) {
- Class kernelClass = type.classNode;
- if (kernelClass == superclass) return type;
- if (kernelClass == nullClass) {
- if (superclass.typeParameters.isEmpty) {
- return coreTypes.rawType(superclass, clientLibrary.nullable);
- } else {
- // This is a safe fall-back for dealing with `Null`. It will likely be
- // faster to check for `Null` before calling this method.
- return new InterfaceType(
- superclass,
- clientLibrary.nullable,
- new List<DartType>.filled(
- superclass.typeParameters.length, coreTypes.nullType));
- }
- }
+ InterfaceType getTypeAsInstanceOf(
+ InterfaceType type, Class superclass, Library clientLibrary) {
+ if (type.classNode == superclass) return type;
return asSupertypeOf(type, superclass)
.asInterfaceType
.withDeclaredNullability(type.nullability);
@@ -524,13 +507,7 @@
List<DartType> getTypeArgumentsAsInstanceOf(
InterfaceType type, Class superclass) {
- Class kernelClass = type.classNode;
- if (kernelClass == superclass) return type.typeArguments;
- if (kernelClass == nullClass) {
- if (superclass.typeParameters.isEmpty) return const <DartType>[];
- return new List<DartType>.filled(
- superclass.typeParameters.length, coreTypes.nullType);
- }
+ if (type.classNode == superclass) return type.typeArguments;
return asSupertypeOf(type, superclass)?.typeArguments;
}
@@ -544,10 +521,10 @@
// LLUB(Null, List<dynamic>*) = List<dynamic>*. In opt-out libraries the
// rules imply that LLUB(Null, List<dynamic>*) = List<dynamic>?.
if (!clientLibrary.isNonNullableByDefault) {
- if (type1 is InterfaceType && type1.classNode == nullClass) {
+ if (type1 is NullType) {
return type2;
}
- if (type2 is InterfaceType && type2.classNode == nullClass) {
+ if (type2 is NullType) {
return type1;
}
}
@@ -566,10 +543,10 @@
continue;
}
if (nodes1.contains(node)) {
- DartType candidate1 = getTypeAsInstanceOf(
- type1, node.classBuilder.cls, clientLibrary, coreTypes);
- DartType candidate2 = getTypeAsInstanceOf(
- type2, node.classBuilder.cls, clientLibrary, coreTypes);
+ DartType candidate1 =
+ getTypeAsInstanceOf(type1, node.classBuilder.cls, clientLibrary);
+ DartType candidate2 =
+ getTypeAsInstanceOf(type2, node.classBuilder.cls, clientLibrary);
if (candidate1 == candidate2) {
common.add(node);
}
@@ -585,8 +562,7 @@
for (int i = 0; i < common.length - 1; i++) {
ClassHierarchyNode node = common[i];
if (node.maxInheritancePath != common[i + 1].maxInheritancePath) {
- return getTypeAsInstanceOf(
- type1, node.classBuilder.cls, clientLibrary, coreTypes)
+ return getTypeAsInstanceOf(type1, node.classBuilder.cls, clientLibrary)
.withDeclaredNullability(
uniteNullabilities(type1.nullability, type2.nullability));
} else {
@@ -2776,8 +2752,7 @@
@override
InterfaceType getTypeAsInstanceOf(InterfaceType type, Class superclass,
Library clientLibrary, CoreTypes coreTypes) {
- return hierarchy.getTypeAsInstanceOf(
- type, superclass, clientLibrary, coreTypes);
+ return hierarchy.getTypeAsInstanceOf(type, superclass, clientLibrary);
}
@override
diff --git a/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart b/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart
index 5bc4ffe..ea003a5 100644
--- a/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart
@@ -639,10 +639,7 @@
return type;
}
InterfaceType instance = hierarchy.getTypeAsInstanceOf(
- thisType,
- member.enclosingClass,
- classBuilder.library.library,
- hierarchy.coreTypes);
+ thisType, member.enclosingClass, classBuilder.library.library);
assert(
instance != null,
"No instance of $thisType as ${member.enclosingClass} found for "
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart b/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart
index 4521aec..8f0a84bb 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart
@@ -183,8 +183,8 @@
mapEntries[i] =
new ConstantMapEntry(entries[i], evaluator.nullConstant);
}
- Constant map = evaluator.lowerMapConstant(new MapConstant(
- elementType, evaluator.typeEnvironment.nullType, mapEntries));
+ Constant map = evaluator.lowerMapConstant(
+ new MapConstant(elementType, const NullType(), mapEntries));
return evaluator.lower(
result,
new InstanceConstant(
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
index 1d098cd..58a0b19 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
@@ -824,7 +824,6 @@
coreTypes.internalSymbolClass: true,
coreTypes.listClass: true,
coreTypes.mapClass: true,
- coreTypes.nullClass: true,
coreTypes.objectClass: true,
coreTypes.setClass: true,
coreTypes.stringClass: true,
@@ -2426,13 +2425,13 @@
if (constant is NullConstant) {
if (type.nullability == Nullability.legacy) {
// `null is Null` is handled below.
- return typeEnvironment.isSubtypeOf(type, typeEnvironment.nullType,
+ return typeEnvironment.isSubtypeOf(type, const NullType(),
SubtypeCheckMode.ignoringNullabilities) ||
typeEnvironment.isSubtypeOf(typeEnvironment.objectLegacyRawType,
type, SubtypeCheckMode.ignoringNullabilities);
} else {
- return typeEnvironment.isSubtypeOf(typeEnvironment.nullType, type,
- SubtypeCheckMode.withNullabilities);
+ return typeEnvironment.isSubtypeOf(
+ const NullType(), type, SubtypeCheckMode.withNullabilities);
}
}
return isSubtype(
@@ -3118,6 +3117,9 @@
bool visitBottomType(BottomType node) => true;
@override
+ bool visitNullType(NullType node) => true;
+
+ @override
bool visitTypeParameterType(TypeParameterType node) {
return _availableVariables.contains(node.parameter);
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 58d2b99..2d14e54 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -1330,7 +1330,7 @@
if (inferrer.isNonNullableByDefault) {
return isNullAware ? const NeverType(Nullability.nonNullable) : null;
} else {
- return isNullAware ? inferrer.coreTypes.nullType : null;
+ return isNullAware ? const NullType() : null;
}
}
if (spreadTypeBound is InterfaceType) {
@@ -1389,7 +1389,7 @@
if (inferrer.isNonNullableByDefault &&
spreadType.isPotentiallyNullable &&
spreadType is! DynamicType &&
- spreadType != inferrer.coreTypes.nullType &&
+ spreadType is! NullType &&
!element.isNullAware) {
replacement = inferrer.helper.buildProblem(
messageNullableSpreadError, element.expression.fileOffset, 1);
@@ -1452,7 +1452,7 @@
if (inferrer.isNonNullableByDefault &&
spreadType.isPotentiallyNullable &&
spreadType is! DynamicType &&
- spreadType != inferrer.coreTypes.nullType &&
+ spreadType is! NullType &&
!element.isNullAware) {
replacement = inferrer.helper.buildProblem(
messageNullableSpreadError, element.expression.fileOffset, 1);
@@ -1800,7 +1800,7 @@
output[offset] =
output[offset + 1] = const NeverType(Nullability.nonNullable);
} else {
- output[offset] = output[offset + 1] = inferrer.coreTypes.nullType;
+ output[offset] = output[offset + 1] = const NullType();
}
}
} else if (typeBound is InterfaceType) {
@@ -1874,7 +1874,7 @@
if (inferrer.isNonNullableByDefault &&
spreadType.isPotentiallyNullable &&
spreadType is! DynamicType &&
- spreadType != inferrer.coreTypes.nullType &&
+ spreadType is! NullType &&
!entry.isNullAware) {
replacement = new SpreadMapEntry(
inferrer.helper.buildProblem(messageNullableSpreadError,
@@ -1993,7 +1993,7 @@
if (inferrer.isNonNullableByDefault &&
spreadType.isPotentiallyNullable &&
spreadType is! DynamicType &&
- spreadType != inferrer.coreTypes.nullType &&
+ spreadType is! NullType &&
!entry.isNullAware) {
keyError = inferrer.helper.buildProblem(
messageNullableSpreadError, entry.expression.fileOffset, 1);
@@ -5002,7 +5002,7 @@
ExpressionInferenceResult visitNullLiteral(
NullLiteral node, DartType typeContext) {
inferrer.flowAnalysis.nullLiteral(node);
- return new ExpressionInferenceResult(inferrer.coreTypes.nullType, node);
+ return new ExpressionInferenceResult(const NullType(), node);
}
@override
@@ -5247,7 +5247,7 @@
node.expression = expressionResult.expression..parent = node;
inferredType = expressionResult.inferredType;
} else {
- inferredType = inferrer.coreTypes.nullType;
+ inferredType = const NullType();
}
closureContext.handleReturn(inferrer, node, inferredType, node.isArrow);
inferrer.flowAnalysis.handleExit();
@@ -5483,8 +5483,7 @@
DartType receiverType = inferrer.classHierarchy.getTypeAsInstanceOf(
inferrer.thisType,
inferrer.thisType.classNode.supertype.classNode,
- inferrer.library.library,
- inferrer.coreTypes);
+ inferrer.library.library);
ObjectAccessTarget writeTarget = inferrer.findInterfaceMember(
receiverType, node.name, node.fileOffset,
diff --git a/pkg/front_end/lib/src/fasta/kernel/invalid_type.dart b/pkg/front_end/lib/src/fasta/kernel/invalid_type.dart
index d6bbd9a..fd05fdb 100644
--- a/pkg/front_end/lib/src/fasta/kernel/invalid_type.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/invalid_type.dart
@@ -57,6 +57,9 @@
false;
@override
+ bool visitNullType(NullType node, Set<TypedefType> visitedTypedefs) => false;
+
+ @override
bool visitBottomType(BottomType node, Set<TypedefType> visitedTypedefs) =>
false;
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index afa72c8..a1167d5 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -340,10 +340,6 @@
await loader.buildOutlines();
loader.createTypeInferenceEngine();
loader.coreLibrary.becomeCoreLibrary();
- dynamicType.bind(
- loader.coreLibrary.lookupLocalMember("dynamic", required: true));
- bottomType
- .bind(loader.coreLibrary.lookupLocalMember("Never", required: true));
loader.resolveParts();
loader.computeLibraryScopes();
setupTopAndBottomTypes();
@@ -844,11 +840,13 @@
void setupTopAndBottomTypes() {
objectType
.bind(loader.coreLibrary.lookupLocalMember("Object", required: true));
-
+ dynamicType
+ .bind(loader.coreLibrary.lookupLocalMember("dynamic", required: true));
ClassBuilder nullClassBuilder =
loader.coreLibrary.lookupLocalMember("Null", required: true);
- nullClassBuilder.isNullClass = true;
- nullType.bind(nullClassBuilder);
+ nullType.bind(nullClassBuilder..isNullClass = true);
+ bottomType
+ .bind(loader.coreLibrary.lookupLocalMember("Never", required: true));
}
void computeCoreTypes() {
diff --git a/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart b/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
index 9143dcb..1fd20cd 100644
--- a/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
@@ -14,6 +14,7 @@
InvalidType,
NamedType,
NeverType,
+ NullType,
TypeParameter,
TypeParameterType,
TypedefType,
@@ -1021,6 +1022,8 @@
bool visitNeverType(NeverType node) => false;
+ bool visitNullType(NullType node) => false;
+
bool visitInterfaceType(InterfaceType node) {
return anyTypeVariables(node.typeArguments);
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart b/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart
index 28ac4f2..a02abb4 100644
--- a/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart
@@ -21,6 +21,7 @@
Library,
NamedType,
NeverType,
+ NullType,
TreeNode,
TypeParameter,
TypeParameterType,
@@ -36,6 +37,7 @@
import '../builder/library_builder.dart';
import '../builder/named_type_builder.dart';
import '../builder/never_type_declaration_builder.dart';
+import '../builder/null_type_declaration_builder.dart';
import '../builder/nullability_builder.dart';
import '../builder/type_builder.dart';
import '../builder/type_variable_builder.dart';
@@ -101,6 +103,17 @@
}
@override
+ TypeBuilder visitNullType(NullType node) {
+ return new NamedTypeBuilder(
+ "Null",
+ new NullabilityBuilder.nullable(),
+ /* arguments = */ null,
+ /* fileUri = */ null,
+ /* charOffset = */ null)
+ ..bind(new NullTypeDeclarationBuilder(node, loader.coreLibrary, -1));
+ }
+
+ @override
TypeBuilder visitInterfaceType(InterfaceType node) {
ClassBuilder cls =
loader.computeClassBuilderFromTargetClass(node.classNode);
diff --git a/pkg/front_end/lib/src/fasta/kernel/type_labeler.dart b/pkg/front_end/lib/src/fasta/kernel/type_labeler.dart
index c4a6bc5..76a901f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/type_labeler.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/type_labeler.dart
@@ -26,6 +26,7 @@
MapConstant,
NeverType,
NullConstant,
+ NullType,
Nullability,
PartialInstantiationConstant,
Procedure,
@@ -158,6 +159,10 @@
addNullability(node.declaredNullability);
}
+ void visitNullType(NullType node) {
+ result.add("Null");
+ }
+
void visitDynamicType(DynamicType node) {
result.add("dynamic");
}
@@ -255,12 +260,6 @@
}
result.add(">");
}
- if (classNode.name == 'Null' &&
- classNode.enclosingLibrary.importUri.scheme == 'dart' &&
- classNode.enclosingLibrary.importUri.path == 'core') {
- // Don't print nullability on `Null`.
- return;
- }
addNullability(node.nullability);
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/verifier.dart b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
index 3bc4b4c..68fdfc8 100644
--- a/pkg/front_end/lib/src/fasta/kernel/verifier.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
@@ -256,15 +256,7 @@
exitTreeNode(node);
}
- bool isNullType(DartType node) {
- if (node is InterfaceType) {
- Uri importUri = node.classNode.enclosingLibrary.importUri;
- return node.classNode.name == "Null" &&
- importUri.scheme == "dart" &&
- importUri.path == "core";
- }
- return false;
- }
+ bool isNullType(DartType node) => node is NullType;
bool isObjectClass(Class c) {
return c.name == "Object" &&
diff --git a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
index 710d78e..31186d8 100644
--- a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
@@ -429,7 +429,7 @@
Library library = libraryBuilder.library;
final DartType bottomType = library.isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : typeEnvironment.nullType;
+ : const NullType();
Set<TypeArgumentIssue> issues = {};
issues.addAll(findTypeArgumentIssues(
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index f34bede..e4d81e4 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -38,6 +38,7 @@
Name,
NeverType,
NonNullableByDefaultCompiledMode,
+ NullType,
Nullability,
Procedure,
ProcedureKind,
@@ -1379,6 +1380,12 @@
-1);
}
+ void addSyntheticDeclarationOfNull() {
+ // TODO(dmitryas): Uncomment the following when the Null class is removed
+ // from the SDK.
+ //addBuilder("Null", new NullTypeBuilder(const NullType(), this, -1), -1);
+ }
+
TypeBuilder addNamedType(Object name, NullabilityBuilder nullabilityBuilder,
List<TypeBuilder> arguments, int charOffset) {
return addType(
@@ -3340,7 +3347,7 @@
List<TypeParameter> typeParameters, Uri fileUri) {
final DartType bottomType = library.isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : typeEnvironment.nullType;
+ : const NullType();
// Check in bounds of own type variables.
for (TypeParameter parameter in typeParameters) {
@@ -3426,7 +3433,7 @@
if (returnType != null) {
final DartType bottomType = isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : typeEnvironment.nullType;
+ : const NullType();
Set<TypeArgumentIssue> issues = {};
issues.addAll(findTypeArgumentIssues(library, returnType, typeEnvironment,
SubtypeCheckMode.ignoringNullabilities, bottomType,
@@ -3536,7 +3543,7 @@
{bool inferred, bool allowSuperBounded = true}) {
final DartType bottomType = isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : typeEnvironment.nullType;
+ : const NullType();
Set<TypeArgumentIssue> issues = {};
issues.addAll(findTypeArgumentIssues(library, type, typeEnvironment,
SubtypeCheckMode.ignoringNullabilities, bottomType,
@@ -3603,7 +3610,7 @@
final DartType bottomType = isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : typeEnvironment.nullType;
+ : const NullType();
Set<TypeArgumentIssue> issues = {};
issues.addAll(findTypeArgumentIssuesForInvocation(
library,
@@ -3690,7 +3697,7 @@
final DartType bottomType = isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : typeEnvironment.nullType;
+ : const NullType();
Set<TypeArgumentIssue> issues = {};
issues.addAll(findTypeArgumentIssuesForInvocation(
library,
diff --git a/pkg/front_end/lib/src/fasta/type_inference/closure_context.dart b/pkg/front_end/lib/src/fasta/type_inference/closure_context.dart
index 9ca2af0..b646152 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/closure_context.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/closure_context.dart
@@ -151,7 +151,7 @@
// dynamic, or Null.
if (returnType is VoidType ||
returnType is DynamicType ||
- returnType == inferrer.coreTypes.nullType) {
+ returnType is NullType) {
// Valid return;
} else {
statement.expression = inferrer.helper.wrapInProblem(
@@ -172,7 +172,7 @@
if (returnType is VoidType &&
!(expressionType is VoidType ||
expressionType is DynamicType ||
- expressionType == inferrer.coreTypes.nullType)) {
+ expressionType is NullType)) {
// It is a compile-time error if s is `return e;`, T is void, and S is
// neither void, dynamic, nor Null.
statement.expression = inferrer.helper.wrapInProblem(
@@ -213,7 +213,7 @@
// `return;` is a valid return if T is void, dynamic, or Null.
if (returnType is VoidType ||
returnType is DynamicType ||
- returnType == inferrer.coreTypes.nullType) {
+ returnType is NullType) {
// Valid return;
} else {
statement.expression = inferrer.helper.wrapInProblem(
@@ -238,7 +238,7 @@
} else if (returnType is VoidType &&
expressionType is! VoidType &&
expressionType is! DynamicType &&
- expressionType != inferrer.coreTypes.nullType) {
+ expressionType is! NullType) {
// Invalid if T is void and S is not void, dynamic, or Null
statement.expression = inferrer.helper.wrapInProblem(
statement.expression,
@@ -249,7 +249,7 @@
} else if (expressionType is VoidType &&
returnType is! VoidType &&
returnType is! DynamicType &&
- returnType != inferrer.coreTypes.nullType) {
+ returnType is! NullType) {
// Invalid if S is void and T is not void, dynamic, or Null.
statement.expression = inferrer.helper.wrapInProblem(
statement.expression,
@@ -302,7 +302,7 @@
if (inferrer.isNonNullableByDefault) {
if (hasImplicitReturn) {
// No explicit returns we have an implicit `return null`.
- actualReturnedType = inferrer.typeSchemaEnvironment.nullType;
+ actualReturnedType = const NullType();
} else {
// No explicit return and the function doesn't complete normally; that
// is, it throws.
@@ -368,11 +368,11 @@
}
} else if (hasImplicitReturn) {
// No explicit returns we have an implicit `return null`.
- actualReturnedType = inferrer.typeSchemaEnvironment.nullType;
+ actualReturnedType = const NullType();
} else {
// No explicit return and the function doesn't complete normally; that
// is, it throws.
- actualReturnedType = inferrer.typeSchemaEnvironment.nullType;
+ actualReturnedType = const NullType();
}
if (!inferrer.typeSchemaEnvironment.isSubtypeOf(actualReturnedType,
@@ -493,7 +493,7 @@
// dynamic, or Null.
if (futureValueType is VoidType ||
futureValueType is DynamicType ||
- futureValueType == inferrer.coreTypes.nullType) {
+ futureValueType is NullType) {
// Valid return;
} else {
statement.expression = inferrer.helper.wrapInProblem(
@@ -518,7 +518,7 @@
if (futureValueType is VoidType &&
!(flattenedExpressionType is VoidType ||
flattenedExpressionType is DynamicType ||
- flattenedExpressionType == inferrer.coreTypes.nullType)) {
+ flattenedExpressionType is NullType)) {
// It is a compile-time error if s is `return e;`, T_v is void, and
// flatten(S) is neither void, dynamic, Null.
statement.expression = inferrer.helper.wrapInProblem(
@@ -571,7 +571,7 @@
// `return;` is a valid return if flatten(T) is void, dynamic, or Null.
if (flattenedReturnType is VoidType ||
flattenedReturnType is DynamicType ||
- flattenedReturnType == inferrer.coreTypes.nullType) {
+ flattenedReturnType is NullType) {
// Valid return;
} else {
statement.expression = inferrer.helper.wrapInProblem(
@@ -606,7 +606,7 @@
} else if (returnType is VoidType &&
flattenedExpressionType is! VoidType &&
flattenedExpressionType is! DynamicType &&
- flattenedExpressionType != inferrer.coreTypes.nullType) {
+ flattenedExpressionType is! NullType) {
// Invalid if T is void and flatten(S) is not void, dynamic, or Null.
statement.expression = inferrer.helper.wrapInProblem(
statement.expression,
@@ -617,7 +617,7 @@
} else if (flattenedExpressionType is VoidType &&
flattenedReturnType is! VoidType &&
flattenedReturnType is! DynamicType &&
- flattenedReturnType != inferrer.coreTypes.nullType) {
+ flattenedReturnType is! NullType) {
// Invalid if flatten(S) is void and flatten(T) is not void, dynamic,
// or Null.
statement.expression = inferrer.helper.wrapInProblem(
@@ -695,7 +695,7 @@
if (inferrer.isNonNullableByDefault) {
if (hasImplicitReturn) {
// No explicit returns we have an implicit `return null`.
- inferredType = inferrer.typeSchemaEnvironment.nullType;
+ inferredType = const NullType();
} else {
// No explicit return and the function doesn't complete normally; that
// is, it throws.
@@ -761,11 +761,11 @@
}
} else if (hasImplicitReturn) {
// No explicit returns we have an implicit `return null`.
- inferredType = inferrer.typeSchemaEnvironment.nullType;
+ inferredType = const NullType();
} else {
// No explicit return and the function doesn't complete normally;
// that is, it throws.
- inferredType = inferrer.typeSchemaEnvironment.nullType;
+ inferredType = const NullType();
}
inferredType =
inferrer.wrapFutureType(inferredType, inferrer.library.nonNullable);
@@ -920,14 +920,14 @@
}
} else if (hasImplicitReturn) {
// No explicit returns we have an implicit `return null`.
- inferredElementType = inferrer.typeSchemaEnvironment.nullType;
+ inferredElementType = const NullType();
} else {
// No explicit return and the function doesn't complete normally; that is,
// it throws.
if (inferrer.isNonNullableByDefault) {
inferredElementType = new NeverType(inferrer.library.nonNullable);
} else {
- inferredElementType = inferrer.typeSchemaEnvironment.nullType;
+ inferredElementType = const NullType();
}
}
@@ -1045,14 +1045,14 @@
}
} else if (hasImplicitReturn) {
// No explicit returns we have an implicit `return null`.
- inferredElementType = inferrer.typeSchemaEnvironment.nullType;
+ inferredElementType = const NullType();
} else {
// No explicit return and the function doesn't complete normally; that is,
// it throws.
if (inferrer.isNonNullableByDefault) {
inferredElementType = new NeverType(inferrer.library.nonNullable);
} else {
- inferredElementType = inferrer.typeSchemaEnvironment.nullType;
+ inferredElementType = const NullType();
}
}
diff --git a/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart b/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart
index 572423e..8710222 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart
@@ -23,7 +23,7 @@
}
DartType factor_RS = factorType(typeEnvironment, R, S);
if (typeEnvironment.isSubtypeOf(
- typeEnvironment.nullType, S, SubtypeCheckMode.withNullabilities)) {
+ const NullType(), S, SubtypeCheckMode.withNullabilities)) {
return factor_RS;
} else {
return factor_RS.withDeclaredNullability(Nullability.nullable);
@@ -36,7 +36,7 @@
DartType R = T.withDeclaredNullability(Nullability.nonNullable);
DartType factor_RS = factorType(typeEnvironment, R, S);
if (typeEnvironment.isSubtypeOf(
- typeEnvironment.nullType, S, SubtypeCheckMode.withNullabilities)) {
+ const NullType(), S, SubtypeCheckMode.withNullabilities)) {
return factor_RS;
} else {
return factor_RS.withDeclaredNullability(Nullability.legacy);
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_constraint_gatherer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_constraint_gatherer.dart
index 133297c..4b5d0f8 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_constraint_gatherer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_constraint_gatherer.dart
@@ -293,7 +293,7 @@
// it return `true` for both Null and bottom types? Revisit this once
// enough functionality is implemented that we can compare the behavior with
// the old analyzer-based implementation.
- return type == coreTypes.nullType;
+ return type is NullType;
}
/// Matches [p] against [q] as a subtype against supertype.
@@ -405,9 +405,7 @@
// Only if P0 is a subtype match for Q under constraint set C.
if (isLegacyTypeConstructorApplication(p, _currentLibrary)) {
return _isNullabilityAwareSubtypeMatch(
- computeTypeWithoutNullabilityMarker(p, _currentLibrary,
- nullType: coreTypes.nullType),
- q,
+ computeTypeWithoutNullabilityMarker(p, _currentLibrary), q,
constrainSupertype: constrainSupertype);
}
@@ -422,9 +420,7 @@
if ((p is DynamicType || p is VoidType) &&
_isNullabilityAwareSubtypeMatch(
- p,
- computeTypeWithoutNullabilityMarker(q, _currentLibrary,
- nullType: coreTypes.nullType),
+ p, computeTypeWithoutNullabilityMarker(q, _currentLibrary),
constrainSupertype: constrainSupertype)) {
return true;
}
@@ -487,17 +483,14 @@
// Or if P is a subtype match for Q0 under non-empty constraint set C.
// Or if P is a subtype match for Null under constraint set C.
// Or if P is a subtype match for Q0 under empty constraint set C.
- if (isNullableTypeConstructorApplication(q, nullType: coreTypes.nullType)) {
+ if (isNullableTypeConstructorApplication(q)) {
final int baseConstraintCount = _protoConstraints.length;
- final DartType rawP = computeTypeWithoutNullabilityMarker(
- p, _currentLibrary,
- nullType: coreTypes.nullType);
- final DartType rawQ = computeTypeWithoutNullabilityMarker(
- q, _currentLibrary,
- nullType: coreTypes.nullType);
+ final DartType rawP =
+ computeTypeWithoutNullabilityMarker(p, _currentLibrary);
+ final DartType rawQ =
+ computeTypeWithoutNullabilityMarker(q, _currentLibrary);
- if (isNullableTypeConstructorApplication(p,
- nullType: coreTypes.nullType) &&
+ if (isNullableTypeConstructorApplication(p) &&
_isNullabilityAwareSubtypeMatch(rawP, rawQ,
constrainSupertype: constrainSupertype)) {
return true;
@@ -521,7 +514,7 @@
}
_protoConstraints.length = baseConstraintCount;
- if (_isNullabilityAwareSubtypeMatch(p, coreTypes.nullType,
+ if (_isNullabilityAwareSubtypeMatch(p, const NullType(),
constrainSupertype: constrainSupertype)) {
return true;
}
@@ -553,14 +546,12 @@
//
// If P0 is a subtype match for Q under constraint set C1.
// And if Null is a subtype match for Q under constraint set C2.
- if (isNullableTypeConstructorApplication(p, nullType: coreTypes.nullType)) {
+ if (isNullableTypeConstructorApplication(p)) {
final int baseConstraintCount = _protoConstraints.length;
if (_isNullabilityAwareSubtypeMatch(
- computeTypeWithoutNullabilityMarker(p, _currentLibrary,
- nullType: coreTypes.nullType),
- q,
+ computeTypeWithoutNullabilityMarker(p, _currentLibrary), q,
constrainSupertype: constrainSupertype) &&
- _isNullabilityAwareSubtypeMatch(coreTypes.nullType, q,
+ _isNullabilityAwareSubtypeMatch(const NullType(), q,
constrainSupertype: constrainSupertype)) {
return true;
}
@@ -590,7 +581,7 @@
// If P is Null, then the match holds under no constraints:
//
// Only if Q is nullable.
- if (p == coreTypes.nullType) {
+ if (p is NullType) {
return q.nullability == Nullability.nullable;
}
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart
index 7e46518..1a58eb6 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart
@@ -17,6 +17,7 @@
Member,
NamedType,
NeverType,
+ NullType,
Nullability,
Statement,
TreeNode,
@@ -270,7 +271,7 @@
} else if (isSubtypeOf(
type, typeEnvironment.coreTypes.objectNonNullableRawType)) {
return TypeClassification.nonNullable;
- } else if (isSubtypeOf(type, typeEnvironment.coreTypes.nullType)) {
+ } else if (isSubtypeOf(type, const NullType())) {
return TypeClassification.nullOrEquivalent;
} else {
return TypeClassification.potentiallyNullable;
@@ -308,7 +309,7 @@
type.parameter, type.declaredNullability, bound);
}
return type;
- } else if (type == typeEnvironment.nullType) {
+ } else if (type is NullType) {
return const NeverType(Nullability.nonNullable);
}
return type.withDeclaredNullability(Nullability.nonNullable);
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 8207e58..682b6ef 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -240,7 +240,7 @@
DartType get bottomType => isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : engine.coreTypes.nullType;
+ : const NullType();
DartType computeGreatestClosure(DartType type) {
return greatestClosure(type, const DynamicType(), bottomType);
@@ -256,14 +256,14 @@
}
DartType computeNullable(DartType type) {
- if (type == coreTypes.nullType || type is NeverType) {
- return coreTypes.nullType;
+ if (type is NullType || type is NeverType) {
+ return const NullType();
}
return type.withDeclaredNullability(library.nullable);
}
DartType computeNonNullable(DartType type) {
- if (type == coreTypes.nullType) {
+ if (type is NullType) {
return isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
: type;
@@ -734,7 +734,7 @@
}
bool isNull(DartType type) {
- return type is InterfaceType && type.classNode == coreTypes.nullClass;
+ return type is NullType;
}
/// Computes the type arguments for an access to an extension instance member
@@ -976,7 +976,7 @@
case Nullability.nullable:
case Nullability.legacy:
// Never? and Never* are equivalent to Null.
- return findInterfaceMember(coreTypes.nullType, name, fileOffset);
+ return findInterfaceMember(const NullType(), name, fileOffset);
case Nullability.undetermined:
return internalProblem(
templateInternalProblemUnsupportedNullability.withArguments(
@@ -1570,9 +1570,7 @@
assert(isTopLevel, "No initializer type provided.");
return null;
}
- if (initializerType is BottomType ||
- (initializerType is InterfaceType &&
- initializerType.classNode == coreTypes.nullClass)) {
+ if (initializerType is BottomType || initializerType is NullType) {
// If the initializer type is Null or bottom, the inferred type is
// dynamic.
// TODO(paulberry): this rule is inherited from analyzer behavior but is
@@ -2260,7 +2258,7 @@
substitution.substituteType(formalTypesFromContext[i]));
if (typeSchemaEnvironment.isSubtypeOf(
inferredType,
- coreTypes.nullType,
+ const NullType(),
isNonNullableByDefault
? SubtypeCheckMode.withNullabilities
: SubtypeCheckMode.ignoringNullabilities)) {
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_schema_elimination.dart b/pkg/front_end/lib/src/fasta/type_inference/type_schema_elimination.dart
index 6401112..e6338be 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_schema_elimination.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_schema_elimination.dart
@@ -80,10 +80,7 @@
topType.classNode.enclosingLibrary.importUri.path == "core" &&
topType.classNode.name == "Object");
assert(bottomType == const NeverType(Nullability.nonNullable) ||
- bottomType is InterfaceType &&
- bottomType.classNode.enclosingLibrary.importUri.scheme == "dart" &&
- bottomType.classNode.enclosingLibrary.importUri.path == "core" &&
- bottomType.classNode.name == "Null");
+ bottomType is NullType);
_TypeSchemaEliminationVisitor visitor =
new _TypeSchemaEliminationVisitor(isLeastClosure, topType, bottomType);
DartType result = schema.accept(visitor);
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart b/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart
index d467fb7..59cbd3c 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart
@@ -267,7 +267,7 @@
returnContextType = new TypeVariableEliminator(
clientLibrary.isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : nullType,
+ : const NullType(),
clientLibrary.isNonNullableByDefault
? objectNullableRawType
: objectLegacyRawType)
@@ -431,7 +431,7 @@
TypeConstraint constraint, DartType topType, DartType bottomType,
{bool grounded: false, bool isContravariant: false}) {
assert(bottomType == const NeverType(Nullability.nonNullable) ||
- bottomType == coreTypes.nullType);
+ bottomType == const NullType());
if (!isContravariant) {
// Prefer the known bound, if any.
if (isKnown(constraint.lower)) return constraint.lower;
@@ -504,7 +504,7 @@
: const DynamicType(),
clientLibrary.isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : nullType,
+ : const NullType(),
grounded: true,
isContravariant: isContravariant);
}
@@ -518,7 +518,7 @@
: const DynamicType(),
clientLibrary.isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : nullType);
+ : const NullType());
if (!isKnown(t)) {
return t;
}
@@ -540,7 +540,7 @@
: const DynamicType(),
clientLibrary.isNonNullableByDefault
? const NeverType(Nullability.nonNullable)
- : nullType);
+ : const NullType());
}
return t;
}
diff --git a/pkg/front_end/lib/src/testing/id_testing_utils.dart b/pkg/front_end/lib/src/testing/id_testing_utils.dart
index 2d8e634..1b71339 100644
--- a/pkg/front_end/lib/src/testing/id_testing_utils.dart
+++ b/pkg/front_end/lib/src/testing/id_testing_utils.dart
@@ -467,6 +467,10 @@
}
}
+ void visitNullType(NullType node) {
+ sb.write('Null');
+ }
+
void visitInterfaceType(InterfaceType node) {
sb.write(node.classNode.name);
if (node.typeArguments.isNotEmpty) {
@@ -570,11 +574,7 @@
}
/// Returns `true` if [type] is `Null` from `dart:core`.
-bool isNull(DartType type) {
- return type is InterfaceType &&
- type.classNode.name == 'Null' &&
- '${type.classNode.enclosingLibrary.importUri}' == 'dart:core';
-}
+bool isNull(DartType type) => type is NullType;
/// Returns a textual representation of the [typeParameter] to be used in
/// testing.
diff --git a/pkg/front_end/test/fasta/type_inference/factor_type_test.dart b/pkg/front_end/test/fasta/type_inference/factor_type_test.dart
index 4310dac..f68d6d5 100644
--- a/pkg/front_end/test/fasta/type_inference/factor_type_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/factor_type_test.dart
@@ -63,7 +63,7 @@
DartType get intStar => coreTypes.intLegacyRawType;
@override
- DartType get nullNone => coreTypes.nullType;
+ DartType get nullNone => const NullType();
@override
DartType get numNone => coreTypes.numNonNullableRawType;
diff --git a/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_nnbd_test.dart b/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_nnbd_test.dart
index 884c0ce..d070369 100644
--- a/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_nnbd_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_nnbd_test.dart
@@ -81,8 +81,6 @@
Class get mapClass => coreTypes.mapClass;
- InterfaceType get nullType => coreTypes.nullType;
-
Class get objectClass => coreTypes.objectClass;
InterfaceType get P => coreTypes.legacyRawType(classP);
@@ -280,8 +278,8 @@
}
void test_null_subtype_any() {
- _checkConstraintsLower(T1, nullType, testLib, ['dart.core::Null? <: T1']);
- _checkConstraintsUpper(nullType, Q, testLib, []);
+ _checkConstraintsLower(T1, new NullType(), testLib, ['Null <: T1']);
+ _checkConstraintsUpper(new NullType(), Q, testLib, []);
}
void test_parameter_subtype_any() {
diff --git a/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_test.dart b/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_test.dart
index cb0ec2f..ebdb227 100644
--- a/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/type_constraint_gatherer_test.dart
@@ -63,8 +63,6 @@
Class get mapClass => coreTypes.mapClass;
- InterfaceType get nullType => coreTypes.nullType;
-
Class get objectClass => coreTypes.objectClass;
InterfaceType get objectType => coreTypes.objectLegacyRawType;
@@ -218,8 +216,8 @@
}
void test_null_subtype_any() {
- _checkConstraintsLower(T1, nullType, testLib, ['dart.core::Null? <: T1']);
- _checkConstraintsUpper(nullType, Q, testLib, []);
+ _checkConstraintsLower(T1, new NullType(), testLib, ['Null <: T1']);
+ _checkConstraintsUpper(new NullType(), Q, testLib, []);
}
void test_parameter_subtype_any() {
diff --git a/pkg/front_end/test/fasta/type_inference/type_schema_elimination_nnbd_test.dart b/pkg/front_end/test/fasta/type_inference/type_schema_elimination_nnbd_test.dart
index cc03f2a..dcad472 100644
--- a/pkg/front_end/test/fasta/type_inference/type_schema_elimination_nnbd_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/type_schema_elimination_nnbd_test.dart
@@ -24,7 +24,7 @@
DartType get dynamicType => const DynamicType();
- DartType get nullType => coreTypes.nullType;
+ DartType get nullType => new NullType();
DartType greatestClosure(DartType schema) {
return typeSchemaElimination.greatestClosure(
@@ -140,19 +140,11 @@
final Class listClass = new Class(name: 'List');
@override
- final Class nullClass = new Class(name: 'Null');
-
- @override
final Class objectClass = new Class(name: 'Object');
- @override
- InterfaceType nullType;
-
_MockCoreTypes() {
- nullType = new InterfaceType(
- nullClass, Nullability.nullable, const <DynamicType>[]);
new Library(Uri.parse('dart:core'),
- name: 'dart.core', classes: [listClass, nullClass, objectClass]);
+ name: 'dart.core', classes: [listClass, objectClass]);
}
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
diff --git a/pkg/front_end/test/fasta/type_inference/type_schema_elimination_test.dart b/pkg/front_end/test/fasta/type_inference/type_schema_elimination_test.dart
index d7cf9e6..a4c8ee3 100644
--- a/pkg/front_end/test/fasta/type_inference/type_schema_elimination_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/type_schema_elimination_test.dart
@@ -24,16 +24,16 @@
DartType get dynamicType => const DynamicType();
- DartType get nullType => coreTypes.nullType;
-
DartType get objectType => coreTypes.objectLegacyRawType;
DartType greatestClosure(DartType schema) {
- return typeSchemaElimination.greatestClosure(schema, dynamicType, nullType);
+ return typeSchemaElimination.greatestClosure(
+ schema, dynamicType, const NullType());
}
DartType leastClosure(DartType schema) {
- return typeSchemaElimination.leastClosure(schema, dynamicType, nullType);
+ return typeSchemaElimination.leastClosure(
+ schema, dynamicType, const NullType());
}
void test_greatestClosure_contravariant() {
@@ -41,12 +41,12 @@
greatestClosure(new FunctionType(
[unknownType], dynamicType, Nullability.legacy))
.leakingDebugToString(),
- '(dart.core::Null?) →* dynamic');
+ '(Null) →* dynamic');
expect(
greatestClosure(new FunctionType([], dynamicType, Nullability.legacy,
namedParameters: [new NamedType('foo', unknownType)]))
.leakingDebugToString(),
- '({foo: dart.core::Null?}) →* dynamic');
+ '({foo: Null}) →* dynamic');
}
void test_greatestClosure_contravariant_contravariant() {
@@ -78,8 +78,7 @@
new NamedType('a', unknownType),
new NamedType('b', unknownType)
])).leakingDebugToString(),
- '(dart.core::Null?, dart.core::Null?, {a: dart.core::Null?, '
- 'b: dart.core::Null?}) →* dynamic');
+ '(Null, Null, {a: Null, b: Null}) →* dynamic');
}
void test_greatestClosure_simple() {
@@ -105,19 +104,19 @@
new FunctionType([unknownType], dynamicType, Nullability.legacy)
], dynamicType, Nullability.legacy))
.leakingDebugToString(),
- '((dart.core::Null?) →* dynamic) →* dynamic');
+ '((Null) →* dynamic) →* dynamic');
}
void test_leastClosure_covariant() {
expect(
leastClosure(new FunctionType([], unknownType, Nullability.legacy))
.leakingDebugToString(),
- '() →* dart.core::Null?');
+ '() →* Null');
expect(
leastClosure(new InterfaceType(
coreTypes.listClass, Nullability.legacy, [unknownType]))
.leakingDebugToString(),
- 'dart.core::List<dart.core::Null?>*');
+ 'dart.core::List<Null>*');
}
void test_leastClosure_function_multipleUnknown() {
@@ -128,12 +127,11 @@
new NamedType('a', unknownType),
new NamedType('b', unknownType)
])).leakingDebugToString(),
- '(dynamic, dynamic, {a: dynamic, b: dynamic}) →* dart.core::Null?');
+ '(dynamic, dynamic, {a: dynamic, b: dynamic}) →* Null');
}
void test_leastClosure_simple() {
- expect(
- leastClosure(unknownType).leakingDebugToString(), 'dart.core::Null?');
+ expect(leastClosure(unknownType).leakingDebugToString(), 'Null');
}
}
@@ -142,19 +140,11 @@
final Class listClass = new Class(name: 'List');
@override
- final Class nullClass = new Class(name: 'Null');
-
- @override
final Class objectClass = new Class(name: 'Object');
- @override
- InterfaceType nullType;
-
_MockCoreTypes() {
- nullType = new InterfaceType(
- nullClass, Nullability.nullable, const <DynamicType>[]);
new Library(Uri.parse('dart:core'),
- name: 'dart.core', classes: [listClass, nullClass, objectClass]);
+ name: 'dart.core', classes: [listClass, objectClass]);
}
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
diff --git a/pkg/front_end/test/fasta/type_inference/type_schema_environment_nnbd_test.dart b/pkg/front_end/test/fasta/type_inference/type_schema_environment_nnbd_test.dart
index f7b5496..9e5df47 100644
--- a/pkg/front_end/test/fasta/type_inference/type_schema_environment_nnbd_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/type_schema_environment_nnbd_test.dart
@@ -658,7 +658,7 @@
[
coreTypes.intNonNullableRawType,
coreTypes.doubleNonNullableRawType,
- coreTypes.nullType
+ const NullType()
],
null,
inferredTypes,
diff --git a/pkg/front_end/test/fasta/type_inference/type_schema_environment_test.dart b/pkg/front_end/test/fasta/type_inference/type_schema_environment_test.dart
index aedad18..24ef0a4 100644
--- a/pkg/front_end/test/fasta/type_inference/type_schema_environment_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/type_schema_environment_test.dart
@@ -50,15 +50,13 @@
Class get mapClass => coreTypes.mapClass;
- InterfaceType get nullType => coreTypes.nullType;
-
InterfaceType get numType => coreTypes.numLegacyRawType;
Class get objectClass => coreTypes.objectClass;
InterfaceType get objectType => coreTypes.objectLegacyRawType;
- DartType get bottomType => nullType;
+ DartType get bottomType => const NullType();
DartType get topType => const DynamicType();
@@ -672,7 +670,7 @@
topType,
bottomType,
grounded: true),
- new InterfaceType(A.classNode, Nullability.legacy, [nullType]));
+ new InterfaceType(A.classNode, Nullability.legacy, [const NullType()]));
// Solve(? <: T <: A) => A
expect(
env.solveTypeConstraint(_makeConstraint(upper: A), topType, bottomType),
@@ -776,7 +774,7 @@
topType,
bottomType,
grounded: true),
- new InterfaceType(B.classNode, Nullability.legacy, [nullType]));
+ new InterfaceType(B.classNode, Nullability.legacy, [const NullType()]));
}
void test_typeConstraint_default() {
diff --git a/pkg/front_end/test/id_tests/inheritance_test.dart b/pkg/front_end/test/id_tests/inheritance_test.dart
index 2089d9a..f39b8d2 100644
--- a/pkg/front_end/test/id_tests/inheritance_test.dart
+++ b/pkg/front_end/test/id_tests/inheritance_test.dart
@@ -125,8 +125,7 @@
InterfaceType supertype = _hierarchy.getTypeAsInstanceOf(
_coreTypes.thisInterfaceType(node, node.enclosingLibrary.nonNullable),
member.enclosingClass,
- node.enclosingLibrary,
- _coreTypes);
+ node.enclosingLibrary);
Substitution substitution = Substitution.fromInterfaceType(supertype);
DartType type;
if (member is Procedure) {
diff --git a/pkg/front_end/test/incremental_compiler_leak_test.dart b/pkg/front_end/test/incremental_compiler_leak_test.dart
index e526d98..7d3fcd7 100644
--- a/pkg/front_end/test/incremental_compiler_leak_test.dart
+++ b/pkg/front_end/test/incremental_compiler_leak_test.dart
@@ -192,6 +192,8 @@
if (classDetails.name == "ConstructorScope") return true;
if (classDetails.name == "ScopeBuilder") return true;
if (classDetails.name == "ConstructorScopeBuilder") return true;
+ if (classDetails.name == "NullTypeDeclarationBuilder") return true;
+ if (classDetails.name == "NullabilityBuilder") return true;
return false;
} else if (uriString.startsWith("package:kernel/")) {
diff --git a/pkg/front_end/test/spell_checking_list_code.txt b/pkg/front_end/test/spell_checking_list_code.txt
index 20db3c3..d910513 100644
--- a/pkg/front_end/test/spell_checking_list_code.txt
+++ b/pkg/front_end/test/spell_checking_list_code.txt
@@ -1213,6 +1213,7 @@
unification
unifier
unify
+uninstantiable
unions
uniqueness
unittest
diff --git a/pkg/front_end/test/spell_checking_list_common.txt b/pkg/front_end/test/spell_checking_list_common.txt
index d9b9520..5255e56 100644
--- a/pkg/front_end/test/spell_checking_list_common.txt
+++ b/pkg/front_end/test/spell_checking_list_common.txt
@@ -434,6 +434,7 @@
checking
checkpoints
checks
+chian
child
children
choice
@@ -863,6 +864,7 @@
disable
disabled
disabling
+disallowed
disambiguate
disambiguated
disappear
@@ -2913,6 +2915,7 @@
suppress
suppressed
sure
+surface
surrogate
surrogates
surrounding
diff --git a/pkg/front_end/test/text_representation/data/types_opt_out.dart b/pkg/front_end/test/text_representation/data/types_opt_out.dart
index b302015..169f717 100644
--- a/pkg/front_end/test/text_representation/data/types_opt_out.dart
+++ b/pkg/front_end/test/text_representation/data/types_opt_out.dart
@@ -24,7 +24,7 @@
String /*normal|limited.String**/ /*verbose.dart.core::String**/ o) {}
voidType(void /*void*/ o) {}
dynamicType(dynamic /*dynamic*/ o) {}
-neverType(Never /*normal|limited.Null?*/ /*verbose.dart.core::Null?*/ o) {}
+neverType(Never /*normal|limited.Null*/ /*verbose.Null*/ o) {}
objectType(
Object /*normal|limited.Object**/ /*verbose.dart.core::Object**/ o) {}
genericType1(
diff --git a/pkg/front_end/testcases/agnostic/as.dart.outline.expect b/pkg/front_end/testcases/agnostic/as.dart.outline.expect
index b6d34a3..7b8b8ac 100644
--- a/pkg/front_end/testcases/agnostic/as.dart.outline.expect
+++ b/pkg/front_end/testcases/agnostic/as.dart.outline.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-static const field core::List<core::int> a = const <core::Null?>[] as{ForNonNullableByDefault} core::List<core::int>;
+static const field core::List<core::int> a = const <Null>[] as{ForNonNullableByDefault} core::List<core::int>;
static const field core::List<core::int> b = const <core::int?>[] as{ForNonNullableByDefault} core::List<core::int>;
static method main() → void
;
Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///as.dart:5:17 -> ListConstant(const <Null?>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///as.dart:5:17 -> ListConstant(const <Null>[])
Evaluated: ListLiteral @ org-dartlang-testcase:///as.dart:6:17 -> ListConstant(const <int?>[])
Extra constant evaluation: evaluated: 4, effectively constant: 2
diff --git a/pkg/front_end/testcases/agnostic/as.dart.weak.expect b/pkg/front_end/testcases/agnostic/as.dart.weak.expect
index cc4ac88..f28c31a 100644
--- a/pkg/front_end/testcases/agnostic/as.dart.weak.expect
+++ b/pkg/front_end/testcases/agnostic/as.dart.weak.expect
@@ -7,6 +7,6 @@
static method main() → void {}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = <core::int*>[]
}
diff --git a/pkg/front_end/testcases/agnostic/as.dart.weak.transformed.expect b/pkg/front_end/testcases/agnostic/as.dart.weak.transformed.expect
index cc4ac88..f28c31a 100644
--- a/pkg/front_end/testcases/agnostic/as.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/agnostic/as.dart.weak.transformed.expect
@@ -7,6 +7,6 @@
static method main() → void {}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = <core::int*>[]
}
diff --git a/pkg/front_end/testcases/agnostic/is.dart.outline.expect b/pkg/front_end/testcases/agnostic/is.dart.outline.expect
index 0046b04..62c76b3 100644
--- a/pkg/front_end/testcases/agnostic/is.dart.outline.expect
+++ b/pkg/front_end/testcases/agnostic/is.dart.outline.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-static const field core::bool a = const <core::Null?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static const field core::bool a = const <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool b = const <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
static method main() → void
;
Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///is.dart:5:17 -> ListConstant(const <Null?>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///is.dart:5:17 -> ListConstant(const <Null>[])
Evaluated: ListLiteral @ org-dartlang-testcase:///is.dart:6:17 -> ListConstant(const <int?>[])
Extra constant evaluation: evaluated: 4, effectively constant: 2
diff --git a/pkg/front_end/testcases/expression/class_type_param_reference_arg_inferred.expression.yaml.expect b/pkg/front_end/testcases/expression/class_type_param_reference_arg_inferred.expression.yaml.expect
index 4842362..e5b3c04 100644
--- a/pkg/front_end/testcases/expression/class_type_param_reference_arg_inferred.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/class_type_param_reference_arg_inferred.expression.yaml.expect
@@ -1,6 +1,6 @@
Errors: {
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr(dynamic x) → dynamic
- return () → dart.core::Null? {
+ return () → Null {
x = main::id<dynamic>(x);
};
diff --git a/pkg/front_end/testcases/expression/class_type_param_reference_ctor_inferred.expression.yaml.expect b/pkg/front_end/testcases/expression/class_type_param_reference_ctor_inferred.expression.yaml.expect
index 5d5e32a..bbce9bb 100644
--- a/pkg/front_end/testcases/expression/class_type_param_reference_ctor_inferred.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/class_type_param_reference_ctor_inferred.expression.yaml.expect
@@ -1,6 +1,6 @@
Errors: {
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr(dynamic x) → dynamic
- return () → dart.core::Null? {
+ return () → Null {
x = new main::A::•<dynamic>();
};
diff --git a/pkg/front_end/testcases/expression/lib_ctor.expression.yaml.expect b/pkg/front_end/testcases/expression/lib_ctor.expression.yaml.expect
index 45805ec..5944c43 100644
--- a/pkg/front_end/testcases/expression/lib_ctor.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/lib_ctor.expression.yaml.expect
@@ -1,7 +1,7 @@
Errors: {
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
- return () → dart.core::Null? {
+ return () → Null {
new main::A::•<dynamic>();
#C2;
};
diff --git a/pkg/front_end/testcases/expression/lib_external_ctor.expression.yaml.expect b/pkg/front_end/testcases/expression/lib_external_ctor.expression.yaml.expect
index 4bc18c6..430f437 100644
--- a/pkg/front_end/testcases/expression/lib_external_ctor.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/lib_external_ctor.expression.yaml.expect
@@ -4,7 +4,7 @@
^^^^^^^
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
- return () → dart.core::Null? {
+ return () → Null {
throw new dart.core::AbstractClassInstantiationError::•("Process");
dart.io::File::fromUri(dart.core::Uri::parse("file://test.dart"));
};
diff --git a/pkg/front_end/testcases/expression/param_capture.expression.yaml.expect b/pkg/front_end/testcases/expression/param_capture.expression.yaml.expect
index 36a812e..ccedccc 100644
--- a/pkg/front_end/testcases/expression/param_capture.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/param_capture.expression.yaml.expect
@@ -1,6 +1,6 @@
Errors: {
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr(dynamic x, dynamic y) → dynamic
- return () → dart.core::Null? {
+ return () → Null {
x = x.+(y);
};
diff --git a/pkg/front_end/testcases/expression/type_param_shadow_arg_ctor_inferred.expression.yaml.expect b/pkg/front_end/testcases/expression/type_param_shadow_arg_ctor_inferred.expression.yaml.expect
index c02e68e..d488d56 100644
--- a/pkg/front_end/testcases/expression/type_param_shadow_arg_ctor_inferred.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/type_param_shadow_arg_ctor_inferred.expression.yaml.expect
@@ -5,6 +5,6 @@
^
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr<T extends dynamic>() → dynamic
- return () → dart.core::Null? {
+ return () → Null {
main::A::debugExpr::T* k = let final<BottomType> #t1 = invalid-expression "org-dartlang-debug:synthetic_debug_expression:2:13: Error: A value of type 'A<dynamic>' can't be assigned to a variable of type 'T'.\n - 'A' is from 'pkg/front_end/testcases/expression/main.dart'.\n T k = new A();\n ^" in new main::A::•<dynamic>() as{TypeError} <BottomType>;
};
diff --git a/pkg/front_end/testcases/expression/type_param_shadow_arg_inferred.expression.yaml.expect b/pkg/front_end/testcases/expression/type_param_shadow_arg_inferred.expression.yaml.expect
index a7a450a..4e5bdde 100644
--- a/pkg/front_end/testcases/expression/type_param_shadow_arg_inferred.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/type_param_shadow_arg_inferred.expression.yaml.expect
@@ -1,7 +1,7 @@
Errors: {
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr<T extends dynamic>() → dynamic
- return () → dart.core::Null? {
+ return () → Null {
main::A::debugExpr::T* k = null;
k = main::id<main::A::debugExpr::T*>(k);
};
diff --git a/pkg/front_end/testcases/expression/type_param_shadow_var.expression.yaml.expect b/pkg/front_end/testcases/expression/type_param_shadow_var.expression.yaml.expect
index 50019f0..a632a3c 100644
--- a/pkg/front_end/testcases/expression/type_param_shadow_var.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/type_param_shadow_var.expression.yaml.expect
@@ -1,6 +1,6 @@
Errors: {
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr<T extends dynamic>(dynamic x) → dynamic
- return () → dart.core::Null? {
+ return () → Null {
main::A::debugExpr::T* x = null;
};
diff --git a/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.expect
index 69565ac..e1fc1ee 100644
--- a/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.expect
@@ -82,18 +82,18 @@
field field7 = self::E|field7;
}
static field invalid-type E|field1 = null;
-static field core::int* E|field2 = (() → core::Null? {
+static field core::int* E|field2 = (() → Null {
invalid-type x = null;
return null;
}).call();
static field core::List<invalid-type>* E|field3 = null;
static field (invalid-type) →* invalid-type E|field4 = null;
static field (core::List<invalid-type>*) →* core::List<invalid-type>* E|field5 = null;
-static field core::int* E|field6 = (<E extends core::Object* = dynamic>() → core::Null? {
+static field core::int* E|field6 = (<E extends core::Object* = dynamic>() → Null {
E* x = null;
return null;
}).call<core::String*>();
-static field core::int* E|field7 = (<E extends core::Object* = dynamic>() → core::Null? {
+static field core::int* E|field7 = (<E extends core::Object* = dynamic>() → Null {
E* x = null;
return null;
}).call<invalid-type>();
diff --git a/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.transformed.expect
index 69565ac..e1fc1ee 100644
--- a/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_field_with_type_parameter_usage.dart.strong.transformed.expect
@@ -82,18 +82,18 @@
field field7 = self::E|field7;
}
static field invalid-type E|field1 = null;
-static field core::int* E|field2 = (() → core::Null? {
+static field core::int* E|field2 = (() → Null {
invalid-type x = null;
return null;
}).call();
static field core::List<invalid-type>* E|field3 = null;
static field (invalid-type) →* invalid-type E|field4 = null;
static field (core::List<invalid-type>*) →* core::List<invalid-type>* E|field5 = null;
-static field core::int* E|field6 = (<E extends core::Object* = dynamic>() → core::Null? {
+static field core::int* E|field6 = (<E extends core::Object* = dynamic>() → Null {
E* x = null;
return null;
}).call<core::String*>();
-static field core::int* E|field7 = (<E extends core::Object* = dynamic>() → core::Null? {
+static field core::int* E|field7 = (<E extends core::Object* = dynamic>() → Null {
E* x = null;
return null;
}).call<invalid-type>();
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect
index 98f08d2..dbe9bc2 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect
@@ -206,11 +206,11 @@
self::expect(1, let final self::Class* #t106 = c in let final core::int* #t107 = self::Extension|get#simpleSetter(#t106) in #t107.{core::num::==}(null) ?{core::int*} let final core::int* #t108 = 2 in let final void #t109 = self::Extension|set#simpleSetter(#t106, #t108) in #t108 : #t107);
c.{self::Class::field} = null;
self::expect(2, let final self::Class* #t110 = c in let final core::int* #t111 = self::Extension|get#simpleSetter(#t110) in #t111.{core::num::==}(null) ?{core::int*} let final core::int* #t112 = 2 in let final void #t113 = self::Extension|set#simpleSetter(#t110, #t112) in #t112 : #t111);
- let final self::Class* #t114 = c in #t114.{self::Class::==}(null) ?{core::Null?} null : #t114.{self::Class::field} = null;
+ let final self::Class* #t114 = c in #t114.{self::Class::==}(null) ?{Null} null : #t114.{self::Class::field} = null;
let final self::Class* #t115 = c in #t115.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#simpleSetter(#t115).{core::num::==}(null) ?{core::int*} self::Extension|set#simpleSetter(#t115, 1) : null;
self::expect(1, let final self::Class* #t116 = c in #t116.{self::Class::==}(null) ?{core::int*} null : #t116.{self::Class::field});
self::expect(1, let final self::Class* #t117 = c in #t117.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t118 = self::Extension|get#simpleSetter(#t117) in #t118.{core::num::==}(null) ?{core::int*} let final core::int* #t119 = 2 in let final void #t120 = self::Extension|set#simpleSetter(#t117, #t119) in #t119 : #t118);
- let final self::Class* #t121 = c in #t121.{self::Class::==}(null) ?{core::Null?} null : #t121.{self::Class::field} = null;
+ let final self::Class* #t121 = c in #t121.{self::Class::==}(null) ?{Null} null : #t121.{self::Class::field} = null;
self::expect(2, let final self::Class* #t122 = c in #t122.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t123 = self::Extension|get#simpleSetter(#t122) in #t123.{core::num::==}(null) ?{core::int*} let final core::int* #t124 = 2 in let final void #t125 = self::Extension|set#simpleSetter(#t122, #t124) in #t124 : #t123);
self::Extension|testInternal(new self::Class::•());
self::GenericClass<core::int*>* genericClass = new self::GenericClass::•<core::int*>();
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect
index 245ead1..cb01579 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect
@@ -206,11 +206,11 @@
self::expect(1, let final self::Class* #t106 = c in let final core::int* #t107 = self::Extension|get#simpleSetter(#t106) in #t107.{core::num::==}(null) ?{core::int*} let final core::int* #t108 = 2 in let final void #t109 = self::Extension|set#simpleSetter(#t106, #t108) in #t108 : #t107);
c.{self::Class::field} = null;
self::expect(2, let final self::Class* #t110 = c in let final core::int* #t111 = self::Extension|get#simpleSetter(#t110) in #t111.{core::num::==}(null) ?{core::int*} let final core::int* #t112 = 2 in let final void #t113 = self::Extension|set#simpleSetter(#t110, #t112) in #t112 : #t111);
- let final self::Class* #t114 = c in #t114.{self::Class::==}(null) ?{core::Null?} null : #t114.{self::Class::field} = null;
+ let final self::Class* #t114 = c in #t114.{self::Class::==}(null) ?{Null} null : #t114.{self::Class::field} = null;
let final self::Class* #t115 = c in #t115.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#simpleSetter(#t115).{core::num::==}(null) ?{core::int*} self::Extension|set#simpleSetter(#t115, 1) : null;
self::expect(1, let final self::Class* #t116 = c in #t116.{self::Class::==}(null) ?{core::int*} null : #t116.{self::Class::field});
self::expect(1, let final self::Class* #t117 = c in #t117.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t118 = self::Extension|get#simpleSetter(#t117) in #t118.{core::num::==}(null) ?{core::int*} let final core::int* #t119 = 2 in let final void #t120 = self::Extension|set#simpleSetter(#t117, #t119) in #t119 : #t118);
- let final self::Class* #t121 = c in #t121.{self::Class::==}(null) ?{core::Null?} null : #t121.{self::Class::field} = null;
+ let final self::Class* #t121 = c in #t121.{self::Class::==}(null) ?{Null} null : #t121.{self::Class::field} = null;
self::expect(2, let final self::Class* #t122 = c in #t122.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t123 = self::Extension|get#simpleSetter(#t122) in #t123.{core::num::==}(null) ?{core::int*} let final core::int* #t124 = 2 in let final void #t125 = self::Extension|set#simpleSetter(#t122, #t124) in #t124 : #t123);
self::Extension|testInternal(new self::Class::•());
self::GenericClass<core::int*>* genericClass = new self::GenericClass::•<core::int*>();
diff --git a/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect
index 917ce53..f0d0e30 100644
--- a/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect
@@ -34,7 +34,7 @@
self::expect(null, let final self::GenericClass<core::int*>* #t1 = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/extensions/extension_setter_error.dart:13:41: Error: A value of type 'GenericClass<int>' can't be assigned to a variable of type 'GenericClass<double>'.
- 'GenericClass' is from 'pkg/front_end/testcases/extensions/extension_setter_error.dart'.
expect(null, GenericExtension<double>(genericClass).setter = null);
- ^" in genericClass as{TypeError} self::GenericClass<core::double*>* in let final core::Null? #t3 = null in let final void #t4 = self::GenericExtension|set#setter<core::double*>(#t1, #t3) in #t3);
+ ^" in genericClass as{TypeError} self::GenericClass<core::double*>* in let final Null #t3 = null in let final void #t4 = self::GenericExtension|set#setter<core::double*>(#t1, #t3) in #t3);
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!expected.{core::Object::==}(actual)) {
diff --git a/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect b/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect
index f26640b..1511135 100644
--- a/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect
@@ -11,12 +11,12 @@
}
static method main() → void {
asy::StreamController<core::String*>* controller = asy::StreamController::•<core::String*>();
- let final asy::StreamController<core::String*>* #t1 = controller in let final (dynamic) →* core::Null? #t2 = (dynamic s) → core::Null? {
+ let final asy::StreamController<core::String*>* #t1 = controller in let final (dynamic) →* Null #t2 = (dynamic s) → Null {
core::print(s);
} in self::Extension|call<core::String*>(#t1.{asy::StreamController::stream}, #t2);
}
static method Extension|call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>* {
- return #this.{asy::Stream::listen}((self::Extension|call::T* d) → core::Null? {
+ return #this.{asy::Stream::listen}((self::Extension|call::T* d) → Null {
onData.call(d);
});
}
diff --git a/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect
index f26640b..1511135 100644
--- a/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect
@@ -11,12 +11,12 @@
}
static method main() → void {
asy::StreamController<core::String*>* controller = asy::StreamController::•<core::String*>();
- let final asy::StreamController<core::String*>* #t1 = controller in let final (dynamic) →* core::Null? #t2 = (dynamic s) → core::Null? {
+ let final asy::StreamController<core::String*>* #t1 = controller in let final (dynamic) →* Null #t2 = (dynamic s) → Null {
core::print(s);
} in self::Extension|call<core::String*>(#t1.{asy::StreamController::stream}, #t2);
}
static method Extension|call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>* {
- return #this.{asy::Stream::listen}((self::Extension|call::T* d) → core::Null? {
+ return #this.{asy::Stream::listen}((self::Extension|call::T* d) → Null {
onData.call(d);
});
}
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect b/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect
index 6609124..fb975d6 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect
@@ -56,28 +56,28 @@
self::expect(null, tearOff.call());
self::expect(42, let final self::Class* #t20 = c in #t20.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t21 = 42 in let final void #t22 = self::Extension|set#property(#t20, #t21) in #t21);
self::expect(42, tearOff.call());
- self::expect(null, let final self::Class* #t23 = c in #t23.{self::Class::==}(null) ?{core::Null?} null : let final core::Null? #t24 = null in let final void #t25 = self::Extension|set#property(#t23, #t24) in #t24);
+ self::expect(null, let final self::Class* #t23 = c in #t23.{self::Class::==}(null) ?{Null} null : let final Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23, #t24) in #t24);
self::expect(42, let final self::Class* #t26 = c in #t26.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26, #t27) in #t27);
- let final self::Class* #t29 = c in #t29.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t29, null);
+ let final self::Class* #t29 = c in #t29.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t29, null);
self::expect(null, let final self::Class* #t30 = c in #t30.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t30));
self::expect(42, let final self::Class* #t31 = c in let final core::int* #t32 = self::Extension|get#property(#t31) in #t32.{core::num::==}(null) ?{core::int*} let final core::int* #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32);
self::expect(42, let final self::Class* #t35 = c in let final core::int* #t36 = self::Extension|get#property(#t35) in #t36.{core::num::==}(null) ?{core::int*} let final core::int* #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36);
- self::expect(null, let final self::Class* #t39 = c in #t39.{self::Class::==}(null) ?{core::Null?} null : let final core::Null? #t40 = null in let final void #t41 = self::Extension|set#property(#t39, #t40) in #t40);
+ self::expect(null, let final self::Class* #t39 = c in #t39.{self::Class::==}(null) ?{Null} null : let final Null #t40 = null in let final void #t41 = self::Extension|set#property(#t39, #t40) in #t40);
let final self::Class* #t42 = c in self::Extension|get#property(#t42).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t42, 42) : null;
self::expect(42, let final self::Class* #t43 = c in #t43.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t43));
let final self::Class* #t44 = c in self::Extension|get#property(#t44).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t44, 87) : null;
self::expect(42, let final self::Class* #t45 = c in #t45.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t45));
- let final self::Class* #t46 = c in #t46.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t46, null);
+ let final self::Class* #t46 = c in #t46.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t46, null);
self::expect(null, let final self::Class* #t47 = c in #t47.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t47));
self::expect(42, let final self::Class* #t48 = c in let final core::int* #t49 = self::Extension|get#property(#t48) in #t49.{core::num::==}(null) ?{core::int*} let final core::int* #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48, #t50) in #t50 : #t49);
self::expect(42, let final self::Class* #t52 = c in let final core::int* #t53 = self::Extension|get#property(#t52) in #t53.{core::num::==}(null) ?{core::int*} let final core::int* #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52, #t54) in #t54 : #t53);
- let final self::Class* #t56 = c in #t56.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t56, null);
+ let final self::Class* #t56 = c in #t56.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t56, null);
self::expect(null, let final self::Class* #t57 = c in #t57.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t57));
let final self::Class* #t58 = c in self::Extension|get#property(#t58).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t58, 42) : null;
self::expect(42, let final self::Class* #t59 = c in #t59.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t59));
let final self::Class* #t60 = c in self::Extension|get#property(#t60).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t60, 87) : null;
self::expect(42, let final self::Class* #t61 = c in #t61.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t61));
- let final self::Class* #t62 = c in #t62.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t62, null);
+ let final self::Class* #t62 = c in #t62.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t62, null);
self::Extension|testImplicitThis(c);
}
static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect
index fd2532c..4697d39 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect
@@ -56,28 +56,28 @@
self::expect(null, tearOff.call());
self::expect(42, let final self::Class* #t20 = c in #t20.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t21 = 42 in let final void #t22 = self::Extension|set#property(#t20, #t21) in #t21);
self::expect(42, tearOff.call());
- self::expect(null, let final self::Class* #t23 = c in #t23.{self::Class::==}(null) ?{core::Null?} null : let final core::Null? #t24 = null in let final void #t25 = self::Extension|set#property(#t23, #t24) in #t24);
+ self::expect(null, let final self::Class* #t23 = c in #t23.{self::Class::==}(null) ?{Null} null : let final Null #t24 = null in let final void #t25 = self::Extension|set#property(#t23, #t24) in #t24);
self::expect(42, let final self::Class* #t26 = c in #t26.{self::Class::==}(null) ?{core::int*} null : let final core::int* #t27 = 42 in let final void #t28 = self::Extension|set#property(#t26, #t27) in #t27);
- let final self::Class* #t29 = c in #t29.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t29, null);
+ let final self::Class* #t29 = c in #t29.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t29, null);
self::expect(null, let final self::Class* #t30 = c in #t30.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t30));
self::expect(42, let final self::Class* #t31 = c in let final core::int* #t32 = self::Extension|get#property(#t31) in #t32.{core::num::==}(null) ?{core::int*} let final core::int* #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32);
self::expect(42, let final self::Class* #t35 = c in let final core::int* #t36 = self::Extension|get#property(#t35) in #t36.{core::num::==}(null) ?{core::int*} let final core::int* #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36);
- self::expect(null, let final self::Class* #t39 = c in #t39.{self::Class::==}(null) ?{core::Null?} null : let final core::Null? #t40 = null in let final void #t41 = self::Extension|set#property(#t39, #t40) in #t40);
+ self::expect(null, let final self::Class* #t39 = c in #t39.{self::Class::==}(null) ?{Null} null : let final Null #t40 = null in let final void #t41 = self::Extension|set#property(#t39, #t40) in #t40);
let final self::Class* #t42 = c in self::Extension|get#property(#t42).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t42, 42) : null;
self::expect(42, let final self::Class* #t43 = c in #t43.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t43));
let final self::Class* #t44 = c in self::Extension|get#property(#t44).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t44, 87) : null;
self::expect(42, let final self::Class* #t45 = c in #t45.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t45));
- let final self::Class* #t46 = c in #t46.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t46, null);
+ let final self::Class* #t46 = c in #t46.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t46, null);
self::expect(null, let final self::Class* #t47 = c in #t47.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t47));
self::expect(42, let final self::Class* #t48 = c in let final core::int* #t49 = self::Extension|get#property(#t48) in #t49.{core::num::==}(null) ?{core::int*} let final core::int* #t50 = 42 in let final void #t51 = self::Extension|set#property(#t48, #t50) in #t50 : #t49);
self::expect(42, let final self::Class* #t52 = c in let final core::int* #t53 = self::Extension|get#property(#t52) in #t53.{core::num::==}(null) ?{core::int*} let final core::int* #t54 = 87 in let final void #t55 = self::Extension|set#property(#t52, #t54) in #t54 : #t53);
- let final self::Class* #t56 = c in #t56.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t56, null);
+ let final self::Class* #t56 = c in #t56.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t56, null);
self::expect(null, let final self::Class* #t57 = c in #t57.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t57));
let final self::Class* #t58 = c in self::Extension|get#property(#t58).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t58, 42) : null;
self::expect(42, let final self::Class* #t59 = c in #t59.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t59));
let final self::Class* #t60 = c in self::Extension|get#property(#t60).{core::num::==}(null) ?{core::int*} self::Extension|set#property(#t60, 87) : null;
self::expect(42, let final self::Class* #t61 = c in #t61.{self::Class::==}(null) ?{core::int*} null : self::Extension|get#property(#t61));
- let final self::Class* #t62 = c in #t62.{self::Class::==}(null) ?{core::Null?} null : self::Extension|set#property(#t62, null);
+ let final self::Class* #t62 = c in #t62.{self::Class::==}(null) ?{Null} null : self::Extension|set#property(#t62, null);
self::Extension|testImplicitThis(c);
}
static method expect(dynamic expected, dynamic actual) → dynamic {
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect
index 0aaa824..4c86065 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect
@@ -35,9 +35,9 @@
@#C1 core::String* localWithInitializer = "hello";
@#C1 @#C2 dynamic localGroupPart1;
@#C1 @#C2 dynamic localGroupPart2;
- function naebdyr(@#C1 dynamic nestedFormal) → core::Null?
+ function naebdyr(@#C1 dynamic nestedFormal) → Null
return null;
- (dynamic) →* core::Null? roedmus = (@#C1 dynamic closureFormal) → core::Null? => null;
+ (dynamic) →* Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
}
method hest({@#C1 dynamic named = #C3}) → dynamic
return null;
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect
index 0aaa824..4c86065 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect
@@ -35,9 +35,9 @@
@#C1 core::String* localWithInitializer = "hello";
@#C1 @#C2 dynamic localGroupPart1;
@#C1 @#C2 dynamic localGroupPart2;
- function naebdyr(@#C1 dynamic nestedFormal) → core::Null?
+ function naebdyr(@#C1 dynamic nestedFormal) → Null
return null;
- (dynamic) →* core::Null? roedmus = (@#C1 dynamic closureFormal) → core::Null? => null;
+ (dynamic) →* Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
}
method hest({@#C1 dynamic named = #C3}) → dynamic
return null;
diff --git a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.expect
index bd5a601..49729e1 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.expect
@@ -15,7 +15,7 @@
field dynamic x;
field dynamic y;
constructor •(dynamic x) → self::A*
- : self::A::x = x, self::A::y = () → core::Null? {
+ : self::A::x = x, self::A::y = () → Null {
invalid-expression "pkg/front_end/testcases/general/assign_to_initializing_formal.dart:13:11: Error: Can't assign to the final variable 'x'.
x = 3;
^";
diff --git a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.transformed.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.transformed.expect
index bd5a601..49729e1 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.strong.transformed.expect
@@ -15,7 +15,7 @@
field dynamic x;
field dynamic y;
constructor •(dynamic x) → self::A*
- : self::A::x = x, self::A::y = () → core::Null? {
+ : self::A::x = x, self::A::y = () → Null {
invalid-expression "pkg/front_end/testcases/general/assign_to_initializing_formal.dart:13:11: Error: Can't assign to the final variable 'x'.
x = 3;
^";
diff --git a/pkg/front_end/testcases/general/bug33099.dart.strong.expect b/pkg/front_end/testcases/general/bug33099.dart.strong.expect
index e224292..6e4306c 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.strong.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.strong.expect
@@ -60,7 +60,7 @@
static const field self::_FailingTest* failingTest = #C1;
static method main() → dynamic {
mir::ClassMirror* classMirror = mir::reflectClass(self::MyTest2*);
- classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → core::Null? {
+ classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → Null {
if(memberMirror.{mir::DeclarationMirror::simpleName}.{core::Symbol::==}(#C2)) {
core::print(memberMirror);
core::print(self::_hasFailingTestAnnotation(memberMirror));
diff --git a/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect
index 2f10dab..1c01215 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect
@@ -62,7 +62,7 @@
static const field self::_FailingTest* failingTest = #C1;
static method main() → dynamic {
mir::ClassMirror* classMirror = mir::reflectClass(self::MyTest2*);
- classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → core::Null? {
+ classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → Null {
if(memberMirror.{mir::DeclarationMirror::simpleName}.{core::Symbol::==}(#C2)) {
core::print(memberMirror);
core::print(self::_hasFailingTestAnnotation(memberMirror));
diff --git a/pkg/front_end/testcases/general/bug37476.dart.strong.expect b/pkg/front_end/testcases/general/bug37476.dart.strong.expect
index cf2e1f7..112e0e4 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.strong.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.strong.expect
@@ -8,7 +8,7 @@
;
method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
core::print("foo: T = ${self::A::T*}");
- return <S extends self::A::T* = self::A::T*>(S* a) → core::Null? {};
+ return <S extends self::A::T* = self::A::T*>(S* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -27,7 +27,7 @@
;
method foo() → (self::B::T*) →* void {
core::print("foo: T = ${self::B::T*}");
- return (self::B::T* a) → core::Null? {};
+ return (self::B::T* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/general/bug37476.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug37476.dart.strong.transformed.expect
index cf2e1f7..112e0e4 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.strong.transformed.expect
@@ -8,7 +8,7 @@
;
method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
core::print("foo: T = ${self::A::T*}");
- return <S extends self::A::T* = self::A::T*>(S* a) → core::Null? {};
+ return <S extends self::A::T* = self::A::T*>(S* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -27,7 +27,7 @@
;
method foo() → (self::B::T*) →* void {
core::print("foo: T = ${self::B::T*}");
- return (self::B::T* a) → core::Null? {};
+ return (self::B::T* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.outline.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.outline.expect
index 04597c0..09b9c11 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.outline.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.outline.expect
@@ -336,16 +336,16 @@
Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:32:63 -> InstanceConstant(const CustomIterable{})
Evaluated: ListLiteral @ org-dartlang-testcase:///const_collections.dart:33:33 -> ListConstant(const <String*>["Hello"])
Evaluated: ListLiteral @ org-dartlang-testcase:///const_collections.dart:33:45 -> ListConstant(const <String*>["World"])
-Evaluated: SetLiteral @ org-dartlang-testcase:///const_collections.dart:36:25 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null?>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
-Evaluated: SetConcatenation @ org-dartlang-testcase:///const_collections.dart:38:25 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null?>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null, "!", null]}})
-Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:40:43 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null?>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
+Evaluated: SetLiteral @ org-dartlang-testcase:///const_collections.dart:36:25 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
+Evaluated: SetConcatenation @ org-dartlang-testcase:///const_collections.dart:38:25 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null, "!", null]}})
+Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:40:43 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:40:51 -> NullConstant(null)
-Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:41:42 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null?>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
-Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:44:6 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null?>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
+Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:41:42 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
+Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:44:6 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_collections.dart:45:12 -> InstanceConstant(const CustomIterable{})
-Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:47:54 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null?>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
+Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:47:54 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_collections.dart:47:62 -> InstanceConstant(const CustomIterable{})
-Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:48:54 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null?>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
+Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:48:54 -> InstanceConstant(const _UnmodifiableSet<String*>{_UnmodifiableSet._map: const _ImmutableMap<String*, Null>{_ImmutableMap._kvPairs: const <dynamic>["hello", null, "world", null]}})
Evaluated: StaticGet @ org-dartlang-testcase:///const_collections.dart:48:59 -> InstanceConstant(const CustomIterable{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_collections.dart:49:55 -> InstanceConstant(const WithEquals{WithEquals.i: 42})
Evaluated: MapLiteral @ org-dartlang-testcase:///const_collections.dart:53:34 -> InstanceConstant(const _ImmutableMap<String*, String*>{_ImmutableMap._kvPairs: const <dynamic>["hello", "world"]})
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
index 142a7ab..46a4481 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
@@ -500,10 +500,10 @@
#C10 = <core::String*>[#C6, #C7, #C9]
#C11 = self::CustomIterable {}
#C12 = <dynamic>[#C6, #C3, #C7, #C3]
- #C13 = core::_ImmutableMap<core::String*, core::Null?> {_kvPairs:#C12}
+ #C13 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C12}
#C14 = col::_UnmodifiableSet<core::String*> {_map:#C13}
#C15 = <dynamic>[#C6, #C3, #C7, #C3, #C9, #C3]
- #C16 = core::_ImmutableMap<core::String*, core::Null?> {_kvPairs:#C15}
+ #C16 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C15}
#C17 = col::_UnmodifiableSet<core::String*> {_map:#C16}
#C18 = <dynamic>[#C6, #C7]
#C19 = core::_ImmutableMap<core::String*, core::String*> {_kvPairs:#C18}
@@ -512,6 +512,6 @@
#C22 = core::_ImmutableMap<core::String*, core::String*> {_kvPairs:#C21}
#C23 = self::CustomMap {}
#C24 = <dynamic>[#C6, #C3]
- #C25 = core::_ImmutableMap<core::String*, core::Null?> {_kvPairs:#C24}
+ #C25 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C24}
#C26 = col::_UnmodifiableSet<core::String*> {_map:#C25}
}
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
index 1660ee5..40a8b11 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
@@ -505,10 +505,10 @@
#C10 = <core::String*>[#C6, #C7, #C9]
#C11 = self::CustomIterable {}
#C12 = <dynamic>[#C6, #C3, #C7, #C3]
- #C13 = core::_ImmutableMap<core::String*, core::Null?> {_kvPairs:#C12}
+ #C13 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C12}
#C14 = col::_UnmodifiableSet<core::String*> {_map:#C13}
#C15 = <dynamic>[#C6, #C3, #C7, #C3, #C9, #C3]
- #C16 = core::_ImmutableMap<core::String*, core::Null?> {_kvPairs:#C15}
+ #C16 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C15}
#C17 = col::_UnmodifiableSet<core::String*> {_map:#C16}
#C18 = <dynamic>[#C6, #C7]
#C19 = core::_ImmutableMap<core::String*, core::String*> {_kvPairs:#C18}
@@ -517,6 +517,6 @@
#C22 = core::_ImmutableMap<core::String*, core::String*> {_kvPairs:#C21}
#C23 = self::CustomMap {}
#C24 = <dynamic>[#C6, #C3]
- #C25 = core::_ImmutableMap<core::String*, core::Null?> {_kvPairs:#C24}
+ #C25 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C24}
#C26 = col::_UnmodifiableSet<core::String*> {_map:#C25}
}
diff --git a/pkg/front_end/testcases/general/constants/various.dart.outline.expect b/pkg/front_end/testcases/general/constants/various.dart.outline.expect
index 055199f..919d711 100644
--- a/pkg/front_end/testcases/general/constants/various.dart.outline.expect
+++ b/pkg/front_end/testcases/general/constants/various.dart.outline.expect
@@ -334,7 +334,7 @@
static const field dynamic function_const = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:140:24: Error: Not a constant expression.
const function_const = () {};
^^";
-static field () →* core::Null? function_var;
+static field () →* Null function_var;
static field self::ConstClassWithFailingAssertWithEmptyMessage* failedAssertEmptyMessage;
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments1 = const self::ClassWithTypeArguments::•<core::int*, core::int*, core::int*>(42, 42, 42);
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments2 = const self::ClassWithTypeArguments::•<dynamic, dynamic, dynamic>(42, 42, 42);
diff --git a/pkg/front_end/testcases/general/constants/various.dart.strong.expect b/pkg/front_end/testcases/general/constants/various.dart.strong.expect
index a6df3e4..e7197ff 100644
--- a/pkg/front_end/testcases/general/constants/various.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/various.dart.strong.expect
@@ -562,7 +562,7 @@
static const field dynamic function_const = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:140:24: Error: Not a constant expression.
const function_const = () {};
^^";
-static field () →* core::Null? function_var = () → core::Null? {};
+static field () →* Null function_var = () → Null {};
static field self::ConstClassWithFailingAssertWithEmptyMessage* failedAssertEmptyMessage = invalid-expression "This assertion failed with message: (empty)";
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments1 = #C19;
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments2 = #C20;
diff --git a/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect
index c27c932..077f295 100644
--- a/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect
@@ -562,7 +562,7 @@
static const field dynamic function_const = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:140:24: Error: Not a constant expression.
const function_const = () {};
^^";
-static field () →* core::Null? function_var = () → core::Null? {};
+static field () →* Null function_var = () → Null {};
static field self::ConstClassWithFailingAssertWithEmptyMessage* failedAssertEmptyMessage = invalid-expression "This assertion failed with message: (empty)";
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments1 = #C19;
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments2 = #C20;
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.outline.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.outline.expect
index 4106544..7171bac 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.outline.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.outline.expect
@@ -112,8 +112,8 @@
static const field core::bool isItInt2 = self::maybeInt2 is{ForNonNullableByDefault} core::int ?{core::bool} true : false;
static const field core::int? maybeInt3 = self::z ?{core::int?} 42 : null;
static const field core::bool isItInt3 = self::maybeInt3 is{ForNonNullableByDefault} core::int ?{core::bool} true : false;
-static const field dynamic listOfNull = const <core::Null?>[null];
-static const field core::bool isListOfNull = self::listOfNull is{ForNonNullableByDefault} core::List<core::Null?>;
+static const field dynamic listOfNull = const <Null>[null];
+static const field core::bool isListOfNull = self::listOfNull is{ForNonNullableByDefault} core::List<Null>;
static const field dynamic listOfInt = const <core::int>[42];
static const field core::bool isListOfInt = self::listOfInt is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isList = self::listOfInt is{ForNonNullableByDefault} core::List<dynamic>;
@@ -180,7 +180,7 @@
Evaluated: ConditionalExpression @ org-dartlang-testcase:///various.dart:45:40 -> BoolConstant(false)
Evaluated: ConditionalExpression @ org-dartlang-testcase:///various.dart:46:21 -> NullConstant(null)
Evaluated: ConditionalExpression @ org-dartlang-testcase:///various.dart:47:40 -> BoolConstant(false)
-Evaluated: ListLiteral @ org-dartlang-testcase:///various.dart:49:28 -> ListConstant(const <Null?>[null])
+Evaluated: ListLiteral @ org-dartlang-testcase:///various.dart:49:28 -> ListConstant(const <Null>[null])
Evaluated: IsExpression @ org-dartlang-testcase:///various.dart:50:38 -> BoolConstant(true)
Evaluated: ListLiteral @ org-dartlang-testcase:///various.dart:51:27 -> ListConstant(const <int>[42])
Evaluated: IsExpression @ org-dartlang-testcase:///various.dart:52:36 -> BoolConstant(true)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect
index 39c3b48..aa1a131 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect
@@ -223,7 +223,7 @@
#C20 = eval self::Foo<core::int>{saved:const core::bool::fromEnvironment(#C1, defaultValue: const core::bool::fromEnvironment(#C2)), saved2:const core::bool::fromEnvironment(#C1, defaultValue: const core::bool::fromEnvironment(#C2)), initialized:const core::bool::fromEnvironment(#C1, defaultValue: const core::bool::fromEnvironment(#C2)), value:#C19}
#C21 = eval const core::bool::fromEnvironment(#C1) ?{core::Object} #C19 : #C8
#C22 = eval (const core::bool::fromEnvironment(#C1) ?{core::Object} #C19 : #C8) is{ForNonNullableByDefault} core::int ?{core::bool} #C8 : #C13
- #C23 = <core::Null?>[#C9]
+ #C23 = <Null>[#C9]
#C24 = <core::int>[#C19]
#C25 = <core::int>{#C19}
#C26 = <core::int, core::int>{#C19:#C19)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect
index 3e990c7..9d5946b 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect
@@ -223,7 +223,7 @@
#C20 = eval self::Foo<core::int>{saved:const core::bool::fromEnvironment(#C1, defaultValue: const core::bool::fromEnvironment(#C2)), saved2:const core::bool::fromEnvironment(#C1, defaultValue: const core::bool::fromEnvironment(#C2)), initialized:const core::bool::fromEnvironment(#C1, defaultValue: const core::bool::fromEnvironment(#C2)), value:#C19}
#C21 = eval const core::bool::fromEnvironment(#C1) ?{core::Object} #C19 : #C8
#C22 = eval (const core::bool::fromEnvironment(#C1) ?{core::Object} #C19 : #C8) is{ForNonNullableByDefault} core::int ?{core::bool} #C8 : #C13
- #C23 = <core::Null?>[#C9]
+ #C23 = <Null>[#C9]
#C24 = <core::int>[#C19]
#C25 = <core::int>{#C19}
#C26 = <core::int, core::int>{#C19:#C19)
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect
index 8adcafe..5bf2809 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect
@@ -40,11 +40,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect
index 8adcafe..5bf2809 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect
@@ -40,11 +40,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect
index 8a2919a..b84574b 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect
@@ -1162,10 +1162,10 @@
core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
- core::Map<dynamic, core::Null?>* map12 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map12 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
^": null};
- core::Map<dynamic, core::Null?>* map13 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map13 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
core::List<core::int*>* list20 = block {
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
index 1b11b50..ea88d5a 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
@@ -1402,10 +1402,10 @@
core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
- core::Map<dynamic, core::Null?>* map12 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map12 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
^": null};
- core::Map<dynamic, core::Null?>* map13 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map13 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
core::List<core::int*>* list20 = block {
diff --git a/pkg/front_end/testcases/general/covariant_generic.dart.strong.expect b/pkg/front_end/testcases/general/covariant_generic.dart.strong.expect
index 7c34544..48b1bf5 100644
--- a/pkg/front_end/testcases/general/covariant_generic.dart.strong.expect
+++ b/pkg/front_end/testcases/general/covariant_generic.dart.strong.expect
@@ -28,22 +28,22 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → core::Null? {});
+ self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → Null {});
fooInt.{self::Foo::method}(3);
fooInt.{self::Foo::setter} = 3;
- fooInt.{self::Foo::withCallback}((core::int* x) → core::Null? {});
- fooInt.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooInt.{self::Foo::withCallback}((core::int* x) → Null {});
+ fooInt.{self::Foo::withCallback}((core::num* x) → Null {});
fooInt.{self::Foo::mutableField} = 3;
- fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → core::Null? {};
+ fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → Null {};
self::Foo<core::num*>* fooNum = fooInt;
fooNum.{self::Foo::method}(3);
fooNum.{self::Foo::method}(2.5);
fooNum.{self::Foo::setter} = 3;
fooNum.{self::Foo::setter} = 2.5;
- fooNum.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooNum.{self::Foo::withCallback}((core::num* x) → Null {});
fooNum.{self::Foo::mutableField} = 3;
fooNum.{self::Foo::mutableField} = 2.5;
let final self::Foo<core::num*>* #t1 = fooNum in let final core::int* #t2 = 3 in (#t1.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t2);
let final self::Foo<core::num*>* #t3 = fooNum in let final core::double* #t4 = 2.5 in (#t3.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t4);
- fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → core::Null? {};
+ fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → Null {};
}
diff --git a/pkg/front_end/testcases/general/covariant_generic.dart.strong.transformed.expect b/pkg/front_end/testcases/general/covariant_generic.dart.strong.transformed.expect
index 3d30d4a..5ecd44d 100644
--- a/pkg/front_end/testcases/general/covariant_generic.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/covariant_generic.dart.strong.transformed.expect
@@ -28,24 +28,24 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → core::Null? {});
+ self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → Null {});
fooInt.{self::Foo::method}(3);
fooInt.{self::Foo::setter} = 3;
- fooInt.{self::Foo::withCallback}((core::int* x) → core::Null? {});
- fooInt.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooInt.{self::Foo::withCallback}((core::int* x) → Null {});
+ fooInt.{self::Foo::withCallback}((core::num* x) → Null {});
fooInt.{self::Foo::mutableField} = 3;
- fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → core::Null? {};
+ fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → Null {};
self::Foo<core::num*>* fooNum = fooInt;
fooNum.{self::Foo::method}(3);
fooNum.{self::Foo::method}(2.5);
fooNum.{self::Foo::setter} = 3;
fooNum.{self::Foo::setter} = 2.5;
- fooNum.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooNum.{self::Foo::withCallback}((core::num* x) → Null {});
fooNum.{self::Foo::mutableField} = 3;
fooNum.{self::Foo::mutableField} = 2.5;
let final self::Foo<core::num*>* #t1 = fooNum in let final core::int* #t2 = 3 in (#t1.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t2);
let final self::Foo<core::num*>* #t3 = fooNum in let final core::double* #t4 = 2.5 in (#t3.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t4);
- fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → core::Null? {};
+ fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → Null {};
}
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.expect b/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.expect
index d9a0e7e..c53238d 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_05_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.transformed.expect
index d9a0e7e..c53238d 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_05.dart.strong.transformed.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_05_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.expect b/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.expect
index a8ad767..de18361 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_06_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.transformed.expect
index a8ad767..de18361 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_06.dart.strong.transformed.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_06_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.expect b/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.expect
index 147592a..528c1f6 100644
--- a/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.expect
+++ b/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.expect
@@ -87,24 +87,24 @@
core::print("hello ${x.{core::int::^}(y)}");
}
get a() → core::int*
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
get b() → core::int*
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
get c() → core::int* {
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
}
get d() → core::int* {
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
}
get e() → core::int*
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
get f() → core::int*
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
get g() → core::int* {
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
}
get h() → core::int* {
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
}
method i(core::int* x, core::int* y) → core::int*
return x.{core::int::^}(y);
diff --git a/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.transformed.expect
index 147592a..528c1f6 100644
--- a/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_recovery/issue_26810.dart.strong.transformed.expect
@@ -87,24 +87,24 @@
core::print("hello ${x.{core::int::^}(y)}");
}
get a() → core::int*
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
get b() → core::int*
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
get c() → core::int* {
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
}
get d() → core::int* {
- return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Null::hashCode});
+ return this.{self::Key::runtimeType}.{core::Type::hashCode}.{core::int::^}(null.{core::Object::hashCode});
}
get e() → core::int*
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
get f() → core::int*
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
get g() → core::int* {
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
}
get h() → core::int* {
- return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Null::hashCode}.{core::num::+}(3));
+ return 1.{core::num::+}(this.{self::Key::runtimeType}.{core::Type::hashCode}).{core::int::^}(null.{core::Object::hashCode}.{core::num::+}(3));
}
method i(core::int* x, core::int* y) → core::int*
return x.{core::int::^}(y);
diff --git a/pkg/front_end/testcases/general/expressions.dart.strong.expect b/pkg/front_end/testcases/general/expressions.dart.strong.expect
index 9325380..1c9f07b 100644
--- a/pkg/front_end/testcases/general/expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.strong.expect
@@ -51,25 +51,25 @@
core::print(#C2);
core::print(core::List::•<core::String*>(2).{core::Object::runtimeType});
self::foo(fisk: "Blorp gulp");
- function f() → core::Null? {
+ function f() → Null {
core::print("f was called");
}
self::caller(f);
- self::caller(() → core::Null? {
+ self::caller(() → Null {
core::print("<anon> was called");
});
- function g([dynamic message = #C1]) → core::Null? {
+ function g([dynamic message = #C1]) → Null {
core::print(message);
}
g.call("Hello, World");
- self::caller(([dynamic x = #C1]) → core::Null? {
+ self::caller(([dynamic x = #C1]) → Null {
core::print("<anon> was called with ${x}");
});
- function h({dynamic message = #C1}) → core::Null? {
+ function h({dynamic message = #C1}) → Null {
core::print(message);
}
h.call(message: "Hello, World");
- self::caller(({dynamic x = #C1}) → core::Null? {
+ self::caller(({dynamic x = #C1}) → Null {
core::print("<anon> was called with ${x}");
});
core::print(core::int*.{core::Type::toString}());
diff --git a/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect b/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
index 4aced3e..a1dbb58 100644
--- a/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
@@ -51,25 +51,25 @@
core::print(#C2);
core::print(core::_List::•<core::String*>(2).{core::Object::runtimeType});
self::foo(fisk: "Blorp gulp");
- function f() → core::Null? {
+ function f() → Null {
core::print("f was called");
}
self::caller(f);
- self::caller(() → core::Null? {
+ self::caller(() → Null {
core::print("<anon> was called");
});
- function g([dynamic message = #C1]) → core::Null? {
+ function g([dynamic message = #C1]) → Null {
core::print(message);
}
g.call("Hello, World");
- self::caller(([dynamic x = #C1]) → core::Null? {
+ self::caller(([dynamic x = #C1]) → Null {
core::print("<anon> was called with ${x}");
});
- function h({dynamic message = #C1}) → core::Null? {
+ function h({dynamic message = #C1}) → Null {
core::print(message);
}
h.call(message: "Hello, World");
- self::caller(({dynamic x = #C1}) → core::Null? {
+ self::caller(({dynamic x = #C1}) → Null {
core::print("<anon> was called with ${x}");
});
core::print(core::int*.{core::Type::toString}());
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.strong.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.strong.expect
index 9279097..3e17d2c 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.strong.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.strong.expect
@@ -14,5 +14,5 @@
return 100;
}
static method main() → dynamic {
- exp::Expect::equals(111, self::test(() → core::Null? => null).+(self::test((core::Object* o) → core::Null? => null)).+(self::test((core::Object* o, core::StackTrace* t) → core::Null? => null)));
+ exp::Expect::equals(111, self::test(() → Null => null).+(self::test((core::Object* o) → Null => null)).+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
}
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.strong.transformed.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.strong.transformed.expect
index 9279097..3e17d2c 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.strong.transformed.expect
@@ -14,5 +14,5 @@
return 100;
}
static method main() → dynamic {
- exp::Expect::equals(111, self::test(() → core::Null? => null).+(self::test((core::Object* o) → core::Null? => null)).+(self::test((core::Object* o, core::StackTrace* t) → core::Null? => null)));
+ exp::Expect::equals(111, self::test(() → Null => null).+(self::test((core::Object* o) → Null => null)).+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
}
diff --git a/pkg/front_end/testcases/general/functions.dart.strong.expect b/pkg/front_end/testcases/general/functions.dart.strong.expect
index f6f35ca..c10936d 100644
--- a/pkg/front_end/testcases/general/functions.dart.strong.expect
+++ b/pkg/front_end/testcases/general/functions.dart.strong.expect
@@ -7,7 +7,7 @@
f.call(a: "Hello, World");
f.call();
}
- local.call(({dynamic a = #C1}) → core::Null? {
+ local.call(({dynamic a = #C1}) → Null {
core::print(a);
});
}
diff --git a/pkg/front_end/testcases/general/functions.dart.strong.transformed.expect b/pkg/front_end/testcases/general/functions.dart.strong.transformed.expect
index f6f35ca..c10936d 100644
--- a/pkg/front_end/testcases/general/functions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/functions.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
f.call(a: "Hello, World");
f.call();
}
- local.call(({dynamic a = #C1}) → core::Null? {
+ local.call(({dynamic a = #C1}) → Null {
core::print(a);
});
}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.expect
index 9284232..cedeb06 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.expect
@@ -14,7 +14,7 @@
import "dart:core" as core;
static method main() → dynamic {
- <T extends core::Object* = dynamic>(T*) →* core::Null? x = let final <T extends core::Object* = dynamic>(T*) →* core::Null? f = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in f;
+ <T extends core::Object* = dynamic>(T*) →* Null x = let final <T extends core::Object* = dynamic>(T*) →* Null f = <T extends core::Object* = dynamic>(T* t) → Null {} in f;
core::print(x.{core::Object::runtimeType});
- core::print(let final <T extends core::Object* = dynamic>(T*) →* core::Null? g = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in g);
+ core::print(let final <T extends core::Object* = dynamic>(T*) →* Null g = <T extends core::Object* = dynamic>(T* t) → Null {} in g);
}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.transformed.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.transformed.expect
index 9284232..cedeb06 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.strong.transformed.expect
@@ -14,7 +14,7 @@
import "dart:core" as core;
static method main() → dynamic {
- <T extends core::Object* = dynamic>(T*) →* core::Null? x = let final <T extends core::Object* = dynamic>(T*) →* core::Null? f = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in f;
+ <T extends core::Object* = dynamic>(T*) →* Null x = let final <T extends core::Object* = dynamic>(T*) →* Null f = <T extends core::Object* = dynamic>(T* t) → Null {} in f;
core::print(x.{core::Object::runtimeType});
- core::print(let final <T extends core::Object* = dynamic>(T*) →* core::Null? g = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in g);
+ core::print(let final <T extends core::Object* = dynamic>(T*) →* Null g = <T extends core::Object* = dynamic>(T* t) → Null {} in g);
}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.expect
index ad827f9..63bcf5a 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.expect
@@ -11,5 +11,5 @@
static method main() → dynamic {
function f() → void {}
- core::print(let final () →* core::Null? f = () → core::Null? {} in f);
+ core::print(let final () →* Null f = () → Null {} in f);
}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.transformed.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.transformed.expect
index ad827f9..63bcf5a 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.strong.transformed.expect
@@ -11,5 +11,5 @@
static method main() → dynamic {
function f() → void {}
- core::print(let final () →* core::Null? f = () → core::Null? {} in f);
+ core::print(let final () →* Null f = () → Null {} in f);
}
diff --git a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.outline.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.outline.expect
index 4fd9000..5e88de7 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.outline.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.outline.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
class Class extends core::Object {
- field core::Map<core::String*, (core::String*) →* core::Null?>* map;
+ field core::Map<core::String*, (core::String*) →* Null>* map;
synthetic constructor •() → self::Class*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.expect
index 500ccc5..cb4d5f5 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
class Class extends core::Object {
- field core::Map<core::String*, (core::String*) →* core::Null?>* map = <core::String*, (core::String*) →* core::Null?>{"foo": (core::String* a) → core::Null? {
+ field core::Map<core::String*, (core::String*) →* Null>* map = <core::String*, (core::String*) →* Null>{"foo": (core::String* a) → Null {
core::int* c = a.{core::String::length};
}};
synthetic constructor •() → self::Class*
diff --git a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.transformed.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.transformed.expect
index 500ccc5..cb4d5f5 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
class Class extends core::Object {
- field core::Map<core::String*, (core::String*) →* core::Null?>* map = <core::String*, (core::String*) →* core::Null?>{"foo": (core::String* a) → core::Null? {
+ field core::Map<core::String*, (core::String*) →* Null>* map = <core::String*, (core::String*) →* Null>{"foo": (core::String* a) → Null {
core::int* c = a.{core::String::length};
}};
synthetic constructor •() → self::Class*
diff --git a/pkg/front_end/testcases/general/issue39344.dart.strong.expect b/pkg/front_end/testcases/general/issue39344.dart.strong.expect
index 72dd918..c0a0a59 100644
--- a/pkg/front_end/testcases/general/issue39344.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue39344.dart.strong.expect
@@ -91,11 +91,11 @@
static field core::List<self::B*>* xs;
static field core::List<core::List<self::B*>*>* xss;
static method main() → void {
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2a}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2b}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
diff --git a/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect
index 72dd918..c0a0a59 100644
--- a/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect
@@ -91,11 +91,11 @@
static field core::List<self::B*>* xs;
static field core::List<core::List<self::B*>*>* xss;
static method main() → void {
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2a}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2b}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
diff --git a/pkg/front_end/testcases/general/issue39421.dart.outline.expect b/pkg/front_end/testcases/general/issue39421.dart.outline.expect
index bda5699..7f2378b 100644
--- a/pkg/front_end/testcases/general/issue39421.dart.outline.expect
+++ b/pkg/front_end/testcases/general/issue39421.dart.outline.expect
@@ -50,7 +50,7 @@
class B extends core::Object {
synthetic constructor •() → self::B*
;
- method foo(core::List<core::Null?>* a) → dynamic
+ method foo(core::List<Null>* a) → dynamic
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/general/issue39421.dart.strong.expect b/pkg/front_end/testcases/general/issue39421.dart.strong.expect
index 2285c0d..cb1d71a 100644
--- a/pkg/front_end/testcases/general/issue39421.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue39421.dart.strong.expect
@@ -57,7 +57,7 @@
synthetic constructor •() → self::B*
: super core::Object::•()
;
- method foo(core::List<core::Null?>* a) → dynamic {}
+ method foo(core::List<Null>* a) → dynamic {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/general/issue39421.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue39421.dart.strong.transformed.expect
index 2285c0d..cb1d71a 100644
--- a/pkg/front_end/testcases/general/issue39421.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue39421.dart.strong.transformed.expect
@@ -57,7 +57,7 @@
synthetic constructor •() → self::B*
: super core::Object::•()
;
- method foo(core::List<core::Null?>* a) → dynamic {}
+ method foo(core::List<Null>* a) → dynamic {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/general/issue39817.dart.strong.expect b/pkg/front_end/testcases/general/issue39817.dart.strong.expect
index 217fc5e..cad4f51 100644
--- a/pkg/front_end/testcases/general/issue39817.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue39817.dart.strong.expect
@@ -1,9 +1,8 @@
library;
import self as self;
-import "dart:core" as core;
static method foo() → dynamic {
- core::Null? _null;
+ Null _null;
for (dynamic i in _null) {
}
;
diff --git a/pkg/front_end/testcases/general/issue39817.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue39817.dart.strong.transformed.expect
index da4a799..cad4f51 100644
--- a/pkg/front_end/testcases/general/issue39817.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue39817.dart.strong.transformed.expect
@@ -1,15 +1,9 @@
library;
import self as self;
-import "dart:core" as core;
static method foo() → dynamic {
- core::Null? _null;
- {
- core::Iterator<core::Null?>* :sync-for-iterator = _null.{core::Iterable::iterator};
- for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
- dynamic i = :sync-for-iterator.{core::Iterator::current};
- {}
- }
+ Null _null;
+ for (dynamic i in _null) {
}
;
}
diff --git a/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
index 2b93494..d7e7eca 100644
--- a/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
@@ -31,7 +31,7 @@
:async_temporary_1 = x.{core::num::+}(1);
:async_temporary_0 = x.{core::num::+}(2);
[yield] let dynamic #t1 = asy::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- :async_temporary_2 = <core::int*>[_in::unsafeCast<core::int*>(:async_temporary_1), _in::unsafeCast<core::int*>(:async_temporary_0), _in::unsafeCast<core::Null?>(:result)];
+ :async_temporary_2 = <core::int*>[_in::unsafeCast<core::int*>(:async_temporary_1), _in::unsafeCast<core::int*>(:async_temporary_0), _in::unsafeCast<Null>(:result)];
}
else {
:async_temporary_2 = null;
diff --git a/pkg/front_end/testcases/general/issue40744.dart.strong.expect b/pkg/front_end/testcases/general/issue40744.dart.strong.expect
index fe38c65..ba04d64 100644
--- a/pkg/front_end/testcases/general/issue40744.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue40744.dart.strong.expect
@@ -7,7 +7,7 @@
core::print(input);
}
static method main() → void {
- final core::Map<core::String*, core::Null?>* nullValueMap = core::Map::fromEntries<core::String*, core::Null?>((#C4).{core::Map::entries}.{core::Iterable::map}<core::MapEntry<core::String*, core::Null?>*>((core::MapEntry<core::String*, dynamic>* e) → core::MapEntry<core::String*, core::Null?>* => new core::MapEntry::_<core::String*, core::Null?>(e.{core::MapEntry::key}, null)));
+ final core::Map<core::String*, Null>* nullValueMap = core::Map::fromEntries<core::String*, Null>((#C4).{core::Map::entries}.{core::Iterable::map}<core::MapEntry<core::String*, Null>*>((core::MapEntry<core::String*, dynamic>* e) → core::MapEntry<core::String*, Null>* => new core::MapEntry::_<core::String*, Null>(e.{core::MapEntry::key}, null)));
self::helper(nullValueMap);
}
diff --git a/pkg/front_end/testcases/general/issue40744.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue40744.dart.strong.transformed.expect
index fe38c65..ba04d64 100644
--- a/pkg/front_end/testcases/general/issue40744.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue40744.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
core::print(input);
}
static method main() → void {
- final core::Map<core::String*, core::Null?>* nullValueMap = core::Map::fromEntries<core::String*, core::Null?>((#C4).{core::Map::entries}.{core::Iterable::map}<core::MapEntry<core::String*, core::Null?>*>((core::MapEntry<core::String*, dynamic>* e) → core::MapEntry<core::String*, core::Null?>* => new core::MapEntry::_<core::String*, core::Null?>(e.{core::MapEntry::key}, null)));
+ final core::Map<core::String*, Null>* nullValueMap = core::Map::fromEntries<core::String*, Null>((#C4).{core::Map::entries}.{core::Iterable::map}<core::MapEntry<core::String*, Null>*>((core::MapEntry<core::String*, dynamic>* e) → core::MapEntry<core::String*, Null>* => new core::MapEntry::_<core::String*, Null>(e.{core::MapEntry::key}, null)));
self::helper(nullValueMap);
}
diff --git a/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.outline.expect b/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.outline.expect
index 1883ef1..15cb773 100644
--- a/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.outline.expect
+++ b/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.outline.expect
@@ -2,25 +2,25 @@
import self as self;
import "dart:core" as core;
-typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (core::Null?) →* void;
-typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((core::Null?) →* void) →* void;
-typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((core::Null?) →* void) →* void) →* void;
-typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((core::Null?) →* void) →* void) →* void) →* void;
-typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((core::Null?) →* void) →* void) →* void) →* void) →* void;
-typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (Null) →* void;
+typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((Null) →* void) →* void;
+typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((Null) →* void) →* void) →* void;
+typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((Null) →* void) →* void) →* void) →* void;
+typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((Null) →* void) →* void) →* void) →* void) →* void;
+typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((Null) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.expect b/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.expect
index e62ba24..10636b1 100644
--- a/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.expect
+++ b/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.expect
@@ -2,24 +2,24 @@
import self as self;
import "dart:core" as core;
-typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (core::Null?) →* void;
-typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((core::Null?) →* void) →* void;
-typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((core::Null?) →* void) →* void) →* void;
-typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((core::Null?) →* void) →* void) →* void) →* void;
-typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((core::Null?) →* void) →* void) →* void) →* void) →* void;
-typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (Null) →* void;
+typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((Null) →* void) →* void;
+typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((Null) →* void) →* void) →* void;
+typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((Null) →* void) →* void) →* void) →* void;
+typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((Null) →* void) →* void) →* void) →* void) →* void;
+typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((Null) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.transformed.expect b/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.transformed.expect
index e62ba24..10636b1 100644
--- a/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/long_chain_of_typedefs.dart.strong.transformed.expect
@@ -2,24 +2,24 @@
import self as self;
import "dart:core" as core;
-typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (core::Null?) →* void;
-typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((core::Null?) →* void) →* void;
-typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((core::Null?) →* void) →* void) →* void;
-typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((core::Null?) →* void) →* void) →* void) →* void;
-typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((core::Null?) →* void) →* void) →* void) →* void) →* void;
-typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (Null) →* void;
+typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((Null) →* void) →* void;
+typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((Null) →* void) →* void) →* void;
+typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((Null) →* void) →* void) →* void) →* void;
+typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((Null) →* void) →* void) →* void) →* void) →* void;
+typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((Null) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart b/pkg/front_end/testcases/general/mixin_covariant2.dart
new file mode 100644
index 0000000..8454114
--- /dev/null
+++ b/pkg/front_end/testcases/general/mixin_covariant2.dart
@@ -0,0 +1,53 @@
+// Copyright (c) 2020, 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.
+
+class Superclass {
+ String method1(num argument1, num argument2) => "Superclass";
+ String method2(num argument1, num argument2) => "Superclass";
+ String method3(num argument1, covariant int argument2) => "Superclass";
+ String method4(num argument1, covariant num argument2) => "Superclass";
+}
+
+class Mixin {
+ String method1(num argument1, num argument2) => "Mixin";
+ String method2(covariant int argument1, num argument2) => "Mixin";
+ String method3(num argument1, num argument2) => "Mixin";
+ String method4(covariant int argument1, int argument2) => "Mixin";
+}
+
+class Class extends Superclass with Mixin {}
+
+main() {
+ Class c = new Class();
+ expect("Mixin", c.method1(0, 1));
+ expect("Mixin", c.method2(0, 1));
+ expect("Mixin", c.method3(0, 1));
+ expect("Mixin", c.method4(0, 1));
+
+ Superclass s = c;
+ expect("Mixin", s.method1(0.5, 1.5));
+ throws(() => s.method2(0.5, 1.5));
+ expect("Mixin", s.method3(0.5, 1));
+ throws(() => s.method4(0.5, 1));
+ expect("Mixin", s.method4(1, 0.5));
+
+ Mixin m = c;
+ expect("Mixin", m.method1(0, 1));
+ expect("Mixin", m.method2(0, 1));
+ expect("Mixin", m.method3(0, 1));
+ expect("Mixin", m.method4(0, 1));
+}
+
+void expect(expected, actual) {
+ if (expected != actual) throw 'Expected $expected, actual $actual';
+}
+
+void throws(void Function() f) {
+ try {
+ f();
+ } catch (_) {
+ return;
+ }
+ throw 'Expected exception';
+}
diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.outline.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.outline.expect
new file mode 100644
index 0000000..8a608cb
--- /dev/null
+++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.outline.expect
@@ -0,0 +1,68 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Superclass extends core::Object {
+ synthetic constructor •() → self::Superclass*
+ ;
+ method method1(core::num* argument1, core::num* argument2) → core::String*
+ ;
+ method method2(core::num* argument1, core::num* argument2) → core::String*
+ ;
+ method method3(core::num* argument1, covariant core::int* argument2) → core::String*
+ ;
+ method method4(core::num* argument1, covariant core::num* argument2) → core::String*
+ ;
+ abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+ abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+ abstract member-signature method toString() → core::String*; -> core::Object::toString
+ abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+class Mixin extends core::Object {
+ synthetic constructor •() → self::Mixin*
+ ;
+ method method1(core::num* argument1, core::num* argument2) → core::String*
+ ;
+ method method2(covariant core::int* argument1, core::num* argument2) → core::String*
+ ;
+ method method3(core::num* argument1, core::num* argument2) → core::String*
+ ;
+ method method4(covariant core::int* argument1, core::int* argument2) → core::String*
+ ;
+ abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+ abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+ abstract member-signature method toString() → core::String*; -> core::Object::toString
+ abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+abstract class _Class&Superclass&Mixin = self::Superclass with self::Mixin /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_Class&Superclass&Mixin*
+ : super self::Superclass::•()
+ ;
+ abstract forwarding-stub method method2(covariant core::num* argument1, core::num* argument2) → core::String*;
+ forwarding-stub method method3(core::num* argument1, covariant core::num* argument2) → core::String*
+ return super.{self::Superclass::method3}(argument1, argument2);
+ forwarding-stub method method4(covariant core::num* argument1, covariant core::num* argument2) → core::String*
+ return super.{self::Superclass::method4}(argument1, argument2);
+}
+class Class extends self::_Class&Superclass&Mixin {
+ synthetic constructor •() → self::Class*
+ ;
+}
+static method main() → dynamic
+ ;
+static method expect(dynamic expected, dynamic actual) → void
+ ;
+static method throws(() →* void f) → void
+ ;
diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.expect
new file mode 100644
index 0000000..62e8537
--- /dev/null
+++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.expect
@@ -0,0 +1,96 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Superclass extends core::Object {
+ synthetic constructor •() → self::Superclass*
+ : super core::Object::•()
+ ;
+ method method1(core::num* argument1, core::num* argument2) → core::String*
+ return "Superclass";
+ method method2(core::num* argument1, core::num* argument2) → core::String*
+ return "Superclass";
+ method method3(core::num* argument1, covariant core::int* argument2) → core::String*
+ return "Superclass";
+ method method4(core::num* argument1, covariant core::num* argument2) → core::String*
+ return "Superclass";
+ abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+ abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+ abstract member-signature method toString() → core::String*; -> core::Object::toString
+ abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+class Mixin extends core::Object {
+ synthetic constructor •() → self::Mixin*
+ : super core::Object::•()
+ ;
+ method method1(core::num* argument1, core::num* argument2) → core::String*
+ return "Mixin";
+ method method2(covariant core::int* argument1, core::num* argument2) → core::String*
+ return "Mixin";
+ method method3(core::num* argument1, core::num* argument2) → core::String*
+ return "Mixin";
+ method method4(covariant core::int* argument1, core::int* argument2) → core::String*
+ return "Mixin";
+ abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+ abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+ abstract member-signature method toString() → core::String*; -> core::Object::toString
+ abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+abstract class _Class&Superclass&Mixin = self::Superclass with self::Mixin /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_Class&Superclass&Mixin*
+ : super self::Superclass::•()
+ ;
+ abstract forwarding-stub method method2(covariant core::num* argument1, core::num* argument2) → core::String*;
+ forwarding-stub method method3(core::num* argument1, covariant core::num* argument2) → core::String*
+ return super.{self::Superclass::method3}(argument1, argument2);
+ forwarding-stub method method4(covariant core::num* argument1, covariant core::num* argument2) → core::String*
+ return super.{self::Superclass::method4}(argument1, argument2);
+}
+class Class extends self::_Class&Superclass&Mixin {
+ synthetic constructor •() → self::Class*
+ : super self::_Class&Superclass&Mixin::•()
+ ;
+}
+static method main() → dynamic {
+ self::Class* c = new self::Class::•();
+ self::expect("Mixin", c.{self::Mixin::method1}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method2}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method3}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method4}(0, 1));
+ self::Superclass* s = c;
+ self::expect("Mixin", s.{self::Superclass::method1}(0.5, 1.5));
+ self::throws(() → core::String* => s.{self::Superclass::method2}(0.5, 1.5));
+ self::expect("Mixin", s.{self::Superclass::method3}(0.5, 1));
+ self::throws(() → core::String* => s.{self::Superclass::method4}(0.5, 1));
+ self::expect("Mixin", s.{self::Superclass::method4}(1, 0.5));
+ self::Mixin* m = c;
+ self::expect("Mixin", m.{self::Mixin::method1}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method2}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method3}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method4}(0, 1));
+}
+static method expect(dynamic expected, dynamic actual) → void {
+ if(!expected.{core::Object::==}(actual))
+ throw "Expected ${expected}, actual ${actual}";
+}
+static method throws(() →* void f) → void {
+ try {
+ f.call();
+ }
+ on dynamic catch(final dynamic _) {
+ return;
+ }
+ throw "Expected exception";
+}
diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline.expect
new file mode 100644
index 0000000..6f22d96
--- /dev/null
+++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline.expect
@@ -0,0 +1,19 @@
+class Superclass {
+ String method1(num argument1, num argument2) => "Superclass";
+ String method2(num argument1, num argument2) => "Superclass";
+ String method3(num argument1, covariant int argument2) => "Superclass";
+ String method4(num argument1, covariant num argument2) => "Superclass";
+}
+
+class Mixin {
+ String method1(num argument1, num argument2) => "Mixin";
+ String method2(covariant int argument1, num argument2) => "Mixin";
+ String method3(num argument1, num argument2) => "Mixin";
+ String method4(covariant int argument1, int argument2) => "Mixin";
+}
+
+class Class extends Superclass with Mixin {}
+
+main() {}
+void expect(expected, actual) {}
+void throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..9f3d0b4
--- /dev/null
+++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline_modelled.expect
@@ -0,0 +1,19 @@
+class Class extends Superclass with Mixin {}
+
+class Mixin {
+ String method1(num argument1, num argument2) => "Mixin";
+ String method2(covariant int argument1, num argument2) => "Mixin";
+ String method3(num argument1, num argument2) => "Mixin";
+ String method4(covariant int argument1, int argument2) => "Mixin";
+}
+
+class Superclass {
+ String method1(num argument1, num argument2) => "Superclass";
+ String method2(num argument1, num argument2) => "Superclass";
+ String method3(num argument1, covariant int argument2) => "Superclass";
+ String method4(num argument1, covariant num argument2) => "Superclass";
+}
+
+main() {}
+void expect(expected, actual) {}
+void throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/general/named_function_scope.dart.strong.expect b/pkg/front_end/testcases/general/named_function_scope.dart.strong.expect
index f2faf67..3fc22fe 100644
--- a/pkg/front_end/testcases/general/named_function_scope.dart.strong.expect
+++ b/pkg/front_end/testcases/general/named_function_scope.dart.strong.expect
@@ -118,14 +118,14 @@
self::T* t;
self::V* v;
{
- function T() → core::Null? {}
+ function T() → Null {}
}
{
dynamic v;
}
{
self::T* t;
- () →* core::Null? x = let final () →* core::Null? T = () → core::Null? {} in T;
+ () →* Null x = let final () →* Null T = () → Null {} in T;
}
{
self::V* v;
@@ -140,9 +140,9 @@
^" in null;
}
{
- () →* core::Null? x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:41:15: Error: Can't declare 'T' because it was already used in this scope.
+ () →* Null x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:41:15: Error: Can't declare 'T' because it was already used in this scope.
var x = T T() {};
- ^" in let final () →* core::Null? T = () → core::Null? {} in T;
+ ^" in let final () →* Null T = () → Null {} in T;
}
{
self::V* V = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:47:7: Error: Can't declare 'V' because it was already used in this scope.
@@ -150,9 +150,9 @@
^" as{TypeError,ForDynamic} self::V*;
}
{
- <T extends core::Object* = dynamic>() →* core::Null? x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:52:13: Error: 'T' is already declared in this scope.
+ <T extends core::Object* = dynamic>() →* Null x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:52:13: Error: 'T' is already declared in this scope.
var x = T<T>() {};
- ^" in let final <T extends core::Object* = dynamic>() →* core::Null? T = <T extends core::Object* = dynamic>() → core::Null? {} in T;
+ ^" in let final <T extends core::Object* = dynamic>() →* Null T = <T extends core::Object* = dynamic>() → Null {} in T;
}
{
self::T* t;
diff --git a/pkg/front_end/testcases/general/named_function_scope.dart.strong.transformed.expect b/pkg/front_end/testcases/general/named_function_scope.dart.strong.transformed.expect
index 6ec0166..b651183 100644
--- a/pkg/front_end/testcases/general/named_function_scope.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/named_function_scope.dart.strong.transformed.expect
@@ -118,14 +118,14 @@
self::T* t;
self::V* v;
{
- function T() → core::Null? {}
+ function T() → Null {}
}
{
dynamic v;
}
{
self::T* t;
- () →* core::Null? x = let final () →* core::Null? T = () → core::Null? {} in T;
+ () →* Null x = let final () →* Null T = () → Null {} in T;
}
{
self::V* v;
@@ -140,9 +140,9 @@
^" in null;
}
{
- () →* core::Null? x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:41:15: Error: Can't declare 'T' because it was already used in this scope.
+ () →* Null x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:41:15: Error: Can't declare 'T' because it was already used in this scope.
var x = T T() {};
- ^" in let final () →* core::Null? T = () → core::Null? {} in T;
+ ^" in let final () →* Null T = () → Null {} in T;
}
{
self::V* V = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:47:7: Error: Can't declare 'V' because it was already used in this scope.
@@ -150,9 +150,9 @@
^";
}
{
- <T extends core::Object* = dynamic>() →* core::Null? x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:52:13: Error: 'T' is already declared in this scope.
+ <T extends core::Object* = dynamic>() →* Null x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:52:13: Error: 'T' is already declared in this scope.
var x = T<T>() {};
- ^" in let final <T extends core::Object* = dynamic>() →* core::Null? T = <T extends core::Object* = dynamic>() → core::Null? {} in T;
+ ^" in let final <T extends core::Object* = dynamic>() →* Null T = <T extends core::Object* = dynamic>() → Null {} in T;
}
{
self::T* t;
diff --git a/pkg/front_end/testcases/general/nested_variance.dart.outline.expect b/pkg/front_end/testcases/general/nested_variance.dart.outline.expect
index 2768327..1172b5e 100644
--- a/pkg/front_end/testcases/general/nested_variance.dart.outline.expect
+++ b/pkg/front_end/testcases/general/nested_variance.dart.outline.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
@@ -29,7 +29,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Acon<X extends (self::Acon::Y*) →* dynamic = (Null) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -71,7 +71,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -127,7 +127,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
+class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (Null) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -155,7 +155,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (Null) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -169,7 +169,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -183,7 +183,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((Null) →* dynamic) →* (Null) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/general/nested_variance.dart.strong.expect b/pkg/front_end/testcases/general/nested_variance.dart.strong.expect
index 722c19a..e1dd3c7 100644
--- a/pkg/front_end/testcases/general/nested_variance.dart.strong.expect
+++ b/pkg/front_end/testcases/general/nested_variance.dart.strong.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Acon<X extends (self::Acon::Y*) →* dynamic = (Null) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
: super core::Object::•()
;
@@ -75,7 +75,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
@@ -135,7 +135,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
+class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (Null) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
: super core::Object::•()
;
@@ -165,7 +165,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (Null) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -180,7 +180,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -195,7 +195,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((Null) →* dynamic) →* (Null) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -231,69 +231,69 @@
self::Acov<() →* dynamic, dynamic>* source1;
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void fsource1 = self::toF<self::Acov<() →* dynamic, dynamic>*>(source1);
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void target1 = fsource1;
- self::Acon<(core::Null?) →* dynamic, dynamic>* source2;
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(core::Null?) →* dynamic, dynamic>*>(source2);
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
+ self::Acon<(Null) →* dynamic, dynamic>* source2;
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(Null) →* dynamic, dynamic>*>(source2);
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
self::Ainv<(dynamic) →* dynamic, dynamic>* source3;
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void fsource3 = self::toF<self::Ainv<(dynamic) →* dynamic, dynamic>*>(source3);
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void target3 = fsource3;
self::AcovBound<() →* core::num*, core::num*>* source4;
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void fsource4 = self::toF<self::AcovBound<() →* core::num*, core::num*>*>(source4);
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void target4 = fsource4;
- self::AconBound<(core::Null?) →* dynamic, core::num*>* source5;
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(core::Null?) →* dynamic, core::num*>*>(source5);
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
+ self::AconBound<(Null) →* dynamic, core::num*>* source5;
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(Null) →* dynamic, core::num*>*>(source5);
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
self::AinvBound<(core::num*) →* core::num*, core::num*>* source6;
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void fsource6 = self::toF<self::AinvBound<(core::num*) →* core::num*, core::num*>*>(source6);
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void target6 = fsource6;
self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* source7;
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>(source7);
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
- self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* source8;
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>(source8);
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
+ self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* source8;
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>(source8);
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>* source9;
- self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source10;
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source10);
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target10 = fsource10;
- self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* source11;
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source11);
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target11 = fsource11;
- self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source12;
+ self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* source10;
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>(source10);
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target10 = fsource10;
+ self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* source11;
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>(source11);
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target11 = fsource11;
+ self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>* source12;
}
static method testNested() → void {
self::B<self::Acov<() →* dynamic, dynamic>*>* source1;
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void fsource1 = self::toF<self::B<self::Acov<() →* dynamic, dynamic>*>*>(source1);
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void target1 = fsource1;
- self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* source2;
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>*>(source2);
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
+ self::B<self::Acon<(Null) →* dynamic, dynamic>*>* source2;
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(Null) →* dynamic, dynamic>*>*>(source2);
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* source3;
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void fsource3 = self::toF<self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>*>(source3);
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void target3 = fsource3;
self::B<self::AcovBound<() →* core::num*, core::num*>*>* source4;
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void fsource4 = self::toF<self::B<self::AcovBound<() →* core::num*, core::num*>*>*>(source4);
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void target4 = fsource4;
- self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* source5;
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>*>(source5);
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
+ self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* source5;
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(Null) →* dynamic, core::num*>*>*>(source5);
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* source6;
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void fsource6 = self::toF<self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>*>(source6);
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void target6 = fsource6;
self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* source7;
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void fsource7 = self::toF<self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>*>(source7);
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void target7 = fsource7;
- self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* source8;
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>*>(source8);
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
+ self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* source8;
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>*>(source8);
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>*>* source9;
- self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source10;
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source10);
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
- self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source11;
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source11);
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
- self::B<self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source12;
+ self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* source10;
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>*>(source10);
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
+ self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* source11;
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>*>(source11);
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
+ self::B<self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>*>* source12;
}
static method main() → dynamic {
self::testTypeAliasAsTypeArgument();
diff --git a/pkg/front_end/testcases/general/nested_variance.dart.strong.transformed.expect b/pkg/front_end/testcases/general/nested_variance.dart.strong.transformed.expect
index 722c19a..e1dd3c7 100644
--- a/pkg/front_end/testcases/general/nested_variance.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/nested_variance.dart.strong.transformed.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Acon<X extends (self::Acon::Y*) →* dynamic = (Null) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
: super core::Object::•()
;
@@ -75,7 +75,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
@@ -135,7 +135,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
+class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (Null) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
: super core::Object::•()
;
@@ -165,7 +165,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (Null) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -180,7 +180,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -195,7 +195,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((Null) →* dynamic) →* (Null) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -231,69 +231,69 @@
self::Acov<() →* dynamic, dynamic>* source1;
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void fsource1 = self::toF<self::Acov<() →* dynamic, dynamic>*>(source1);
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void target1 = fsource1;
- self::Acon<(core::Null?) →* dynamic, dynamic>* source2;
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(core::Null?) →* dynamic, dynamic>*>(source2);
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
+ self::Acon<(Null) →* dynamic, dynamic>* source2;
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(Null) →* dynamic, dynamic>*>(source2);
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
self::Ainv<(dynamic) →* dynamic, dynamic>* source3;
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void fsource3 = self::toF<self::Ainv<(dynamic) →* dynamic, dynamic>*>(source3);
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void target3 = fsource3;
self::AcovBound<() →* core::num*, core::num*>* source4;
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void fsource4 = self::toF<self::AcovBound<() →* core::num*, core::num*>*>(source4);
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void target4 = fsource4;
- self::AconBound<(core::Null?) →* dynamic, core::num*>* source5;
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(core::Null?) →* dynamic, core::num*>*>(source5);
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
+ self::AconBound<(Null) →* dynamic, core::num*>* source5;
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(Null) →* dynamic, core::num*>*>(source5);
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
self::AinvBound<(core::num*) →* core::num*, core::num*>* source6;
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void fsource6 = self::toF<self::AinvBound<(core::num*) →* core::num*, core::num*>*>(source6);
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void target6 = fsource6;
self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* source7;
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>(source7);
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
- self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* source8;
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>(source8);
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
+ self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* source8;
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>(source8);
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>* source9;
- self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source10;
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source10);
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target10 = fsource10;
- self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* source11;
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source11);
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target11 = fsource11;
- self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source12;
+ self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* source10;
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>(source10);
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target10 = fsource10;
+ self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* source11;
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>(source11);
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target11 = fsource11;
+ self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>* source12;
}
static method testNested() → void {
self::B<self::Acov<() →* dynamic, dynamic>*>* source1;
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void fsource1 = self::toF<self::B<self::Acov<() →* dynamic, dynamic>*>*>(source1);
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void target1 = fsource1;
- self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* source2;
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>*>(source2);
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
+ self::B<self::Acon<(Null) →* dynamic, dynamic>*>* source2;
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(Null) →* dynamic, dynamic>*>*>(source2);
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* source3;
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void fsource3 = self::toF<self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>*>(source3);
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void target3 = fsource3;
self::B<self::AcovBound<() →* core::num*, core::num*>*>* source4;
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void fsource4 = self::toF<self::B<self::AcovBound<() →* core::num*, core::num*>*>*>(source4);
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void target4 = fsource4;
- self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* source5;
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>*>(source5);
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
+ self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* source5;
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(Null) →* dynamic, core::num*>*>*>(source5);
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* source6;
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void fsource6 = self::toF<self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>*>(source6);
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void target6 = fsource6;
self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* source7;
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void fsource7 = self::toF<self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>*>(source7);
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void target7 = fsource7;
- self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* source8;
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>*>(source8);
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
+ self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* source8;
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>*>(source8);
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>*>* source9;
- self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source10;
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source10);
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
- self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source11;
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source11);
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
- self::B<self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source12;
+ self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* source10;
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>*>(source10);
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
+ self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* source11;
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>*>(source11);
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
+ self::B<self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>*>* source12;
}
static method main() → dynamic {
self::testTypeAliasAsTypeArgument();
diff --git a/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect b/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect
index 13f8db4..bb66d2f 100644
--- a/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect
@@ -23,7 +23,7 @@
#L1:
{
[yield] let dynamic #t1 = asy::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- _in::unsafeCast<core::Null?>(:result);
+ _in::unsafeCast<Null>(:result);
core::print("hello");
}
asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.expect b/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.expect
index 039d5b6..39064e3 100644
--- a/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.expect
+++ b/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.expect
@@ -19,7 +19,7 @@
generic-covariant-impl field <S extends self::C::T* = dynamic>(S*) →* S* field14;
generic-covariant-impl field (<S extends self::C::T* = dynamic>() →* S*) →* void field15;
constructor •(self::C::T* field1) → self::C<self::C::T*>*
- : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → core::Null? {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → core::Null? {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → core::Null? {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → core::Null? {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → core::Null? => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → core::Null? {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → core::Null? {}, super core::Object::•()
+ : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → Null {}, super core::Object::•()
;
get getter1() → self::C::T*
return this.{self::C::field1};
@@ -318,7 +318,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter3} = (core::num* n) → core::Null? {};
+ c.{self::C::setter3} = (core::num* n) → Null {};
try {
c.{self::C::setter4} = (core::num* n) → core::double* => 0.5;
throw "TypeError expected";
@@ -333,7 +333,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter6} = (() →* core::num* f) → core::Null? {};
+ c.{self::C::setter6} = (() →* core::num* f) → Null {};
try {
c.{self::C::setter7} = (() →* core::num* f) → core::double* => 0.5;
throw "TypeError expected";
@@ -342,7 +342,7 @@
core::print(e);
}
try {
- c.{self::C::setter8} = ((core::double*) →* void f) → core::Null? {};
+ c.{self::C::setter8} = ((core::double*) →* void f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -356,7 +356,7 @@
core::print(e);
}
try {
- c.{self::C::setter10} = ((core::double*) →* core::num* f) → core::Null? {};
+ c.{self::C::setter10} = ((core::double*) →* core::num* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -370,14 +370,14 @@
core::print(e);
}
try {
- c.{self::C::setter12} = <S extends core::num* = core::num*>() → core::Null? => null;
+ c.{self::C::setter12} = <S extends core::num* = core::num*>() → Null => null;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → core::Null? {};
+ c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -391,7 +391,7 @@
core::print(e);
}
try {
- c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → core::Null? {};
+ c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -411,7 +411,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method3}((core::num* n) → core::Null? {});
+ c.{self::C::method3}((core::num* n) → Null {});
try {
c.{self::C::method4}((core::num* n) → core::double* => 0.5);
throw "TypeError expected";
@@ -426,7 +426,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method6}((() →* core::num* f) → core::Null? {});
+ c.{self::C::method6}((() →* core::num* f) → Null {});
try {
c.{self::C::method7}((() →* core::num* f) → core::double* => 0.5);
throw "TypeError expected";
@@ -435,7 +435,7 @@
core::print(e);
}
try {
- c.{self::C::method8}(((core::double*) →* void f) → core::Null? {});
+ c.{self::C::method8}(((core::double*) →* void f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -449,7 +449,7 @@
core::print(e);
}
try {
- c.{self::C::method10}(((core::double*) →* core::num* f) → core::Null? {});
+ c.{self::C::method10}(((core::double*) →* core::num* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -463,14 +463,14 @@
core::print(e);
}
try {
- c.{self::C::method12}(<S extends core::num* = core::num*>() → core::Null? => null);
+ c.{self::C::method12}(<S extends core::num* = core::num*>() → Null => null);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → core::Null? {});
+ c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -484,7 +484,7 @@
core::print(e);
}
try {
- c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → core::Null? {});
+ c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
diff --git a/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.transformed.expect b/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.transformed.expect
index 039d5b6..39064e3 100644
--- a/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/non_covariant_checks.dart.strong.transformed.expect
@@ -19,7 +19,7 @@
generic-covariant-impl field <S extends self::C::T* = dynamic>(S*) →* S* field14;
generic-covariant-impl field (<S extends self::C::T* = dynamic>() →* S*) →* void field15;
constructor •(self::C::T* field1) → self::C<self::C::T*>*
- : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → core::Null? {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → core::Null? {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → core::Null? {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → core::Null? {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → core::Null? => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → core::Null? {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → core::Null? {}, super core::Object::•()
+ : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → Null {}, super core::Object::•()
;
get getter1() → self::C::T*
return this.{self::C::field1};
@@ -318,7 +318,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter3} = (core::num* n) → core::Null? {};
+ c.{self::C::setter3} = (core::num* n) → Null {};
try {
c.{self::C::setter4} = (core::num* n) → core::double* => 0.5;
throw "TypeError expected";
@@ -333,7 +333,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter6} = (() →* core::num* f) → core::Null? {};
+ c.{self::C::setter6} = (() →* core::num* f) → Null {};
try {
c.{self::C::setter7} = (() →* core::num* f) → core::double* => 0.5;
throw "TypeError expected";
@@ -342,7 +342,7 @@
core::print(e);
}
try {
- c.{self::C::setter8} = ((core::double*) →* void f) → core::Null? {};
+ c.{self::C::setter8} = ((core::double*) →* void f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -356,7 +356,7 @@
core::print(e);
}
try {
- c.{self::C::setter10} = ((core::double*) →* core::num* f) → core::Null? {};
+ c.{self::C::setter10} = ((core::double*) →* core::num* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -370,14 +370,14 @@
core::print(e);
}
try {
- c.{self::C::setter12} = <S extends core::num* = core::num*>() → core::Null? => null;
+ c.{self::C::setter12} = <S extends core::num* = core::num*>() → Null => null;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → core::Null? {};
+ c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -391,7 +391,7 @@
core::print(e);
}
try {
- c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → core::Null? {};
+ c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -411,7 +411,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method3}((core::num* n) → core::Null? {});
+ c.{self::C::method3}((core::num* n) → Null {});
try {
c.{self::C::method4}((core::num* n) → core::double* => 0.5);
throw "TypeError expected";
@@ -426,7 +426,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method6}((() →* core::num* f) → core::Null? {});
+ c.{self::C::method6}((() →* core::num* f) → Null {});
try {
c.{self::C::method7}((() →* core::num* f) → core::double* => 0.5);
throw "TypeError expected";
@@ -435,7 +435,7 @@
core::print(e);
}
try {
- c.{self::C::method8}(((core::double*) →* void f) → core::Null? {});
+ c.{self::C::method8}(((core::double*) →* void f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -449,7 +449,7 @@
core::print(e);
}
try {
- c.{self::C::method10}(((core::double*) →* core::num* f) → core::Null? {});
+ c.{self::C::method10}(((core::double*) →* core::num* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -463,14 +463,14 @@
core::print(e);
}
try {
- c.{self::C::method12}(<S extends core::num* = core::num*>() → core::Null? => null);
+ c.{self::C::method12}(<S extends core::num* = core::num*>() → Null => null);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → core::Null? {});
+ c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -484,7 +484,7 @@
core::print(e);
}
try {
- c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → core::Null? {});
+ c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
diff --git a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect
index c69b1b3..27deb54 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect
@@ -55,11 +55,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect
index aab1b06..4b6b1c0 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect
@@ -55,11 +55,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect b/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
index bc31717..30085d7 100644
--- a/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
@@ -104,10 +104,10 @@
{
:async_temporary_1 = new self::A::•();
[yield] let dynamic #t1 = asy::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- :async_temporary_1 = _in::unsafeCast<self::A*>(:async_temporary_1).{self::A::foo}(_in::unsafeCast<core::Null?>(:result));
+ :async_temporary_1 = _in::unsafeCast<self::A*>(:async_temporary_1).{self::A::foo}(_in::unsafeCast<Null>(:result));
:async_temporary_0 = new self::B::•();
[yield] let dynamic #t2 = asy::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- :return_value = <asy::Future<void>*>[_in::unsafeCast<asy::Future<void>*>(:async_temporary_1), _in::unsafeCast<self::B*>(:async_temporary_0).{self::B::bar}(_in::unsafeCast<core::Null?>(:result))];
+ :return_value = <asy::Future<void>*>[_in::unsafeCast<asy::Future<void>*>(:async_temporary_1), _in::unsafeCast<self::B*>(:async_temporary_0).{self::B::bar}(_in::unsafeCast<Null>(:result))];
break #L3;
}
asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.strong.expect b/pkg/front_end/testcases/general/this_field_call.dart.strong.expect
index 68c19e6..28e7d76 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.strong.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.strong.expect
@@ -21,5 +21,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::A::•<core::int*>((core::int* x) → core::Null? {}).{self::A::foo}(3);
+ new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3);
}
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.strong.transformed.expect b/pkg/front_end/testcases/general/this_field_call.dart.strong.transformed.expect
index 68c19e6..28e7d76 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.strong.transformed.expect
@@ -21,5 +21,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::A::•<core::int*>((core::int* x) → core::Null? {}).{self::A::foo}(3);
+ new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3);
}
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart.outline.expect b/pkg/front_end/testcases/general/top_level_variance_test.dart.outline.expect
index 41c6dfd..e79bd82 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart.outline.expect
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart.outline.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class A<X extends core::Object* = dynamic> extends core::Object {
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.expect b/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.expect
index 9e640df..b21e661 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.expect
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class A<X extends core::Object* = dynamic> extends core::Object {
@@ -69,13 +69,13 @@
() →* self::A<dynamic>* source7;
<Y extends () →* self::A<dynamic>* = dynamic>() →* void fsource7 = self::toF<() →* self::A<dynamic>*>(source7);
<Y extends () →* self::A<dynamic>* = dynamic>() →* void target7 = fsource7;
- (self::A<core::Null?>*) →* dynamic source8;
- <Y extends (self::A<core::Null?>*) →* dynamic = dynamic>() →* void fsource8 = self::toF<(self::A<core::Null?>*) →* dynamic>(source8);
- <Y extends (self::A<core::Null?>*) →* dynamic = dynamic>() →* void target8 = fsource8;
+ (self::A<Null>*) →* dynamic source8;
+ <Y extends (self::A<Null>*) →* dynamic = dynamic>() →* void fsource8 = self::toF<(self::A<Null>*) →* dynamic>(source8);
+ <Y extends (self::A<Null>*) →* dynamic = dynamic>() →* void target8 = fsource8;
(self::A<dynamic>*) →* self::A<dynamic>* source9;
- () →* (core::Null?) →* dynamic source10;
- <Y extends () →* (core::Null?) →* dynamic = dynamic>() →* void fsource10 = self::toF<() →* (core::Null?) →* dynamic>(source10);
- <Y extends () →* (core::Null?) →* dynamic = dynamic>() →* void target10 = fsource10;
+ () →* (Null) →* dynamic source10;
+ <Y extends () →* (Null) →* dynamic = dynamic>() →* void fsource10 = self::toF<() →* (Null) →* dynamic>(source10);
+ <Y extends () →* (Null) →* dynamic = dynamic>() →* void target10 = fsource10;
((dynamic) →* dynamic) →* dynamic source11;
<Y extends ((dynamic) →* dynamic) →* dynamic = dynamic>() →* void fsource11 = self::toF<((dynamic) →* dynamic) →* dynamic>(source11);
<Y extends ((dynamic) →* dynamic) →* dynamic = dynamic>() →* void target11 = fsource11;
@@ -105,13 +105,13 @@
self::B<() →* self::A<dynamic>*>* source7;
<Y extends self::B<() →* self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::B<() →* self::A<dynamic>*>*>(source7);
<Y extends self::B<() →* self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
- self::B<(self::A<core::Null?>*) →* dynamic>* source8;
- <Y extends self::B<(self::A<core::Null?>*) →* dynamic>* = dynamic>() →* void fsource8 = self::toF<self::B<(self::A<core::Null?>*) →* dynamic>*>(source8);
- <Y extends self::B<(self::A<core::Null?>*) →* dynamic>* = dynamic>() →* void target8 = fsource8;
+ self::B<(self::A<Null>*) →* dynamic>* source8;
+ <Y extends self::B<(self::A<Null>*) →* dynamic>* = dynamic>() →* void fsource8 = self::toF<self::B<(self::A<Null>*) →* dynamic>*>(source8);
+ <Y extends self::B<(self::A<Null>*) →* dynamic>* = dynamic>() →* void target8 = fsource8;
self::B<(self::A<dynamic>*) →* self::A<dynamic>*>* source9;
- self::B<() →* (core::Null?) →* dynamic>* source10;
- <Y extends self::B<() →* (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::B<() →* (core::Null?) →* dynamic>*>(source10);
- <Y extends self::B<() →* (core::Null?) →* dynamic>* = dynamic>() →* void target10 = fsource10;
+ self::B<() →* (Null) →* dynamic>* source10;
+ <Y extends self::B<() →* (Null) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::B<() →* (Null) →* dynamic>*>(source10);
+ <Y extends self::B<() →* (Null) →* dynamic>* = dynamic>() →* void target10 = fsource10;
self::B<((dynamic) →* dynamic) →* dynamic>* source11;
<Y extends self::B<((dynamic) →* dynamic) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::B<((dynamic) →* dynamic) →* dynamic>*>(source11);
<Y extends self::B<((dynamic) →* dynamic) →* dynamic>* = dynamic>() →* void target11 = fsource11;
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.transformed.expect b/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.transformed.expect
index 9e640df..b21e661 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart.strong.transformed.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class A<X extends core::Object* = dynamic> extends core::Object {
@@ -69,13 +69,13 @@
() →* self::A<dynamic>* source7;
<Y extends () →* self::A<dynamic>* = dynamic>() →* void fsource7 = self::toF<() →* self::A<dynamic>*>(source7);
<Y extends () →* self::A<dynamic>* = dynamic>() →* void target7 = fsource7;
- (self::A<core::Null?>*) →* dynamic source8;
- <Y extends (self::A<core::Null?>*) →* dynamic = dynamic>() →* void fsource8 = self::toF<(self::A<core::Null?>*) →* dynamic>(source8);
- <Y extends (self::A<core::Null?>*) →* dynamic = dynamic>() →* void target8 = fsource8;
+ (self::A<Null>*) →* dynamic source8;
+ <Y extends (self::A<Null>*) →* dynamic = dynamic>() →* void fsource8 = self::toF<(self::A<Null>*) →* dynamic>(source8);
+ <Y extends (self::A<Null>*) →* dynamic = dynamic>() →* void target8 = fsource8;
(self::A<dynamic>*) →* self::A<dynamic>* source9;
- () →* (core::Null?) →* dynamic source10;
- <Y extends () →* (core::Null?) →* dynamic = dynamic>() →* void fsource10 = self::toF<() →* (core::Null?) →* dynamic>(source10);
- <Y extends () →* (core::Null?) →* dynamic = dynamic>() →* void target10 = fsource10;
+ () →* (Null) →* dynamic source10;
+ <Y extends () →* (Null) →* dynamic = dynamic>() →* void fsource10 = self::toF<() →* (Null) →* dynamic>(source10);
+ <Y extends () →* (Null) →* dynamic = dynamic>() →* void target10 = fsource10;
((dynamic) →* dynamic) →* dynamic source11;
<Y extends ((dynamic) →* dynamic) →* dynamic = dynamic>() →* void fsource11 = self::toF<((dynamic) →* dynamic) →* dynamic>(source11);
<Y extends ((dynamic) →* dynamic) →* dynamic = dynamic>() →* void target11 = fsource11;
@@ -105,13 +105,13 @@
self::B<() →* self::A<dynamic>*>* source7;
<Y extends self::B<() →* self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::B<() →* self::A<dynamic>*>*>(source7);
<Y extends self::B<() →* self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
- self::B<(self::A<core::Null?>*) →* dynamic>* source8;
- <Y extends self::B<(self::A<core::Null?>*) →* dynamic>* = dynamic>() →* void fsource8 = self::toF<self::B<(self::A<core::Null?>*) →* dynamic>*>(source8);
- <Y extends self::B<(self::A<core::Null?>*) →* dynamic>* = dynamic>() →* void target8 = fsource8;
+ self::B<(self::A<Null>*) →* dynamic>* source8;
+ <Y extends self::B<(self::A<Null>*) →* dynamic>* = dynamic>() →* void fsource8 = self::toF<self::B<(self::A<Null>*) →* dynamic>*>(source8);
+ <Y extends self::B<(self::A<Null>*) →* dynamic>* = dynamic>() →* void target8 = fsource8;
self::B<(self::A<dynamic>*) →* self::A<dynamic>*>* source9;
- self::B<() →* (core::Null?) →* dynamic>* source10;
- <Y extends self::B<() →* (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::B<() →* (core::Null?) →* dynamic>*>(source10);
- <Y extends self::B<() →* (core::Null?) →* dynamic>* = dynamic>() →* void target10 = fsource10;
+ self::B<() →* (Null) →* dynamic>* source10;
+ <Y extends self::B<() →* (Null) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::B<() →* (Null) →* dynamic>*>(source10);
+ <Y extends self::B<() →* (Null) →* dynamic>* = dynamic>() →* void target10 = fsource10;
self::B<((dynamic) →* dynamic) →* dynamic>* source11;
<Y extends self::B<((dynamic) →* dynamic) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::B<((dynamic) →* dynamic) →* dynamic>*>(source11);
<Y extends self::B<((dynamic) →* dynamic) →* dynamic>* = dynamic>() →* void target11 = fsource11;
diff --git a/pkg/front_end/testcases/general/type_of_null.dart b/pkg/front_end/testcases/general/type_of_null.dart
index 70292a1..9e0b34b 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart
+++ b/pkg/front_end/testcases/general/type_of_null.dart
@@ -10,22 +10,22 @@
Null foo() => null;
main() {
- /*@ typeArgs=Null? */ map(/*@ returnType=Null? */ () {},
+ /*@ typeArgs=Null */ map(/*@ returnType=Null */ () {},
/*@ returnType=<BottomType> */ () => throw "hello");
- /*@ typeArgs=Null? */ map(/*@ returnType=<BottomType> */ () => throw "hello",
- /*@ returnType=Null? */ () {});
- Null Function() f = /*@ returnType=Null? */ () {};
- /*@ typeArgs=Null? */ map(
+ /*@ typeArgs=Null */ map(/*@ returnType=<BottomType> */ () => throw "hello",
+ /*@ returnType=Null */ () {});
+ Null Function() f = /*@ returnType=Null */ () {};
+ /*@ typeArgs=Null */ map(
foo, /*@ returnType=<BottomType> */ () => throw "hello");
- /*@ typeArgs=Null? */ map(
+ /*@ typeArgs=Null */ map(
/*@ returnType=<BottomType> */ () => throw "hello", foo);
- /*@ typeArgs=Null? */ map(/*@ returnType=Null? */ () {
+ /*@ typeArgs=Null */ map(/*@ returnType=Null */ () {
return null;
}, /*@ returnType=<BottomType> */ () => throw "hello");
- /*@ typeArgs=Null? */ map(/*@ returnType=<BottomType> */ () => throw "hello",
- /*@ returnType=Null? */ () {
+ /*@ typeArgs=Null */ map(/*@ returnType=<BottomType> */ () => throw "hello",
+ /*@ returnType=Null */ () {
return null;
});
- /*@ typeArgs=() ->* Null? */ id(/*@ returnType=Null? */ () {});
+ /*@ typeArgs=() ->* Null */ id(/*@ returnType=Null */ () {});
}
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.outline.expect b/pkg/front_end/testcases/general/type_of_null.dart.outline.expect
index 3485e02..b7c00566 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.outline.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.outline.expect
@@ -6,7 +6,7 @@
;
static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
;
-static method foo() → core::Null?
+static method foo() → Null
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.strong.expect b/pkg/front_end/testcases/general/type_of_null.dart.strong.expect
index c0c8997..335ccc5 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.strong.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.strong.expect
@@ -5,21 +5,21 @@
static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T* {}
static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
return t;
-static method foo() → core::Null?
+static method foo() → Null
return null;
static method main() → dynamic {
- self::map<core::Null?>(() → core::Null? {}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {});
- () →* core::Null? f = () → core::Null? {};
- self::map<core::Null?>(#C1, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", #C1);
- self::map<core::Null?>(() → core::Null? {
+ self::map<Null>(() → Null {}, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {});
+ () →* Null f = () → Null {};
+ self::map<Null>(#C1, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", #C1);
+ self::map<Null>(() → Null {
return null;
}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {
return null;
});
- self::id<() →* core::Null?>(() → core::Null? {});
+ self::id<() →* Null>(() → Null {});
}
constants {
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.strong.transformed.expect b/pkg/front_end/testcases/general/type_of_null.dart.strong.transformed.expect
index c0c8997..335ccc5 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.strong.transformed.expect
@@ -5,21 +5,21 @@
static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T* {}
static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
return t;
-static method foo() → core::Null?
+static method foo() → Null
return null;
static method main() → dynamic {
- self::map<core::Null?>(() → core::Null? {}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {});
- () →* core::Null? f = () → core::Null? {};
- self::map<core::Null?>(#C1, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", #C1);
- self::map<core::Null?>(() → core::Null? {
+ self::map<Null>(() → Null {}, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {});
+ () →* Null f = () → Null {};
+ self::map<Null>(#C1, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", #C1);
+ self::map<Null>(() → Null {
return null;
}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {
return null;
});
- self::id<() →* core::Null?>(() → core::Null? {});
+ self::id<() →* Null>(() → Null {});
}
constants {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect
index 0aaa824..4c86065 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect
@@ -35,9 +35,9 @@
@#C1 core::String* localWithInitializer = "hello";
@#C1 @#C2 dynamic localGroupPart1;
@#C1 @#C2 dynamic localGroupPart2;
- function naebdyr(@#C1 dynamic nestedFormal) → core::Null?
+ function naebdyr(@#C1 dynamic nestedFormal) → Null
return null;
- (dynamic) →* core::Null? roedmus = (@#C1 dynamic closureFormal) → core::Null? => null;
+ (dynamic) →* Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
}
method hest({@#C1 dynamic named = #C3}) → dynamic
return null;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect
index 0aaa824..4c86065 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect
@@ -35,9 +35,9 @@
@#C1 core::String* localWithInitializer = "hello";
@#C1 @#C2 dynamic localGroupPart1;
@#C1 @#C2 dynamic localGroupPart2;
- function naebdyr(@#C1 dynamic nestedFormal) → core::Null?
+ function naebdyr(@#C1 dynamic nestedFormal) → Null
return null;
- (dynamic) →* core::Null? roedmus = (@#C1 dynamic closureFormal) → core::Null? => null;
+ (dynamic) →* Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
}
method hest({@#C1 dynamic named = #C3}) → dynamic
return null;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.expect
index 7ed1303..c916da3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.expect
@@ -15,7 +15,7 @@
field dynamic x;
field dynamic y;
constructor •(dynamic x) → self::A*
- : self::A::x = x, self::A::y = () → core::Null? {
+ : self::A::x = x, self::A::y = () → Null {
invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart:15:11: Error: Can't assign to the final variable 'x'.
x = 3;
^";
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.transformed.expect
index 7ed1303..c916da3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart.weak.transformed.expect
@@ -15,7 +15,7 @@
field dynamic x;
field dynamic y;
constructor •(dynamic x) → self::A*
- : self::A::x = x, self::A::y = () → core::Null? {
+ : self::A::x = x, self::A::y = () → Null {
invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/assign_to_initializing_formal.dart:15:11: Error: Can't assign to the final variable 'x'.
x = 3;
^";
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect
index e224292..6e4306c 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect
@@ -60,7 +60,7 @@
static const field self::_FailingTest* failingTest = #C1;
static method main() → dynamic {
mir::ClassMirror* classMirror = mir::reflectClass(self::MyTest2*);
- classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → core::Null? {
+ classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → Null {
if(memberMirror.{mir::DeclarationMirror::simpleName}.{core::Symbol::==}(#C2)) {
core::print(memberMirror);
core::print(self::_hasFailingTestAnnotation(memberMirror));
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect
index 5d13162..34304c6 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect
@@ -62,7 +62,7 @@
static const field self::_FailingTest* failingTest = #C1;
static method main() → dynamic {
mir::ClassMirror* classMirror = mir::reflectClass(self::MyTest2*);
- classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → core::Null? {
+ classMirror.{mir::ClassMirror::instanceMembers}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → Null {
if(memberMirror.{mir::DeclarationMirror::simpleName}.{core::Symbol::==}(#C2)) {
core::print(memberMirror);
core::print(self::_hasFailingTestAnnotation(memberMirror));
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.expect
index cf2e1f7..112e0e4 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.expect
@@ -8,7 +8,7 @@
;
method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
core::print("foo: T = ${self::A::T*}");
- return <S extends self::A::T* = self::A::T*>(S* a) → core::Null? {};
+ return <S extends self::A::T* = self::A::T*>(S* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -27,7 +27,7 @@
;
method foo() → (self::B::T*) →* void {
core::print("foo: T = ${self::B::T*}");
- return (self::B::T* a) → core::Null? {};
+ return (self::B::T* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.transformed.expect
index cf2e1f7..112e0e4 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug37476.dart.weak.transformed.expect
@@ -8,7 +8,7 @@
;
method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
core::print("foo: T = ${self::A::T*}");
- return <S extends self::A::T* = self::A::T*>(S* a) → core::Null? {};
+ return <S extends self::A::T* = self::A::T*>(S* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -27,7 +27,7 @@
;
method foo() → (self::B::T*) →* void {
core::print("foo: T = ${self::B::T*}");
- return (self::B::T* a) → core::Null? {};
+ return (self::B::T* a) → Null {};
}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect
index 8adcafe..5bf2809 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect
@@ -40,11 +40,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect
index 8adcafe..5bf2809 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect
@@ -40,11 +40,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect
index 6d7de1d..a8cfc9f 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect
@@ -1162,10 +1162,10 @@
core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
- core::Map<dynamic, core::Null?>* map12 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map12 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
^": null};
- core::Map<dynamic, core::Null?>* map13 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map13 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
core::List<core::int*>* list20 = block {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
index 0b06074..82629da 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
@@ -1402,10 +1402,10 @@
core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
- core::Map<dynamic, core::Null?>* map12 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map12 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
^": null};
- core::Map<dynamic, core::Null?>* map13 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
+ core::Map<dynamic, Null>* map13 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
^": null};
core::List<core::int*>* list20 = block {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.expect
index 7c34544..48b1bf5 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.expect
@@ -28,22 +28,22 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → core::Null? {});
+ self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → Null {});
fooInt.{self::Foo::method}(3);
fooInt.{self::Foo::setter} = 3;
- fooInt.{self::Foo::withCallback}((core::int* x) → core::Null? {});
- fooInt.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooInt.{self::Foo::withCallback}((core::int* x) → Null {});
+ fooInt.{self::Foo::withCallback}((core::num* x) → Null {});
fooInt.{self::Foo::mutableField} = 3;
- fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → core::Null? {};
+ fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → Null {};
self::Foo<core::num*>* fooNum = fooInt;
fooNum.{self::Foo::method}(3);
fooNum.{self::Foo::method}(2.5);
fooNum.{self::Foo::setter} = 3;
fooNum.{self::Foo::setter} = 2.5;
- fooNum.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooNum.{self::Foo::withCallback}((core::num* x) → Null {});
fooNum.{self::Foo::mutableField} = 3;
fooNum.{self::Foo::mutableField} = 2.5;
let final self::Foo<core::num*>* #t1 = fooNum in let final core::int* #t2 = 3 in (#t1.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t2);
let final self::Foo<core::num*>* #t3 = fooNum in let final core::double* #t4 = 2.5 in (#t3.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t4);
- fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → core::Null? {};
+ fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → Null {};
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.transformed.expect
index 5707da5..bcccf29 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/covariant_generic.dart.weak.transformed.expect
@@ -28,24 +28,24 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → core::Null? {});
+ self::Foo<core::int*>* fooInt = new self::Foo::•<core::int*>(1, (core::int* x) → Null {});
fooInt.{self::Foo::method}(3);
fooInt.{self::Foo::setter} = 3;
- fooInt.{self::Foo::withCallback}((core::int* x) → core::Null? {});
- fooInt.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooInt.{self::Foo::withCallback}((core::int* x) → Null {});
+ fooInt.{self::Foo::withCallback}((core::num* x) → Null {});
fooInt.{self::Foo::mutableField} = 3;
- fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → core::Null? {};
+ fooInt.{self::Foo::mutableCallbackField} = (core::int* x) → Null {};
self::Foo<core::num*>* fooNum = fooInt;
fooNum.{self::Foo::method}(3);
fooNum.{self::Foo::method}(2.5);
fooNum.{self::Foo::setter} = 3;
fooNum.{self::Foo::setter} = 2.5;
- fooNum.{self::Foo::withCallback}((core::num* x) → core::Null? {});
+ fooNum.{self::Foo::withCallback}((core::num* x) → Null {});
fooNum.{self::Foo::mutableField} = 3;
fooNum.{self::Foo::mutableField} = 2.5;
let final self::Foo<core::num*>* #t1 = fooNum in let final core::int* #t2 = 3 in (#t1.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t2);
let final self::Foo<core::num*>* #t3 = fooNum in let final core::double* #t4 = 2.5 in (#t3.{self::Foo::mutableCallbackField} as{TypeError,CovarianceCheck} (core::num*) →* void).call(#t4);
- fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → core::Null? {};
+ fooNum.{self::Foo::mutableCallbackField} = (core::num* x) → Null {};
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.expect
index b2251bc..51baa0f 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_05_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.transformed.expect
index b2251bc..51baa0f 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_05.dart.weak.transformed.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_05_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_05_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.expect
index c50067b..eafc70a 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_06_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.transformed.expect
index c50067b..eafc70a 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_06.dart.weak.transformed.expect
@@ -17,12 +17,11 @@
// ^
//
import self as self;
-import "dart:core" as core;
part error_location_06_lib1.dart;
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x1(dynamic z, {dynamic z = #C1}) → dynamic {}
static method /* from org-dartlang-testcase:///error_location_06_lib1.dart */ x2() → dynamic {
- function y(dynamic z, {dynamic z = #C1}) → core::Null? {}
+ function y(dynamic z, {dynamic z = #C1}) → Null {}
}
constants {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect
index b408161..9b072b2 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect
@@ -51,25 +51,25 @@
core::print(#C2);
core::print(core::List::•<core::String*>(2).{core::Object::runtimeType});
self::foo(fisk: "Blorp gulp");
- function f() → core::Null? {
+ function f() → Null {
core::print("f was called");
}
self::caller(f);
- self::caller(() → core::Null? {
+ self::caller(() → Null {
core::print("<anon> was called");
});
- function g([dynamic message = #C1]) → core::Null? {
+ function g([dynamic message = #C1]) → Null {
core::print(message);
}
g.call("Hello, World");
- self::caller(([dynamic x = #C1]) → core::Null? {
+ self::caller(([dynamic x = #C1]) → Null {
core::print("<anon> was called with ${x}");
});
- function h({dynamic message = #C1}) → core::Null? {
+ function h({dynamic message = #C1}) → Null {
core::print(message);
}
h.call(message: "Hello, World");
- self::caller(({dynamic x = #C1}) → core::Null? {
+ self::caller(({dynamic x = #C1}) → Null {
core::print("<anon> was called with ${x}");
});
core::print(core::int*.{core::Type::toString}());
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
index 3e91f0c..e1c2ce2 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
@@ -51,25 +51,25 @@
core::print(#C2);
core::print(core::_List::•<core::String*>(2).{core::Object::runtimeType});
self::foo(fisk: "Blorp gulp");
- function f() → core::Null? {
+ function f() → Null {
core::print("f was called");
}
self::caller(f);
- self::caller(() → core::Null? {
+ self::caller(() → Null {
core::print("<anon> was called");
});
- function g([dynamic message = #C1]) → core::Null? {
+ function g([dynamic message = #C1]) → Null {
core::print(message);
}
g.call("Hello, World");
- self::caller(([dynamic x = #C1]) → core::Null? {
+ self::caller(([dynamic x = #C1]) → Null {
core::print("<anon> was called with ${x}");
});
- function h({dynamic message = #C1}) → core::Null? {
+ function h({dynamic message = #C1}) → Null {
core::print(message);
}
h.call(message: "Hello, World");
- self::caller(({dynamic x = #C1}) → core::Null? {
+ self::caller(({dynamic x = #C1}) → Null {
core::print("<anon> was called with ${x}");
});
core::print(core::int*.{core::Type::toString}());
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.expect
index 9279097..3e17d2c 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.expect
@@ -14,5 +14,5 @@
return 100;
}
static method main() → dynamic {
- exp::Expect::equals(111, self::test(() → core::Null? => null).+(self::test((core::Object* o) → core::Null? => null)).+(self::test((core::Object* o, core::StackTrace* t) → core::Null? => null)));
+ exp::Expect::equals(111, self::test(() → Null => null).+(self::test((core::Object* o) → Null => null)).+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.transformed.expect
index 9279097..3e17d2c 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/function_type_is_check.dart.weak.transformed.expect
@@ -14,5 +14,5 @@
return 100;
}
static method main() → dynamic {
- exp::Expect::equals(111, self::test(() → core::Null? => null).+(self::test((core::Object* o) → core::Null? => null)).+(self::test((core::Object* o, core::StackTrace* t) → core::Null? => null)));
+ exp::Expect::equals(111, self::test(() → Null => null).+(self::test((core::Object* o) → Null => null)).+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.expect
index f6f35ca..c10936d 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.expect
@@ -7,7 +7,7 @@
f.call(a: "Hello, World");
f.call();
}
- local.call(({dynamic a = #C1}) → core::Null? {
+ local.call(({dynamic a = #C1}) → Null {
core::print(a);
});
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.transformed.expect
index f6f35ca..c10936d 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/functions.dart.weak.transformed.expect
@@ -7,7 +7,7 @@
f.call(a: "Hello, World");
f.call();
}
- local.call(({dynamic a = #C1}) → core::Null? {
+ local.call(({dynamic a = #C1}) → Null {
core::print(a);
});
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.expect
index 9a73a4f..040f77f 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.expect
@@ -1,9 +1,8 @@
library;
import self as self;
-import "dart:core" as core;
import "dart:async";
-static get foo() → FutureOr<core::Null?>*
+static get foo() → FutureOr<Null>*
return null;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.transformed.expect
index 9a73a4f..040f77f 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/future_or_null_test.dart.weak.transformed.expect
@@ -1,9 +1,8 @@
library;
import self as self;
-import "dart:core" as core;
import "dart:async";
-static get foo() → FutureOr<core::Null?>*
+static get foo() → FutureOr<Null>*
return null;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.expect
index 9951e94..0681005 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.expect
@@ -14,7 +14,7 @@
import "dart:core" as core;
static method main() → dynamic {
- <T extends core::Object* = dynamic>(T*) →* core::Null? x = let final <T extends core::Object* = dynamic>(T*) →* core::Null? f = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in f;
+ <T extends core::Object* = dynamic>(T*) →* Null x = let final <T extends core::Object* = dynamic>(T*) →* Null f = <T extends core::Object* = dynamic>(T* t) → Null {} in f;
core::print(x.{core::Object::runtimeType});
- core::print(let final <T extends core::Object* = dynamic>(T*) →* core::Null? g = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in g);
+ core::print(let final <T extends core::Object* = dynamic>(T*) →* Null g = <T extends core::Object* = dynamic>(T* t) → Null {} in g);
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.transformed.expect
index 9951e94..0681005 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression.dart.weak.transformed.expect
@@ -14,7 +14,7 @@
import "dart:core" as core;
static method main() → dynamic {
- <T extends core::Object* = dynamic>(T*) →* core::Null? x = let final <T extends core::Object* = dynamic>(T*) →* core::Null? f = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in f;
+ <T extends core::Object* = dynamic>(T*) →* Null x = let final <T extends core::Object* = dynamic>(T*) →* Null f = <T extends core::Object* = dynamic>(T* t) → Null {} in f;
core::print(x.{core::Object::runtimeType});
- core::print(let final <T extends core::Object* = dynamic>(T*) →* core::Null? g = <T extends core::Object* = dynamic>(T* t) → core::Null? {} in g);
+ core::print(let final <T extends core::Object* = dynamic>(T*) →* Null g = <T extends core::Object* = dynamic>(T* t) → Null {} in g);
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.expect
index b4e24a2..215b3e3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.expect
@@ -11,5 +11,5 @@
static method main() → dynamic {
function f() → void {}
- core::print(let final () →* core::Null? f = () → core::Null? {} in f);
+ core::print(let final () →* Null f = () → Null {} in f);
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.transformed.expect
index b4e24a2..215b3e3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/illegal_named_function_expression_scope.dart.weak.transformed.expect
@@ -11,5 +11,5 @@
static method main() → dynamic {
function f() → void {}
- core::print(let final () →* core::Null? f = () → core::Null? {} in f);
+ core::print(let final () →* Null f = () → Null {} in f);
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.expect
index d10b917..7874ca5 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.expect
@@ -91,11 +91,11 @@
static field core::List<self::B*>* xs;
static field core::List<core::List<self::B*>*>* xss;
static method main() → void {
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2a}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2b}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect
index d10b917..7874ca5 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect
@@ -91,11 +91,11 @@
static field core::List<self::B*>* xs;
static field core::List<core::List<self::B*>*>* xss;
static method main() → void {
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2a}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
- self::throws(() → core::Null? {
+ self::throws(() → Null {
new self::Class::•<self::A*>().{self::Class::method2b}(new self::B::•());
core::print(self::xs.{core::Object::runtimeType});
});
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.expect
index ddd4406..c9cb480 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.expect
@@ -57,7 +57,7 @@
synthetic constructor •() → self::B*
: super core::Object::•()
;
- method foo(core::List<core::Null?>* a) → dynamic {}
+ method foo(core::List<Null>* a) → dynamic {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.transformed.expect
index ddd4406..c9cb480 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/issue39421.dart.weak.transformed.expect
@@ -57,7 +57,7 @@
synthetic constructor •() → self::B*
: super core::Object::•()
;
- method foo(core::List<core::Null?>* a) → dynamic {}
+ method foo(core::List<Null>* a) → dynamic {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.expect
index 217fc5e..cad4f51 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.expect
@@ -1,9 +1,8 @@
library;
import self as self;
-import "dart:core" as core;
static method foo() → dynamic {
- core::Null? _null;
+ Null _null;
for (dynamic i in _null) {
}
;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.transformed.expect
index da4a799..cad4f51 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/issue39817.dart.weak.transformed.expect
@@ -1,15 +1,9 @@
library;
import self as self;
-import "dart:core" as core;
static method foo() → dynamic {
- core::Null? _null;
- {
- core::Iterator<core::Null?>* :sync-for-iterator = _null.{core::Iterable::iterator};
- for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
- dynamic i = :sync-for-iterator.{core::Iterator::current};
- {}
- }
+ Null _null;
+ for (dynamic i in _null) {
}
;
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.expect
index e62ba24..10636b1 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.expect
@@ -2,24 +2,24 @@
import self as self;
import "dart:core" as core;
-typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (core::Null?) →* void;
-typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((core::Null?) →* void) →* void;
-typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((core::Null?) →* void) →* void) →* void;
-typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((core::Null?) →* void) →* void) →* void) →* void;
-typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((core::Null?) →* void) →* void) →* void) →* void) →* void;
-typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (Null) →* void;
+typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((Null) →* void) →* void;
+typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((Null) →* void) →* void) →* void;
+typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((Null) →* void) →* void) →* void) →* void;
+typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((Null) →* void) →* void) →* void) →* void) →* void;
+typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((Null) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.transformed.expect
index e62ba24..10636b1 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/long_chain_of_typedefs.dart.weak.transformed.expect
@@ -2,24 +2,24 @@
import self as self;
import "dart:core" as core;
-typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (core::Null?) →* void;
-typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((core::Null?) →* void) →* void;
-typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((core::Null?) →* void) →* void) →* void;
-typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((core::Null?) →* void) →* void) →* void) →* void;
-typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((core::Null?) →* void) →* void) →* void) →* void) →* void;
-typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
-typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((core::Null?) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo01<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (Null) →* void;
+typedef Foo02<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((Null) →* void) →* void;
+typedef Foo03<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((Null) →* void) →* void) →* void;
+typedef Foo04<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((Null) →* void) →* void) →* void) →* void;
+typedef Foo05<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((Null) →* void) →* void) →* void) →* void) →* void;
+typedef Foo06<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((Null) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo07<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo08<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo09<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo10<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo11<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo12<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo13<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo14<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo15<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo16<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo17<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo18<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo19<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = (((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
+typedef Foo20<unrelated X extends core::Object* = dynamic, unrelated Y extends core::Object* = dynamic, unrelated Z extends core::Object* = dynamic> = ((((((((((((((((((((Null) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void) →* void;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.expect
index d9e93b7..06487ac 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.expect
@@ -118,14 +118,14 @@
self::T* t;
self::V* v;
{
- function T() → core::Null? {}
+ function T() → Null {}
}
{
dynamic v;
}
{
self::T* t;
- () →* core::Null? x = let final () →* core::Null? T = () → core::Null? {} in T;
+ () →* Null x = let final () →* Null T = () → Null {} in T;
}
{
self::V* v;
@@ -140,9 +140,9 @@
^" in null;
}
{
- () →* core::Null? x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:43:15: Error: Can't declare 'T' because it was already used in this scope.
+ () →* Null x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:43:15: Error: Can't declare 'T' because it was already used in this scope.
var x = T T() {};
- ^" in let final () →* core::Null? T = () → core::Null? {} in T;
+ ^" in let final () →* Null T = () → Null {} in T;
}
{
self::V* V = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:49:7: Error: Can't declare 'V' because it was already used in this scope.
@@ -150,9 +150,9 @@
^" as{TypeError,ForDynamic} self::V*;
}
{
- <T extends core::Object* = dynamic>() →* core::Null? x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:54:13: Error: 'T' is already declared in this scope.
+ <T extends core::Object* = dynamic>() →* Null x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:54:13: Error: 'T' is already declared in this scope.
var x = T<T>() {};
- ^" in let final <T extends core::Object* = dynamic>() →* core::Null? T = <T extends core::Object* = dynamic>() → core::Null? {} in T;
+ ^" in let final <T extends core::Object* = dynamic>() →* Null T = <T extends core::Object* = dynamic>() → Null {} in T;
}
{
self::T* t;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.transformed.expect
index ba82dfc..2f063fe 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart.weak.transformed.expect
@@ -118,14 +118,14 @@
self::T* t;
self::V* v;
{
- function T() → core::Null? {}
+ function T() → Null {}
}
{
dynamic v;
}
{
self::T* t;
- () →* core::Null? x = let final () →* core::Null? T = () → core::Null? {} in T;
+ () →* Null x = let final () →* Null T = () → Null {} in T;
}
{
self::V* v;
@@ -140,9 +140,9 @@
^" in null;
}
{
- () →* core::Null? x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:43:15: Error: Can't declare 'T' because it was already used in this scope.
+ () →* Null x = let final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:43:15: Error: Can't declare 'T' because it was already used in this scope.
var x = T T() {};
- ^" in let final () →* core::Null? T = () → core::Null? {} in T;
+ ^" in let final () →* Null T = () → Null {} in T;
}
{
self::V* V = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:49:7: Error: Can't declare 'V' because it was already used in this scope.
@@ -150,9 +150,9 @@
^";
}
{
- <T extends core::Object* = dynamic>() →* core::Null? x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:54:13: Error: 'T' is already declared in this scope.
+ <T extends core::Object* = dynamic>() →* Null x = let final dynamic #t3 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/named_function_scope.dart:54:13: Error: 'T' is already declared in this scope.
var x = T<T>() {};
- ^" in let final <T extends core::Object* = dynamic>() →* core::Null? T = <T extends core::Object* = dynamic>() → core::Null? {} in T;
+ ^" in let final <T extends core::Object* = dynamic>() →* Null T = <T extends core::Object* = dynamic>() → Null {} in T;
}
{
self::T* t;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.expect
index 722c19a..e1dd3c7 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Acon<X extends (self::Acon::Y*) →* dynamic = (Null) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
: super core::Object::•()
;
@@ -75,7 +75,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
@@ -135,7 +135,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
+class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (Null) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
: super core::Object::•()
;
@@ -165,7 +165,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (Null) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -180,7 +180,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -195,7 +195,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((Null) →* dynamic) →* (Null) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -231,69 +231,69 @@
self::Acov<() →* dynamic, dynamic>* source1;
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void fsource1 = self::toF<self::Acov<() →* dynamic, dynamic>*>(source1);
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void target1 = fsource1;
- self::Acon<(core::Null?) →* dynamic, dynamic>* source2;
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(core::Null?) →* dynamic, dynamic>*>(source2);
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
+ self::Acon<(Null) →* dynamic, dynamic>* source2;
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(Null) →* dynamic, dynamic>*>(source2);
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
self::Ainv<(dynamic) →* dynamic, dynamic>* source3;
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void fsource3 = self::toF<self::Ainv<(dynamic) →* dynamic, dynamic>*>(source3);
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void target3 = fsource3;
self::AcovBound<() →* core::num*, core::num*>* source4;
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void fsource4 = self::toF<self::AcovBound<() →* core::num*, core::num*>*>(source4);
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void target4 = fsource4;
- self::AconBound<(core::Null?) →* dynamic, core::num*>* source5;
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(core::Null?) →* dynamic, core::num*>*>(source5);
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
+ self::AconBound<(Null) →* dynamic, core::num*>* source5;
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(Null) →* dynamic, core::num*>*>(source5);
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
self::AinvBound<(core::num*) →* core::num*, core::num*>* source6;
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void fsource6 = self::toF<self::AinvBound<(core::num*) →* core::num*, core::num*>*>(source6);
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void target6 = fsource6;
self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* source7;
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>(source7);
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
- self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* source8;
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>(source8);
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
+ self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* source8;
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>(source8);
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>* source9;
- self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source10;
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source10);
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target10 = fsource10;
- self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* source11;
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source11);
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target11 = fsource11;
- self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source12;
+ self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* source10;
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>(source10);
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target10 = fsource10;
+ self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* source11;
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>(source11);
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target11 = fsource11;
+ self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>* source12;
}
static method testNested() → void {
self::B<self::Acov<() →* dynamic, dynamic>*>* source1;
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void fsource1 = self::toF<self::B<self::Acov<() →* dynamic, dynamic>*>*>(source1);
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void target1 = fsource1;
- self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* source2;
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>*>(source2);
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
+ self::B<self::Acon<(Null) →* dynamic, dynamic>*>* source2;
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(Null) →* dynamic, dynamic>*>*>(source2);
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* source3;
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void fsource3 = self::toF<self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>*>(source3);
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void target3 = fsource3;
self::B<self::AcovBound<() →* core::num*, core::num*>*>* source4;
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void fsource4 = self::toF<self::B<self::AcovBound<() →* core::num*, core::num*>*>*>(source4);
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void target4 = fsource4;
- self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* source5;
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>*>(source5);
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
+ self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* source5;
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(Null) →* dynamic, core::num*>*>*>(source5);
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* source6;
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void fsource6 = self::toF<self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>*>(source6);
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void target6 = fsource6;
self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* source7;
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void fsource7 = self::toF<self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>*>(source7);
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void target7 = fsource7;
- self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* source8;
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>*>(source8);
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
+ self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* source8;
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>*>(source8);
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>*>* source9;
- self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source10;
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source10);
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
- self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source11;
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source11);
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
- self::B<self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source12;
+ self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* source10;
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>*>(source10);
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
+ self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* source11;
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>*>(source11);
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
+ self::B<self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>*>* source12;
}
static method main() → dynamic {
self::testTypeAliasAsTypeArgument();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.transformed.expect
index 722c19a..e1dd3c7 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/nested_variance.dart.weak.transformed.expect
@@ -10,9 +10,9 @@
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
-typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
+typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
-typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
+typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Acon<X extends (self::Acon::Y*) →* dynamic = (Null) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
: super core::Object::•()
;
@@ -75,7 +75,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
@@ -135,7 +135,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
+class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (Null) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
: super core::Object::•()
;
@@ -165,7 +165,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (Null) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -180,7 +180,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -195,7 +195,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
+class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((Null) →* dynamic) →* (Null) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
: super core::Object::•()
;
@@ -231,69 +231,69 @@
self::Acov<() →* dynamic, dynamic>* source1;
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void fsource1 = self::toF<self::Acov<() →* dynamic, dynamic>*>(source1);
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void target1 = fsource1;
- self::Acon<(core::Null?) →* dynamic, dynamic>* source2;
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(core::Null?) →* dynamic, dynamic>*>(source2);
- <Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
+ self::Acon<(Null) →* dynamic, dynamic>* source2;
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(Null) →* dynamic, dynamic>*>(source2);
+ <Y extends self::Acon<(Null) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
self::Ainv<(dynamic) →* dynamic, dynamic>* source3;
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void fsource3 = self::toF<self::Ainv<(dynamic) →* dynamic, dynamic>*>(source3);
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void target3 = fsource3;
self::AcovBound<() →* core::num*, core::num*>* source4;
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void fsource4 = self::toF<self::AcovBound<() →* core::num*, core::num*>*>(source4);
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void target4 = fsource4;
- self::AconBound<(core::Null?) →* dynamic, core::num*>* source5;
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(core::Null?) →* dynamic, core::num*>*>(source5);
- <Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
+ self::AconBound<(Null) →* dynamic, core::num*>* source5;
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(Null) →* dynamic, core::num*>*>(source5);
+ <Y extends self::AconBound<(Null) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
self::AinvBound<(core::num*) →* core::num*, core::num*>* source6;
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void fsource6 = self::toF<self::AinvBound<(core::num*) →* core::num*, core::num*>*>(source6);
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void target6 = fsource6;
self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* source7;
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>(source7);
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
- self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* source8;
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>(source8);
- <Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
+ self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* source8;
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>(source8);
+ <Y extends self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>* source9;
- self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source10;
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source10);
- <Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target10 = fsource10;
- self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* source11;
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source11);
- <Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void target11 = fsource11;
- self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source12;
+ self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* source10;
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>(source10);
+ <Y extends self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target10 = fsource10;
+ self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* source11;
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>(source11);
+ <Y extends self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>* = dynamic>() →* void target11 = fsource11;
+ self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>* source12;
}
static method testNested() → void {
self::B<self::Acov<() →* dynamic, dynamic>*>* source1;
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void fsource1 = self::toF<self::B<self::Acov<() →* dynamic, dynamic>*>*>(source1);
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void target1 = fsource1;
- self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* source2;
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>*>(source2);
- <Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
+ self::B<self::Acon<(Null) →* dynamic, dynamic>*>* source2;
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(Null) →* dynamic, dynamic>*>*>(source2);
+ <Y extends self::B<self::Acon<(Null) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* source3;
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void fsource3 = self::toF<self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>*>(source3);
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void target3 = fsource3;
self::B<self::AcovBound<() →* core::num*, core::num*>*>* source4;
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void fsource4 = self::toF<self::B<self::AcovBound<() →* core::num*, core::num*>*>*>(source4);
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void target4 = fsource4;
- self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* source5;
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>*>(source5);
- <Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
+ self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* source5;
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(Null) →* dynamic, core::num*>*>*>(source5);
+ <Y extends self::B<self::AconBound<(Null) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* source6;
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void fsource6 = self::toF<self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>*>(source6);
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void target6 = fsource6;
self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* source7;
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void fsource7 = self::toF<self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>*>(source7);
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void target7 = fsource7;
- self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* source8;
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>*>(source8);
- <Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
+ self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* source8;
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>*>(source8);
+ <Y extends self::B<self::AconCyclicBound<(Null) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>*>* source9;
- self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source10;
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source10);
- <Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
- self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source11;
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source11);
- <Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
- self::B<self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source12;
+ self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* source10;
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>*>(source10);
+ <Y extends self::B<self::AcovCyclicCoBound<() →* (Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
+ self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* source11;
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>*>(source11);
+ <Y extends self::B<self::AconCyclicCoBound<(Null) →* dynamic, (Null) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
+ self::B<self::AinvCyclicCoBound<((Null) →* dynamic) →* (Null) →* dynamic, (Null) →* dynamic>*>* source12;
}
static method main() → dynamic {
self::testTypeAliasAsTypeArgument();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.expect
index 039d5b6..39064e3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.expect
@@ -19,7 +19,7 @@
generic-covariant-impl field <S extends self::C::T* = dynamic>(S*) →* S* field14;
generic-covariant-impl field (<S extends self::C::T* = dynamic>() →* S*) →* void field15;
constructor •(self::C::T* field1) → self::C<self::C::T*>*
- : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → core::Null? {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → core::Null? {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → core::Null? {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → core::Null? {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → core::Null? => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → core::Null? {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → core::Null? {}, super core::Object::•()
+ : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → Null {}, super core::Object::•()
;
get getter1() → self::C::T*
return this.{self::C::field1};
@@ -318,7 +318,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter3} = (core::num* n) → core::Null? {};
+ c.{self::C::setter3} = (core::num* n) → Null {};
try {
c.{self::C::setter4} = (core::num* n) → core::double* => 0.5;
throw "TypeError expected";
@@ -333,7 +333,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter6} = (() →* core::num* f) → core::Null? {};
+ c.{self::C::setter6} = (() →* core::num* f) → Null {};
try {
c.{self::C::setter7} = (() →* core::num* f) → core::double* => 0.5;
throw "TypeError expected";
@@ -342,7 +342,7 @@
core::print(e);
}
try {
- c.{self::C::setter8} = ((core::double*) →* void f) → core::Null? {};
+ c.{self::C::setter8} = ((core::double*) →* void f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -356,7 +356,7 @@
core::print(e);
}
try {
- c.{self::C::setter10} = ((core::double*) →* core::num* f) → core::Null? {};
+ c.{self::C::setter10} = ((core::double*) →* core::num* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -370,14 +370,14 @@
core::print(e);
}
try {
- c.{self::C::setter12} = <S extends core::num* = core::num*>() → core::Null? => null;
+ c.{self::C::setter12} = <S extends core::num* = core::num*>() → Null => null;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → core::Null? {};
+ c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -391,7 +391,7 @@
core::print(e);
}
try {
- c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → core::Null? {};
+ c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -411,7 +411,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method3}((core::num* n) → core::Null? {});
+ c.{self::C::method3}((core::num* n) → Null {});
try {
c.{self::C::method4}((core::num* n) → core::double* => 0.5);
throw "TypeError expected";
@@ -426,7 +426,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method6}((() →* core::num* f) → core::Null? {});
+ c.{self::C::method6}((() →* core::num* f) → Null {});
try {
c.{self::C::method7}((() →* core::num* f) → core::double* => 0.5);
throw "TypeError expected";
@@ -435,7 +435,7 @@
core::print(e);
}
try {
- c.{self::C::method8}(((core::double*) →* void f) → core::Null? {});
+ c.{self::C::method8}(((core::double*) →* void f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -449,7 +449,7 @@
core::print(e);
}
try {
- c.{self::C::method10}(((core::double*) →* core::num* f) → core::Null? {});
+ c.{self::C::method10}(((core::double*) →* core::num* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -463,14 +463,14 @@
core::print(e);
}
try {
- c.{self::C::method12}(<S extends core::num* = core::num*>() → core::Null? => null);
+ c.{self::C::method12}(<S extends core::num* = core::num*>() → Null => null);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → core::Null? {});
+ c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -484,7 +484,7 @@
core::print(e);
}
try {
- c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → core::Null? {});
+ c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.transformed.expect
index 039d5b6..39064e3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/non_covariant_checks.dart.weak.transformed.expect
@@ -19,7 +19,7 @@
generic-covariant-impl field <S extends self::C::T* = dynamic>(S*) →* S* field14;
generic-covariant-impl field (<S extends self::C::T* = dynamic>() →* S*) →* void field15;
constructor •(self::C::T* field1) → self::C<self::C::T*>*
- : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → core::Null? {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → core::Null? {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → core::Null? {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → core::Null? {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → core::Null? => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → core::Null? {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → core::Null? {}, super core::Object::•()
+ : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → Null {}, super core::Object::•()
;
get getter1() → self::C::T*
return this.{self::C::field1};
@@ -318,7 +318,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter3} = (core::num* n) → core::Null? {};
+ c.{self::C::setter3} = (core::num* n) → Null {};
try {
c.{self::C::setter4} = (core::num* n) → core::double* => 0.5;
throw "TypeError expected";
@@ -333,7 +333,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::setter6} = (() →* core::num* f) → core::Null? {};
+ c.{self::C::setter6} = (() →* core::num* f) → Null {};
try {
c.{self::C::setter7} = (() →* core::num* f) → core::double* => 0.5;
throw "TypeError expected";
@@ -342,7 +342,7 @@
core::print(e);
}
try {
- c.{self::C::setter8} = ((core::double*) →* void f) → core::Null? {};
+ c.{self::C::setter8} = ((core::double*) →* void f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -356,7 +356,7 @@
core::print(e);
}
try {
- c.{self::C::setter10} = ((core::double*) →* core::num* f) → core::Null? {};
+ c.{self::C::setter10} = ((core::double*) →* core::num* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -370,14 +370,14 @@
core::print(e);
}
try {
- c.{self::C::setter12} = <S extends core::num* = core::num*>() → core::Null? => null;
+ c.{self::C::setter12} = <S extends core::num* = core::num*>() → Null => null;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → core::Null? {};
+ c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -391,7 +391,7 @@
core::print(e);
}
try {
- c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → core::Null? {};
+ c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -411,7 +411,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method3}((core::num* n) → core::Null? {});
+ c.{self::C::method3}((core::num* n) → Null {});
try {
c.{self::C::method4}((core::num* n) → core::double* => 0.5);
throw "TypeError expected";
@@ -426,7 +426,7 @@
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
- c.{self::C::method6}((() →* core::num* f) → core::Null? {});
+ c.{self::C::method6}((() →* core::num* f) → Null {});
try {
c.{self::C::method7}((() →* core::num* f) → core::double* => 0.5);
throw "TypeError expected";
@@ -435,7 +435,7 @@
core::print(e);
}
try {
- c.{self::C::method8}(((core::double*) →* void f) → core::Null? {});
+ c.{self::C::method8}(((core::double*) →* void f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -449,7 +449,7 @@
core::print(e);
}
try {
- c.{self::C::method10}(((core::double*) →* core::num* f) → core::Null? {});
+ c.{self::C::method10}(((core::double*) →* core::num* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -463,14 +463,14 @@
core::print(e);
}
try {
- c.{self::C::method12}(<S extends core::num* = core::num*>() → core::Null? => null);
+ c.{self::C::method12}(<S extends core::num* = core::num*>() → Null => null);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → core::Null? {});
+ c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -484,7 +484,7 @@
core::print(e);
}
try {
- c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → core::Null? {});
+ c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect
index c69b1b3..27deb54 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect
@@ -55,11 +55,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect
index aab1b06..4b6b1c0 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect
@@ -55,11 +55,11 @@
}
static method main() → dynamic {
dynamic x = new self::B::•<dynamic>().{self::A::x};
- if(!(x is self::_Y<core::Null?>*)) {
+ if(!(x is self::_Y<Null>*)) {
throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}}, but `_Y<Null>` expected";
}
}
constants {
- #C1 = self::_Y<core::Null?> {}
+ #C1 = self::_Y<Null> {}
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart b/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart
index b7bd527..71a7a5b 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart
@@ -12,22 +12,22 @@
Null foo() => null;
main() {
- /*@ typeArgs=Null? */ map(/*@ returnType=Null? */ () {},
+ /*@ typeArgs=Null */ map(/*@ returnType=Null */ () {},
/*@ returnType=<BottomType> */ () => throw "hello");
- /*@ typeArgs=Null? */ map(/*@ returnType=<BottomType> */ () => throw "hello",
- /*@ returnType=Null? */ () {});
- Null Function() f = /*@ returnType=Null? */ () {};
- /*@ typeArgs=Null? */ map(
+ /*@ typeArgs=Null */ map(/*@ returnType=<BottomType> */ () => throw "hello",
+ /*@ returnType=Null */ () {});
+ Null Function() f = /*@ returnType=Null */ () {};
+ /*@ typeArgs=Null */ map(
foo, /*@ returnType=<BottomType> */ () => throw "hello");
- /*@ typeArgs=Null? */ map(
+ /*@ typeArgs=Null */ map(
/*@ returnType=<BottomType> */ () => throw "hello", foo);
- /*@ typeArgs=Null? */ map(/*@ returnType=Null? */ () {
+ /*@ typeArgs=Null */ map(/*@ returnType=Null */ () {
return null;
}, /*@ returnType=<BottomType> */ () => throw "hello");
- /*@ typeArgs=Null? */ map(/*@ returnType=<BottomType> */ () => throw "hello",
- /*@ returnType=Null? */ () {
+ /*@ typeArgs=Null */ map(/*@ returnType=<BottomType> */ () => throw "hello",
+ /*@ returnType=Null */ () {
return null;
});
- /*@ typeArgs=() ->* Null? */ id(/*@ returnType=Null? */ () {});
+ /*@ typeArgs=() ->* Null */ id(/*@ returnType=Null */ () {});
}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.expect
index c0c8997..335ccc5 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.expect
@@ -5,21 +5,21 @@
static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T* {}
static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
return t;
-static method foo() → core::Null?
+static method foo() → Null
return null;
static method main() → dynamic {
- self::map<core::Null?>(() → core::Null? {}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {});
- () →* core::Null? f = () → core::Null? {};
- self::map<core::Null?>(#C1, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", #C1);
- self::map<core::Null?>(() → core::Null? {
+ self::map<Null>(() → Null {}, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {});
+ () →* Null f = () → Null {};
+ self::map<Null>(#C1, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", #C1);
+ self::map<Null>(() → Null {
return null;
}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {
return null;
});
- self::id<() →* core::Null?>(() → core::Null? {});
+ self::id<() →* Null>(() → Null {});
}
constants {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.transformed.expect
index c0c8997..335ccc5 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/type_of_null.dart.weak.transformed.expect
@@ -5,21 +5,21 @@
static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T* {}
static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
return t;
-static method foo() → core::Null?
+static method foo() → Null
return null;
static method main() → dynamic {
- self::map<core::Null?>(() → core::Null? {}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {});
- () →* core::Null? f = () → core::Null? {};
- self::map<core::Null?>(#C1, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", #C1);
- self::map<core::Null?>(() → core::Null? {
+ self::map<Null>(() → Null {}, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {});
+ () →* Null f = () → Null {};
+ self::map<Null>(#C1, () → <BottomType>=> throw "hello");
+ self::map<Null>(() → <BottomType>=> throw "hello", #C1);
+ self::map<Null>(() → Null {
return null;
}, () → <BottomType>=> throw "hello");
- self::map<core::Null?>(() → <BottomType>=> throw "hello", () → core::Null? {
+ self::map<Null>(() → <BottomType>=> throw "hello", () → Null {
return null;
});
- self::id<() →* core::Null?>(() → core::Null? {});
+ self::id<() →* Null>(() → Null {});
}
constants {
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.expect
index 3d44037..3c9883b 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.expect
@@ -21,5 +21,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::A::•<core::int*>((core::int* x) → core::Null? {}).{self::A::foo}(3);
+ new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3);
}
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.transformed.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.transformed.expect
index 3d44037..3c9883b 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.strong.transformed.expect
@@ -21,5 +21,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::A::•<core::int*>((core::int* x) → core::Null? {}).{self::A::foo}(3);
+ new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3);
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.1.expect
index 69c221d..98a923f 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.1.expect
@@ -18,9 +18,9 @@
#C2 = null
#C3 = "world"
#C4 = <dynamic>[#C1, #C2, #C3, #C2]
- #C5 = dart.core::_ImmutableMap<dart.core::String*, dart.core::Null?> {_kvPairs:#C4}
+ #C5 = dart.core::_ImmutableMap<dart.core::String*, Null> {_kvPairs:#C4}
#C6 = dart.collection::_UnmodifiableSet<dart.core::String*> {_map:#C5}
#C7 = <dynamic>[]
- #C8 = dart.core::_ImmutableMap<dart.core::String*, dart.core::Null?> {_kvPairs:#C7}
+ #C8 = dart.core::_ImmutableMap<dart.core::String*, Null> {_kvPairs:#C7}
#C9 = dart.collection::_UnmodifiableSet<dart.core::String*> {_map:#C8}
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.2.expect
index 3689646..3e1ca84 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/constant_set_literal.yaml.world.2.expect
@@ -17,9 +17,9 @@
#C1 = 42
#C2 = null
#C3 = <dynamic>[#C1, #C2]
- #C4 = dart.core::_ImmutableMap<dart.core::int*, dart.core::Null?> {_kvPairs:#C3}
+ #C4 = dart.core::_ImmutableMap<dart.core::int*, Null> {_kvPairs:#C3}
#C5 = dart.collection::_UnmodifiableSet<dart.core::int*> {_map:#C4}
#C6 = <dynamic>[]
- #C7 = dart.core::_ImmutableMap<dart.core::String*, dart.core::Null?> {_kvPairs:#C6}
+ #C7 = dart.core::_ImmutableMap<dart.core::String*, Null> {_kvPairs:#C6}
#C8 = dart.collection::_UnmodifiableSet<dart.core::String*> {_map:#C7}
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect
index 7c5af72..32da763 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect
@@ -16,7 +16,7 @@
#L1:
{
[yield] let dynamic #t1 = dart.async::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- dart._internal::unsafeCast<dart.core::Null?>(:result);
+ dart._internal::unsafeCast<Null>(:result);
:return_value = "hello";
break #L1;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect
index 4b0f955..0fabe89 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect
@@ -16,7 +16,7 @@
#L1:
{
[yield] let dynamic #t1 = dart.async::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- dart._internal::unsafeCast<dart.core::Null?>(:result);
+ dart._internal::unsafeCast<Null>(:result);
:return_value = "hello";
break #L1;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect
index 692ae81..e8c7c9a 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect
@@ -65,7 +65,7 @@
#L2:
{
[yield] let dynamic #t2 = dart.async::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- dart._internal::unsafeCast<dart.core::Null?>(:result);
+ dart._internal::unsafeCast<Null>(:result);
:return_value = "hello";
break #L2;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect
index 884a62e..af9c5da 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect
@@ -65,7 +65,7 @@
#L2:
{
[yield] let dynamic #t2 = dart.async::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- dart._internal::unsafeCast<dart.core::Null?>(:result);
+ dart._internal::unsafeCast<Null>(:result);
:return_value = "hello!!!";
break #L2;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect
index 5287c01..abf2025 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect
@@ -66,7 +66,7 @@
#L2:
{
[yield] let dynamic #t2 = dart.async::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
- dart._internal::unsafeCast<dart.core::Null?>(:result);
+ dart._internal::unsafeCast<Null>(:result);
:return_value = "hello!!!";
break #L2;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/reissue_errors_6.yaml.world.3.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/reissue_errors_6.yaml.world.3.expect
index 9cd7e48..fab0774 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/reissue_errors_6.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/reissue_errors_6.yaml.world.3.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///main.dart";
- class Bar<X extends main::Foo<dart.core::Null?>* = main::Foo<dart.core::Null?>*> extends dart.core::Object {
+ class Bar<X extends main::Foo<Null>* = main::Foo<Null>*> extends dart.core::Object {
synthetic constructor •() → lib::Bar<lib::Bar::X*>*
: super dart.core::Object::•()
;
@@ -23,7 +23,7 @@
import "org-dartlang-test:///lib.dart";
- class Foo<X extends lib::Bar<main::Foo<dart.core::Null?>*>* = lib::Bar<main::Foo<dart.core::Null?>*>*> extends dart.core::Object {
+ class Foo<X extends lib::Bar<main::Foo<Null>*>* = lib::Bar<main::Foo<Null>*>*> extends dart.core::Object {
synthetic constructor •() → main::Foo<main::Foo::X*>*
: super dart.core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart
index 5e47a90..b40afa5 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart
@@ -8,7 +8,7 @@
import 'dart:async';
main() async {
- var /*@ type=() ->* Future<Null?>* */ f = /*@ returnType=Future<Null?>* */ () async {
+ var /*@ type=() ->* Future<Null>* */ f = /*@ returnType=Future<Null>* */ () async {
return null;
};
Future y = f();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.expect
index e0504e6..1b41da7 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.expect
@@ -6,7 +6,7 @@
import "dart:async";
static method main() → dynamic async {
- () →* asy::Future<core::Null?>* f = () → asy::Future<core::Null?>* async {
+ () →* asy::Future<Null>* f = () → asy::Future<Null>* async {
return null;
};
asy::Future<dynamic>* y = f.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect
index 1bde8d4..6215f3a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect
@@ -20,10 +20,10 @@
try {
#L1:
{
- () →* asy::Future<core::Null?>* f = () → asy::Future<core::Null?>* /* originally async */ {
- final asy::_Future<core::Null?>* :async_future = new asy::_Future::•<core::Null?>();
+ () →* asy::Future<Null>* f = () → asy::Future<Null>* /* originally async */ {
+ final asy::_Future<Null>* :async_future = new asy::_Future::•<Null>();
core::bool* :is_sync = false;
- FutureOr<core::Null?>* :return_value;
+ FutureOr<Null>* :return_value;
dynamic :async_stack_trace;
(dynamic) →* dynamic :async_op_then;
(core::Object*, core::StackTrace*) →* dynamic :async_op_error;
@@ -52,7 +52,7 @@
asy::Future<dynamic>* y = f.call();
asy::Future<core::String*>* z = f.call();
[yield] let dynamic #t1 = asy::_awaitHelper(f.call(), :async_op_then, :async_op_error, :async_op) in null;
- core::String* s = _in::unsafeCast<core::Null?>(:result);
+ core::String* s = _in::unsafeCast<Null>(:result);
}
asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
return;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart
index 1eabccf..440f561 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart
@@ -8,7 +8,7 @@
import 'dart:async';
main() async {
- var /*@ type=() ->* Stream<Null?>* */ f = /*@ returnType=Stream<Null?>* */ () async* {
+ var /*@ type=() ->* Stream<Null>* */ f = /*@ returnType=Stream<Null>* */ () async* {
yield null;
};
Stream y = f();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.expect
index 3bfdf39..4f2a9bc 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.expect
@@ -6,7 +6,7 @@
import "dart:async";
static method main() → dynamic async {
- () →* asy::Stream<core::Null?>* f = () → asy::Stream<core::Null?>* async* {
+ () →* asy::Stream<Null>* f = () → asy::Stream<Null>* async* {
yield null;
};
asy::Stream<dynamic>* y = f.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect
index c83accd..a83d5ab 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect
@@ -20,8 +20,8 @@
try {
#L1:
{
- () →* asy::Stream<core::Null?>* f = () → asy::Stream<core::Null?>* /* originally async* */ {
- asy::_AsyncStarStreamController<core::Null?>* :controller;
+ () →* asy::Stream<Null>* f = () → asy::Stream<Null>* /* originally async* */ {
+ asy::_AsyncStarStreamController<Null>* :controller;
dynamic :controller_stream;
dynamic :async_stack_trace;
(dynamic) →* dynamic :async_op_then;
@@ -51,14 +51,14 @@
:async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
:async_op_then = asy::_asyncThenWrapperHelper(:async_op);
:async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
- :controller = new asy::_AsyncStarStreamController::•<core::Null?>(:async_op);
+ :controller = new asy::_AsyncStarStreamController::•<Null>(:async_op);
:controller_stream = :controller.{asy::_AsyncStarStreamController::stream};
return :controller_stream;
};
asy::Stream<dynamic>* y = f.call();
asy::Stream<core::String*>* z = f.call();
[yield] let dynamic #t1 = asy::_awaitHelper(f.call().{asy::Stream::first}, :async_op_then, :async_op_error, :async_op) in null;
- core::String* s = _in::unsafeCast<core::Null?>(:result);
+ core::String* s = _in::unsafeCast<Null>(:result);
}
asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
return;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
index ff64ba7..4c33394 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
@@ -9,18 +9,18 @@
void foo(int f(Object _)) {}
test() {
- var /*@ type=(Object*) ->* Null? */ f = /*@ returnType=Null? */ (Object x) {
+ var /*@ type=(Object*) ->* Null */ f = /*@ returnType=Null */ (Object x) {
return null;
};
String y = f(42);
- f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@ returnType=Null? */ (/*@ type=Object* */ x) =>
+ f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@ returnType=Null */ (/*@ type=Object* */ x) =>
'hello';
- foo(/*@ returnType=Null? */ (/*@ type=Object* */ x) {
+ foo(/*@ returnType=Null */ (/*@ type=Object* */ x) {
return null;
});
- foo(/*@ returnType=Null? */ (/*@ type=Object* */ x) {
+ foo(/*@ returnType=Null */ (/*@ type=Object* */ x) {
throw "not implemented";
});
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
index c1bf65f..cdf3f6a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
@@ -5,15 +5,15 @@
static field dynamic h = null;
static method foo((core::Object*) →* core::int* f) → void {}
static method test() → dynamic {
- (core::Object*) →* core::Null? f = (core::Object* x) → core::Null? {
+ (core::Object*) →* Null f = (core::Object* x) → Null {
return null;
};
core::String* y = f.call(42);
- f = (core::Object* x) → core::Null? => "hello" as{TypeError} core::Null?;
- self::foo((core::Object* x) → core::Null? {
+ f = (core::Object* x) → Null => "hello" as{TypeError} Null;
+ self::foo((core::Object* x) → Null {
return null;
});
- self::foo((core::Object* x) → core::Null? {
+ self::foo((core::Object* x) → Null {
throw "not implemented";
});
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.transformed.expect
index c1bf65f..cdf3f6a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.transformed.expect
@@ -5,15 +5,15 @@
static field dynamic h = null;
static method foo((core::Object*) →* core::int* f) → void {}
static method test() → dynamic {
- (core::Object*) →* core::Null? f = (core::Object* x) → core::Null? {
+ (core::Object*) →* Null f = (core::Object* x) → Null {
return null;
};
core::String* y = f.call(42);
- f = (core::Object* x) → core::Null? => "hello" as{TypeError} core::Null?;
- self::foo((core::Object* x) → core::Null? {
+ f = (core::Object* x) → Null => "hello" as{TypeError} Null;
+ self::foo((core::Object* x) → Null {
return null;
});
- self::foo((core::Object* x) → core::Null? {
+ self::foo((core::Object* x) → Null {
throw "not implemented";
});
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart
index 6d0a4af..c774479 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart
@@ -6,7 +6,7 @@
library test;
main() {
- var /*@ type=() ->* Iterable<Null?>* */ f = /*@ returnType=Iterable<Null?>* */ () sync* {
+ var /*@ type=() ->* Iterable<Null>* */ f = /*@ returnType=Iterable<Null>* */ () sync* {
yield null;
};
Iterable y = f();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.expect
index 96ec582..58702d6 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {
- () →* core::Iterable<core::Null?>* f = () → core::Iterable<core::Null?>* sync* {
+ () →* core::Iterable<Null>* f = () → core::Iterable<Null>* sync* {
yield null;
};
core::Iterable<dynamic>* y = f.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.transformed.expect
index ad5d5f0..a73b655 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {
- () →* core::Iterable<core::Null?>* f = () → core::Iterable<core::Null?>* /* originally sync* */ {
+ () →* core::Iterable<Null>* f = () → core::Iterable<Null>* /* originally sync* */ {
function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
core::int* :await_jump_var = 0;
dynamic :await_ctx_var;
@@ -18,7 +18,7 @@
}
return :sync_op;
}
- return new core::_SyncIterable::•<core::Null?>(:sync_op_gen);
+ return new core::_SyncIterable::•<Null>(:sync_op_gen);
};
core::Iterable<dynamic>* y = f.call();
core::Iterable<core::String*>* z = f.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart
index 0c6ada5..531bf49 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart
@@ -7,9 +7,9 @@
test1() {
List<int> o;
- var /*@ type=Iterable<Null?>* */ y =
- o. /*@ typeArgs=Null? */ /*@target=Iterable.map*/ map(
- /*@ returnType=Null? */ (/*@ type=int* */ x) {});
+ var /*@ type=Iterable<Null>* */ y =
+ o. /*@ typeArgs=Null */ /*@target=Iterable.map*/ map(
+ /*@ returnType=Null */ (/*@ type=int* */ x) {});
Iterable<int> z = y;
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.expect
index ae81c76..6a55e9b 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.expect
@@ -4,7 +4,7 @@
static method test1() → dynamic {
core::List<core::int*>* o;
- core::Iterable<core::Null?>* y = o.{core::Iterable::map}<core::Null?>((core::int* x) → core::Null? {});
+ core::Iterable<Null>* y = o.{core::Iterable::map}<Null>((core::int* x) → Null {});
core::Iterable<core::int*>* z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.transformed.expect
index ae81c76..6a55e9b 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.strong.transformed.expect
@@ -4,7 +4,7 @@
static method test1() → dynamic {
core::List<core::int*>* o;
- core::Iterable<core::Null?>* y = o.{core::Iterable::map}<core::Null?>((core::int* x) → core::Null? {});
+ core::Iterable<Null>* y = o.{core::Iterable::map}<Null>((core::int* x) → Null {});
core::Iterable<core::int*>* z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart
index 30d096e..86e4e26 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart
@@ -6,24 +6,24 @@
library test;
main() {
- var /*@ type=() ->* Null? */ a = /*@ returnType=Null? */ () {};
- var /*@ type=() ->* Null? */ b = /*@ returnType=Null? */ () {
+ var /*@ type=() ->* Null */ a = /*@ returnType=Null */ () {};
+ var /*@ type=() ->* Null */ b = /*@ returnType=Null */ () {
return;
};
- var /*@ type=() ->* Null? */ c = /*@ returnType=Null? */ () {
+ var /*@ type=() ->* Null */ c = /*@ returnType=Null */ () {
return null;
};
var /*@ type=() ->* int* */ d = /*@ returnType=int* */ () {
return 0;
};
- var /*@ type=(bool*) ->* Null? */ e = /*@ returnType=Null? */ (bool b) {
+ var /*@ type=(bool*) ->* Null */ e = /*@ returnType=Null */ (bool b) {
if (b) {
return;
} else {
return;
}
};
- var /*@ type=(bool*) ->* Null? */ f = /*@ returnType=Null? */ (bool b) {
+ var /*@ type=(bool*) ->* Null */ f = /*@ returnType=Null */ (bool b) {
if (b) {
return;
} else {
@@ -37,14 +37,14 @@
return 0;
}
};
- var /*@ type=(bool*) ->* Null? */ h = /*@ returnType=Null? */ (bool b) {
+ var /*@ type=(bool*) ->* Null */ h = /*@ returnType=Null */ (bool b) {
if (b) {
return null;
} else {
return;
}
};
- var /*@ type=(bool*) ->* Null? */ i = /*@ returnType=Null? */ (bool b) {
+ var /*@ type=(bool*) ->* Null */ i = /*@ returnType=Null */ (bool b) {
if (b) {
return null;
} else {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.expect
index 3ccb306..39b321c 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.expect
@@ -14,17 +14,17 @@
import "dart:core" as core;
static method main() → dynamic {
- () →* core::Null? a = () → core::Null? {};
- () →* core::Null? b = () → core::Null? {
+ () →* Null a = () → Null {};
+ () →* Null b = () → Null {
return;
};
- () →* core::Null? c = () → core::Null? {
+ () →* Null c = () → Null {
return null;
};
() →* core::int* d = () → core::int* {
return 0;
};
- (core::bool*) →* core::Null? e = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null e = (core::bool* b) → Null {
if(b) {
return;
}
@@ -32,7 +32,7 @@
return;
}
};
- (core::bool*) →* core::Null? f = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null f = (core::bool* b) → Null {
if(b) {
return;
}
@@ -48,7 +48,7 @@
return 0;
}
};
- (core::bool*) →* core::Null? h = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null h = (core::bool* b) → Null {
if(b) {
return null;
}
@@ -56,7 +56,7 @@
return;
}
};
- (core::bool*) →* core::Null? i = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null i = (core::bool* b) → Null {
if(b) {
return null;
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.transformed.expect
index 3ccb306..39b321c 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.strong.transformed.expect
@@ -14,17 +14,17 @@
import "dart:core" as core;
static method main() → dynamic {
- () →* core::Null? a = () → core::Null? {};
- () →* core::Null? b = () → core::Null? {
+ () →* Null a = () → Null {};
+ () →* Null b = () → Null {
return;
};
- () →* core::Null? c = () → core::Null? {
+ () →* Null c = () → Null {
return null;
};
() →* core::int* d = () → core::int* {
return 0;
};
- (core::bool*) →* core::Null? e = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null e = (core::bool* b) → Null {
if(b) {
return;
}
@@ -32,7 +32,7 @@
return;
}
};
- (core::bool*) →* core::Null? f = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null f = (core::bool* b) → Null {
if(b) {
return;
}
@@ -48,7 +48,7 @@
return 0;
}
};
- (core::bool*) →* core::Null? h = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null h = (core::bool* b) → Null {
if(b) {
return null;
}
@@ -56,7 +56,7 @@
return;
}
};
- (core::bool*) →* core::Null? i = (core::bool* b) → core::Null? {
+ (core::bool*) →* Null i = (core::bool* b) → Null {
if(b) {
return null;
}
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart b/pkg/front_end/testcases/inference/bottom_in_closure.dart
index b05f476..9084f25 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart
@@ -5,7 +5,7 @@
/*@testedFeatures=inference*/
library test;
-var v = /*@ returnType=Null? */ () => null;
+var v = /*@ returnType=Null */ () => null;
main() {
v;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.outline.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.outline.expect
index 0eb1af7..9f65784 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.outline.expect
@@ -1,7 +1,6 @@
library test;
import self as self;
-import "dart:core" as core;
-static field () →* core::Null? v;
+static field () →* Null v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
index 8325cbb..63cbd26 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
@@ -1,8 +1,7 @@
library test;
import self as self;
-import "dart:core" as core;
-static field () →* core::Null? v = () → core::Null? => null;
+static field () →* Null v = () → Null => null;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.transformed.expect
index 8325cbb..63cbd26 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.transformed.expect
@@ -1,8 +1,7 @@
library test;
import self as self;
-import "dart:core" as core;
-static field () →* core::Null? v = () → core::Null? => null;
+static field () →* Null v = () → Null => null;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect
index e4b0faf..1937cae 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect
@@ -3,6 +3,6 @@
import "dart:core" as core;
static method test() → void {
- (core::Null?) →* core::int* f = (core::Object* x) → core::int* => 1;
+ (Null) →* core::int* f = (core::Object* x) → core::int* => 1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.transformed.expect
index e4b0faf..1937cae 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.transformed.expect
@@ -3,6 +3,6 @@
import "dart:core" as core;
static method test() → void {
- (core::Null?) →* core::int* f = (core::Object* x) → core::int* => 1;
+ (Null) →* core::int* f = (core::Object* x) → core::int* => 1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
index da3d184..03c50b9 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
@@ -10,13 +10,13 @@
var /*@ type=dynamic */ b = null;
var /*@ type=dynamic */ c = throw 'foo';
var /*@ type=() ->* int* */ d = /*@ returnType=int* */ () => 0;
- var /*@ type=() ->* Null? */ e = /*@ returnType=Null? */ () => null;
+ var /*@ type=() ->* Null */ e = /*@ returnType=Null */ () => null;
var /*@ type=() ->* <BottomType> */ f = /*@ returnType=<BottomType> */ () =>
throw 'foo';
var /*@ type=() ->* int* */ g = /*@ returnType=int* */ () {
return 0;
};
- var /*@ type=() ->* Null? */ h = /*@ returnType=Null? */ () {
+ var /*@ type=() ->* Null */ h = /*@ returnType=Null */ () {
return null;
};
var /*@ type=() ->* <BottomType> */ i = /*@ returnType=<BottomType> */ () {
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
index 6d3a4af..6dd3514 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
@@ -7,12 +7,12 @@
dynamic b = null;
dynamic c = throw "foo";
() →* core::int* d = () → core::int* => 0;
- () →* core::Null? e = () → core::Null? => null;
+ () →* Null e = () → Null => null;
() →* <BottomType>f = () → <BottomType>=> throw "foo";
() →* core::int* g = () → core::int* {
return 0;
};
- () →* core::Null? h = () → core::Null? {
+ () →* Null h = () → Null {
return null;
};
() →* <BottomType>i = () → <BottomType>{
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.transformed.expect
index 6d3a4af..6dd3514 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.transformed.expect
@@ -7,12 +7,12 @@
dynamic b = null;
dynamic c = throw "foo";
() →* core::int* d = () → core::int* => 0;
- () →* core::Null? e = () → core::Null? => null;
+ () →* Null e = () → Null => null;
() →* <BottomType>f = () → <BottomType>=> throw "foo";
() →* core::int* g = () → core::int* {
return 0;
};
- () →* core::Null? h = () → core::Null? {
+ () →* Null h = () → Null {
return null;
};
() →* <BottomType>i = () → <BottomType>{
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart
index 1d09fe8..fef6699 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart
@@ -11,7 +11,7 @@
void test() {
void f(@Foo(/*@ typeArgs=String* */ const []) /*@ type=dynamic */ x) {}
- var /*@ type=(dynamic) ->* Null? */ x = /*@ returnType=Null? */ (@Foo(/*@ typeArgs=String* */ const []) /*@ type=dynamic */
+ var /*@ type=(dynamic) ->* Null */ x = /*@ returnType=Null */ (@Foo(/*@ typeArgs=String* */ const []) /*@ type=dynamic */
x) {};
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect
index 3dff8eb..2bd8ed8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect
@@ -19,7 +19,7 @@
}
static method test() → void {
function f(@#C1 dynamic x) → void {}
- (dynamic) →* core::Null? x = (@#C1 dynamic x) → core::Null? {};
+ (dynamic) →* Null x = (@#C1 dynamic x) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect
index 3dff8eb..2bd8ed8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect
@@ -19,7 +19,7 @@
}
static method test() → void {
function f(@#C1 dynamic x) → void {}
- (dynamic) →* core::Null? x = (@#C1 dynamic x) → core::Null? {};
+ (dynamic) →* Null x = (@#C1 dynamic x) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart
index a81e330..011f07f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart
@@ -11,8 +11,8 @@
void test() {
void f<@Foo(/*@ typeArgs=String* */ const []) T>() {}
- var /*@ type=<T extends Object* = dynamic>() ->* Null? */ x =
- <@Foo(/*@ typeArgs=String* */ const []) T> /*@ returnType=Null? */ () {};
+ var /*@ type=<T extends Object* = dynamic>() ->* Null */ x =
+ <@Foo(/*@ typeArgs=String* */ const []) T> /*@ returnType=Null */ () {};
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect
index f4ed260..ebb93a8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect
@@ -19,7 +19,7 @@
}
static method test() → void {
function f<@#C1 T extends core::Object* = dynamic>() → void {}
- <T extends core::Object* = dynamic>() →* core::Null? x = <@#C1 T extends core::Object* = dynamic>() → core::Null? {};
+ <T extends core::Object* = dynamic>() →* Null x = <@#C1 T extends core::Object* = dynamic>() → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect
index f4ed260..ebb93a8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect
@@ -19,7 +19,7 @@
}
static method test() → void {
function f<@#C1 T extends core::Object* = dynamic>() → void {}
- <T extends core::Object* = dynamic>() →* core::Null? x = <@#C1 T extends core::Object* = dynamic>() → core::Null? {};
+ <T extends core::Object* = dynamic>() →* Null x = <@#C1 T extends core::Object* = dynamic>() → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
index 2085ac4..4f6fc11 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
@@ -9,7 +9,7 @@
void test() {
{
- Function2<int, String> l0 = /*@ returnType=Null? */ (int x) => null;
+ Function2<int, String> l0 = /*@ returnType=Null */ (int x) => null;
Function2<int, String> l1 = /*@ returnType=String* */ (int x) => "hello";
Function2<int, String>
l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
@@ -21,7 +21,7 @@
};
}
{
- Function2<int, String> l0 = /*@ returnType=Null? */ (/*@ type=int* */ x) => null;
+ Function2<int, String> l0 = /*@ returnType=Null */ (/*@ type=int* */ x) => null;
Function2<int, String> l1 = /*@ returnType=String* */ (/*@ type=int* */ x) =>
"hello";
Function2<int, String>
@@ -35,7 +35,7 @@
};
}
{
- Function2<int, List<String>> l0 = /*@ returnType=Null? */ (int x) => null;
+ Function2<int, List<String>> l0 = /*@ returnType=Null */ (int x) => null;
Function2<int, List<String>> l1 = /*@ returnType=List<String*>* */ (int
x) => /*@ typeArgs=String* */ ["hello"];
Function2<int, List<String>>
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
index 55385e0..edd0868 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
@@ -54,7 +54,7 @@
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
static method test() → void {
{
- (core::int*) →* core::String* l0 = (core::int* x) → core::Null? => null;
+ (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
(core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
(core::int*) →* core::String* l2 = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
@@ -69,7 +69,7 @@
};
}
{
- (core::int*) →* core::String* l0 = (core::int* x) → core::Null? => null;
+ (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
(core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
(core::int*) →* core::String* l2 = (core::int* x) → core::String* => let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3;
@@ -86,7 +86,7 @@
};
}
{
- (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → core::Null? => null;
+ (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → Null => null;
(core::int*) →* core::List<core::String*>* l1 = (core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
(core::int*) →* core::List<core::String*>* l2 = let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
- 'List' is from 'dart:core'.
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect
index 46f24ee..4e084a6 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect
@@ -54,7 +54,7 @@
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
static method test() → void {
{
- (core::int*) →* core::String* l0 = (core::int* x) → core::Null? => null;
+ (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
(core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
(core::int*) →* core::String* l2 = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
@@ -69,7 +69,7 @@
};
}
{
- (core::int*) →* core::String* l0 = (core::int* x) → core::Null? => null;
+ (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
(core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
(core::int*) →* core::String* l2 = (core::int* x) → core::String* => let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3;
@@ -86,7 +86,7 @@
};
}
{
- (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → core::Null? => null;
+ (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → Null => null;
(core::int*) →* core::List<core::String*>* l1 = (core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
(core::int*) →* core::List<core::String*>* l2 = let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
- 'List' is from 'dart:core'.
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
index 557c38e..11313d5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
@@ -9,7 +9,7 @@
{
String f<S>(int x) => null;
var /*@ type=<S extends Object* = dynamic>(int*) ->* String* */ v = f;
- v = <T> /*@ returnType=Null? */ (int x) => null;
+ v = <T> /*@ returnType=Null */ (int x) => null;
v = <T> /*@ returnType=String* */ (int x) => "hello";
v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
"hello";
@@ -21,7 +21,7 @@
{
String f<S>(int x) => null;
var /*@ type=<S extends Object* = dynamic>(int*) ->* String* */ v = f;
- v = <T> /*@ returnType=Null? */ (/*@ type=int* */ x) => null;
+ v = <T> /*@ returnType=Null */ (/*@ type=int* */ x) => null;
v = <T> /*@ returnType=String* */ (/*@ type=int* */ x) => "hello";
v = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ <
T> /*@ returnType=String* */ (/*@ type=int* */ x) =>
@@ -36,7 +36,7 @@
{
List<String> f<S>(int x) => null;
var /*@ type=<S extends Object* = dynamic>(int*) ->* List<String*>* */ v = f;
- v = <T> /*@ returnType=Null? */ (int x) => null;
+ v = <T> /*@ returnType=Null */ (int x) => null;
v = <T> /*@ returnType=List<String*>* */ (int x) => /*@ typeArgs=String* */ [
"hello"
];
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
index ee90542..b3f94c4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
@@ -56,7 +56,7 @@
function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
return null;
<S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::Null? => null;
+ v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
v = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
@@ -74,7 +74,7 @@
function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
return null;
<S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::Null? => null;
+ v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3;
@@ -94,7 +94,7 @@
function f<S extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>*
return null;
<S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::Null? => null;
+ v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
v = let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
- 'List' is from 'dart:core'.
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect
index dfcc1ab..5fa06c8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect
@@ -56,7 +56,7 @@
function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
return null;
<S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::Null? => null;
+ v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
v = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
@@ -74,7 +74,7 @@
function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
return null;
<S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::Null? => null;
+ v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3;
@@ -94,7 +94,7 @@
function f<S extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>*
return null;
<S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::Null? => null;
+ v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
v = let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
- 'List' is from 'dart:core'.
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart
index ecf97aa..93827b6 100644
--- a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart
@@ -13,7 +13,7 @@
. /*@ typeArgs=List<dynamic>* */ /*@target=Future.then*/ then(
/*@ returnType=List<dynamic>* */ (/*@ type=int* */ x) => /*@ typeArgs=dynamic */ [])
. /*@target=Future.whenComplete*/ whenComplete(
- /*@ returnType=Null? */ () {});
+ /*@ returnType=Null */ () {});
b = f. /*@ typeArgs=List<int*>* */ /*@target=Future.then*/ then(
/*@ returnType=List<int*>* */ (/*@ type=int* */ x) => /*@ typeArgs=int* */ []);
}
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.expect
index e129de8..fb4af0a 100644
--- a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.expect
@@ -7,7 +7,7 @@
static method test() → dynamic {
asy::Future<core::int*>* f;
- asy::Future<core::List<core::int*>*>* b = f.{asy::Future::then}<core::List<dynamic>*>((core::int* x) → core::List<dynamic>* => <dynamic>[]).{asy::Future::whenComplete}(() → core::Null? {}) as{TypeError} asy::Future<core::List<core::int*>*>*;
+ asy::Future<core::List<core::int*>*>* b = f.{asy::Future::then}<core::List<dynamic>*>((core::int* x) → core::List<dynamic>* => <dynamic>[]).{asy::Future::whenComplete}(() → Null {}) as{TypeError} asy::Future<core::List<core::int*>*>*;
b = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => <core::int*>[]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect
index e129de8..fb4af0a 100644
--- a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
static method test() → dynamic {
asy::Future<core::int*>* f;
- asy::Future<core::List<core::int*>*>* b = f.{asy::Future::then}<core::List<dynamic>*>((core::int* x) → core::List<dynamic>* => <dynamic>[]).{asy::Future::whenComplete}(() → core::Null? {}) as{TypeError} asy::Future<core::List<core::int*>*>*;
+ asy::Future<core::List<core::int*>*>* b = f.{asy::Future::then}<core::List<dynamic>*>((core::int* x) → core::List<dynamic>* => <dynamic>[]).{asy::Future::whenComplete}(() → Null {}) as{TypeError} asy::Future<core::List<core::int*>*>*;
b = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => <core::int*>[]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
index 34aede8..a68f5bd 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
@@ -12,6 +12,6 @@
main() {
var /*@ type=(num*) ->* List<int*>* */ v = /*@ typeArgs=(num*) ->* List<int*>* */ generic(
- /*@ returnType=Null? */ (F f) => null,
- /*@ returnType=Null? */ (G g) => null);
+ /*@ returnType=Null */ (F f) => null,
+ /*@ returnType=Null */ (G g) => null);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
index 4a105fb..868f419 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
@@ -7,5 +7,5 @@
static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T*
return null;
static method main() → dynamic {
- (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → core::Null? => null, ((core::double*) →* core::List<core::int*>* g) → core::Null? => null);
+ (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → Null => null, ((core::double*) →* core::List<core::int*>* g) → Null => null);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.transformed.expect
index 4a105fb..868f419 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.transformed.expect
@@ -7,5 +7,5 @@
static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T*
return null;
static method main() → dynamic {
- (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → core::Null? => null, ((core::double*) →* core::List<core::int*>* g) → core::Null? => null);
+ (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → Null => null, ((core::double*) →* core::List<core::int*>* g) → Null => null);
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart
index f1fd89e..23dc5b6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart
@@ -6,5 +6,5 @@
library test;
main() {
- var /*@ type=() ->* Null? */ f = /*@ returnType=Null? */ () {};
+ var /*@ type=() ->* Null */ f = /*@ returnType=Null */ () {};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.expect
index 64040c7..8ee4d33 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.expect
@@ -1,7 +1,6 @@
library test;
import self as self;
-import "dart:core" as core;
static method main() → dynamic {
- () →* core::Null? f = () → core::Null? {};
+ () →* Null f = () → Null {};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.transformed.expect
index 64040c7..8ee4d33 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.strong.transformed.expect
@@ -1,7 +1,6 @@
library test;
import self as self;
-import "dart:core" as core;
static method main() → dynamic {
- () →* core::Null? f = () → core::Null? {};
+ () →* Null f = () → Null {};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart
index 0d24e42..ffe8964 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart
@@ -10,5 +10,5 @@
}
main() {
- var /*@ type=C* */ c = new C(/*@ returnType=Null? */ () {});
+ var /*@ type=C* */ c = new C(/*@ returnType=Null */ () {});
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.expect
index 9bda853..21efe4c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.expect
@@ -17,5 +17,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•(() → core::Null? {});
+ self::C* c = new self::C::•(() → Null {});
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.transformed.expect
index 9bda853..21efe4c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.strong.transformed.expect
@@ -17,5 +17,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•(() → core::Null? {});
+ self::C* c = new self::C::•(() → Null {});
}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart
index d4a8217..c332b1a 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart
@@ -6,7 +6,7 @@
library test;
class C<T> {
- void Function(T) f<U>(U x) => /*@ returnType=Null? */ (/*@ type=C::T* */ y) {};
+ void Function(T) f<U>(U x) => /*@ returnType=Null */ (/*@ type=C::T* */ y) {};
}
void test(C<String> c) {
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.expect
index dcd0fc2..eb193d3 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::T*) →* void
- return (self::C::T* y) → core::Null? {};
+ return (self::C::T* y) → Null {};
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.transformed.expect
index dcd0fc2..eb193d3 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::T*) →* void
- return (self::C::T* y) → core::Null? {};
+ return (self::C::T* y) → Null {};
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart
index 405c751..5358324 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart
@@ -6,7 +6,7 @@
library test;
test1() {
- var /*@ type=List<Null?>* */ x = /*@ typeArgs=Null? */ [null];
+ var /*@ type=List<Null>* */ x = /*@ typeArgs=Null */ [null];
x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.expect
index dafc04b..56e22ce 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method test1() → dynamic {
- core::List<core::Null?>* x = <core::Null?>[null];
- x.{core::List::add}(42 as{TypeError} core::Null?);
+ core::List<Null>* x = <Null>[null];
+ x.{core::List::add}(42 as{TypeError} Null);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect
index dafc04b..56e22ce 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method test1() → dynamic {
- core::List<core::Null?>* x = <core::Null?>[null];
- x.{core::List::add}(42 as{TypeError} core::Null?);
+ core::List<Null>* x = <Null>[null];
+ x.{core::List::add}(42 as{TypeError} Null);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart
index 744f9e2..e98f54e 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart
@@ -6,7 +6,7 @@
library test;
test1() {
- var /*@ type=Map<Null?, Null?>* */ x = /*@ typeArgs=Null?, Null? */ {null: null};
+ var /*@ type=Map<Null, Null>* */ x = /*@ typeArgs=Null, Null */ {null: null};
x /*@target=Map.[]=*/ [
/*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.expect
index 38d6f76..a14b93f 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<core::Null?, core::Null?>* x = <core::Null?, core::Null?>{null: null};
- x.{core::Map::[]=}(3 as{TypeError} core::Null?, "z" as{TypeError} core::Null?);
+ core::Map<Null, Null>* x = <Null, Null>{null: null};
+ x.{core::Map::[]=}(3 as{TypeError} Null, "z" as{TypeError} Null);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.transformed.expect
index 38d6f76..a14b93f 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<core::Null?, core::Null?>* x = <core::Null?, core::Null?>{null: null};
- x.{core::Map::[]=}(3 as{TypeError} core::Null?, "z" as{TypeError} core::Null?);
+ core::Map<Null, Null>* x = <Null, Null>{null: null};
+ x.{core::Map::[]=}(3 as{TypeError} Null, "z" as{TypeError} Null);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
index 42550db..4ee6f9f 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
@@ -9,10 +9,10 @@
void foo(int f(Object _)) {}
test() {
- var /*@ type=(Object*) ->* Null? */ f = /*@ returnType=Null? */ (Object x) => null;
+ var /*@ type=(Object*) ->* Null */ f = /*@ returnType=Null */ (Object x) => null;
String y = /*info:DYNAMIC_CAST*/ f(42);
- f = /*@ returnType=Null? */ (/*@ type=Object* */ x) => 'hello';
+ f = /*@ returnType=Null */ (/*@ type=Object* */ x) => 'hello';
var /*@ type=dynamic */ g = null;
g = 'hello';
@@ -21,7 +21,7 @@
h = 'hello';
(/*info:DYNAMIC_INVOKE*/ h.foo());
- foo(/*@ returnType=Null? */ (/*@ type=Object* */ x) => null);
+ foo(/*@ returnType=Null */ (/*@ type=Object* */ x) => null);
foo(/*@ returnType=<BottomType> */ (/*@ type=Object* */ x) =>
throw "not implemented");
}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
index 20b5208..adf4727 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
@@ -5,15 +5,15 @@
static field dynamic h = null;
static method foo((core::Object*) →* core::int* f) → void {}
static method test() → dynamic {
- (core::Object*) →* core::Null? f = (core::Object* x) → core::Null? => null;
+ (core::Object*) →* Null f = (core::Object* x) → Null => null;
core::String* y = f.call(42);
- f = (core::Object* x) → core::Null? => "hello" as{TypeError} core::Null?;
+ f = (core::Object* x) → Null => "hello" as{TypeError} Null;
dynamic g = null;
g = "hello";
g.foo();
self::h = "hello";
self::h.foo();
- self::foo((core::Object* x) → core::Null? => null);
+ self::foo((core::Object* x) → Null => null);
self::foo((core::Object* x) → <BottomType>=> throw "not implemented");
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.transformed.expect
index 20b5208..adf4727 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.transformed.expect
@@ -5,15 +5,15 @@
static field dynamic h = null;
static method foo((core::Object*) →* core::int* f) → void {}
static method test() → dynamic {
- (core::Object*) →* core::Null? f = (core::Object* x) → core::Null? => null;
+ (core::Object*) →* Null f = (core::Object* x) → Null => null;
core::String* y = f.call(42);
- f = (core::Object* x) → core::Null? => "hello" as{TypeError} core::Null?;
+ f = (core::Object* x) → Null => "hello" as{TypeError} Null;
dynamic g = null;
g = "hello";
g.foo();
self::h = "hello";
self::h.foo();
- self::foo((core::Object* x) → core::Null? => null);
+ self::foo((core::Object* x) → Null => null);
self::foo((core::Object* x) → <BottomType>=> throw "not implemented");
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/override_equals.dart.outline.expect b/pkg/front_end/testcases/inference/override_equals.dart.outline.expect
index f4c4777..cf84f5e 100644
--- a/pkg/front_end/testcases/inference/override_equals.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/override_equals.dart.outline.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::NullEquality*
;
@core::override
- operator ==(core::Object* other) → core::Null?
+ operator ==(core::Object* other) → Null
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference/override_equals.dart.strong.expect b/pkg/front_end/testcases/inference/override_equals.dart.strong.expect
index 6ebf410..6f3dcc4 100644
--- a/pkg/front_end/testcases/inference/override_equals.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/override_equals.dart.strong.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
@#C1
- operator ==(core::Object* other) → core::Null?
+ operator ==(core::Object* other) → Null
return null;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference/override_equals.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/override_equals.dart.strong.transformed.expect
index 6ebf410..6f3dcc4 100644
--- a/pkg/front_end/testcases/inference/override_equals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/override_equals.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
@#C1
- operator ==(core::Object* other) → core::Null?
+ operator ==(core::Object* other) → Null
return null;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart
index b0671b2..0cfa3ae 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart
@@ -12,8 +12,8 @@
main() {
void optional_local([List<int> x = /*@ typeArgs=int* */ const []]) {}
void named_local({List<int> x: /*@ typeArgs=int* */ const []}) {}
- var /*@ type=([List<int*>*]) ->* Null? */ optional_closure = /*@ returnType=Null? */ (
+ var /*@ type=([List<int*>*]) ->* Null */ optional_closure = /*@ returnType=Null */ (
[List<int> x = /*@ typeArgs=int* */ const []]) {};
- var /*@ type=({x: List<int*>*}) ->* Null? */ name_closure = /*@ returnType=Null? */ (
+ var /*@ type=({x: List<int*>*}) ->* Null */ name_closure = /*@ returnType=Null */ (
{List<int> x: /*@ typeArgs=int* */ const []}) {};
}
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.expect
index 0c97dce..b20f8c7 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.expect
@@ -7,8 +7,8 @@
static method main() → dynamic {
function optional_local([core::List<core::int*>* x = #C1]) → void {}
function named_local({core::List<core::int*>* x = #C1}) → void {}
- ([core::List<core::int*>*]) →* core::Null? optional_closure = ([core::List<core::int*>* x = #C1]) → core::Null? {};
- ({x: core::List<core::int*>*}) →* core::Null? name_closure = ({core::List<core::int*>* x = #C1}) → core::Null? {};
+ ([core::List<core::int*>*]) →* Null optional_closure = ([core::List<core::int*>* x = #C1]) → Null {};
+ ({x: core::List<core::int*>*}) →* Null name_closure = ({core::List<core::int*>* x = #C1}) → Null {};
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.transformed.expect
index 0c97dce..b20f8c7 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.strong.transformed.expect
@@ -7,8 +7,8 @@
static method main() → dynamic {
function optional_local([core::List<core::int*>* x = #C1]) → void {}
function named_local({core::List<core::int*>* x = #C1}) → void {}
- ([core::List<core::int*>*]) →* core::Null? optional_closure = ([core::List<core::int*>* x = #C1]) → core::Null? {};
- ({x: core::List<core::int*>*}) →* core::Null? name_closure = ({core::List<core::int*>* x = #C1}) → core::Null? {};
+ ([core::List<core::int*>*]) →* Null optional_closure = ([core::List<core::int*>* x = #C1]) → Null {};
+ ({x: core::List<core::int*>*}) →* Null name_closure = ({core::List<core::int*>* x = #C1}) → Null {};
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart
index ce97e95..ece9a42 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart
@@ -26,9 +26,9 @@
var /*@ type=C<dynamic>* */ c_named_local =
new /*@ typeArgs=dynamic */ C.named(named_local);
var /*@ type=C<dynamic>* */ c_optional_closure =
- new /*@ typeArgs=dynamic */ C.optional(/*@ returnType=Null? */ (
+ new /*@ typeArgs=dynamic */ C.optional(/*@ returnType=Null */ (
[/*@ type=dynamic */ x = /*@ typeArgs=int* */ const [0]]) {});
var /*@ type=C<dynamic>* */ c_named_closure = new /*@ typeArgs=dynamic */ C.named(
- /*@ returnType=Null? */ (
+ /*@ returnType=Null */ (
{/*@ type=dynamic */ x: /*@ typeArgs=int* */ const [0]}) {});
}
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.expect
index 3526aad..af395c5 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.expect
@@ -27,8 +27,8 @@
self::C<dynamic>* c_named_toplevel = new self::C::named<dynamic>(#C4);
self::C<dynamic>* c_optional_local = new self::C::optional<dynamic>(optional_local);
self::C<dynamic>* c_named_local = new self::C::named<dynamic>(named_local);
- self::C<dynamic>* c_optional_closure = new self::C::optional<dynamic>(([dynamic x = #C2]) → core::Null? {});
- self::C<dynamic>* c_named_closure = new self::C::named<dynamic>(({dynamic x = #C2}) → core::Null? {});
+ self::C<dynamic>* c_optional_closure = new self::C::optional<dynamic>(([dynamic x = #C2]) → Null {});
+ self::C<dynamic>* c_named_closure = new self::C::named<dynamic>(({dynamic x = #C2}) → Null {});
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.transformed.expect
index 3526aad..af395c5 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.strong.transformed.expect
@@ -27,8 +27,8 @@
self::C<dynamic>* c_named_toplevel = new self::C::named<dynamic>(#C4);
self::C<dynamic>* c_optional_local = new self::C::optional<dynamic>(optional_local);
self::C<dynamic>* c_named_local = new self::C::named<dynamic>(named_local);
- self::C<dynamic>* c_optional_closure = new self::C::optional<dynamic>(([dynamic x = #C2]) → core::Null? {});
- self::C<dynamic>* c_named_closure = new self::C::named<dynamic>(({dynamic x = #C2}) → core::Null? {});
+ self::C<dynamic>* c_optional_closure = new self::C::optional<dynamic>(([dynamic x = #C2]) → Null {});
+ self::C<dynamic>* c_named_closure = new self::C::named<dynamic>(({dynamic x = #C2}) → Null {});
}
constants {
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart
index 747ad06..fab3f55 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart
@@ -9,7 +9,7 @@
num n = null;
if (n is int) {
var /*@ type=num* */ i = n;
- /*@ returnType=Null? */ () {
+ /*@ returnType=Null */ () {
n;
};
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.expect b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.expect
index 830f06e..db5f0ef 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.expect
@@ -6,7 +6,7 @@
core::num* n = null;
if(n is core::int*) {
core::num* i = n;
- () → core::Null? {
+ () → Null {
n;
};
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.transformed.expect
index 830f06e..db5f0ef 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
core::num* n = null;
if(n is core::int*) {
core::num* i = n;
- () → core::Null? {
+ () → Null {
n;
};
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart
index dbbc0b1..ee7c1e7 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart
@@ -10,7 +10,7 @@
if (n is int) {
var /*@ type=num* */ i = n;
}
- /*@ returnType=Null? */ () {
+ /*@ returnType=Null */ () {
n = null;
};
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.expect b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.expect
index 41ec7b8..d377034 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.expect
@@ -7,7 +7,7 @@
if(n is core::int*) {
core::num* i = n;
}
- () → core::Null? {
+ () → Null {
n = null;
};
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.transformed.expect
index 41ec7b8..d377034 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
if(n is core::int*) {
core::num* i = n;
}
- () → core::Null? {
+ () → Null {
n = null;
};
}
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart b/pkg/front_end/testcases/inference_new/const_invocation.dart
index 4e58d44..2bb0320 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart
@@ -8,16 +8,16 @@
typedef V F<U, V>(U u);
class Foo<T> {
- Bar<T> get v1 => const /*@typeArgs=Null?*/ Bar();
- Bar<List<T>> get v2 => const /*@ typeArgs=List<Null?>* */ Bar();
- Bar<F<T, T>> get v3 => const /*@ typeArgs=(Object*) ->* Null? */ Bar();
+ Bar<T> get v1 => const /*@ typeArgs=Null */ Bar();
+ Bar<List<T>> get v2 => const /*@ typeArgs=List<Null>* */ Bar();
+ Bar<F<T, T>> get v3 => const /*@ typeArgs=(Object*) ->* Null */ Bar();
Bar<F<F<T, T>, T>> get v4 =>
- const /*@ typeArgs=((Null?) ->* Object*) ->* Null? */ Bar();
- List<T> get v5 => /*@ typeArgs=Null? */ const [];
- List<F<T, T>> get v6 => /*@ typeArgs=(Object*) ->* Null? */ const [];
- Map<T, T> get v7 => /*@ typeArgs=Null?, Null? */ const {};
- Map<F<T, T>, T> get v8 => /*@ typeArgs=(Object*) ->* Null?, Null? */ const {};
- Map<T, F<T, T>> get v9 => /*@ typeArgs=Null?, (Object*) ->* Null? */ const {};
+ const /*@ typeArgs=((Null) ->* Object*) ->* Null */ Bar();
+ List<T> get v5 => /*@ typeArgs=Null */ const [];
+ List<F<T, T>> get v6 => /*@ typeArgs=(Object*) ->* Null */ const [];
+ Map<T, T> get v7 => /*@ typeArgs=Null, Null */ const {};
+ Map<F<T, T>, T> get v8 => /*@ typeArgs=(Object*) ->* Null, Null */ const {};
+ Map<T, F<T, T>> get v9 => /*@ typeArgs=Null, (Object*) ->* Null */ const {};
}
class Bar<T> {
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect
index f4ffe78..fbcc92b 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect
@@ -54,14 +54,14 @@
static method main() → dynamic {}
constants {
- #C1 = self::Bar<core::Null?> {}
- #C2 = self::Bar<core::List<core::Null?>*> {}
- #C3 = self::Bar<(core::Object*) →* core::Null?> {}
- #C4 = self::Bar<((core::Null?) →* core::Object*) →* core::Null?> {}
- #C5 = <core::Null?>[]
- #C6 = <(core::Object*) →* core::Null?>[]
+ #C1 = self::Bar<Null> {}
+ #C2 = self::Bar<core::List<Null>*> {}
+ #C3 = self::Bar<(core::Object*) →* Null> {}
+ #C4 = self::Bar<((Null) →* core::Object*) →* Null> {}
+ #C5 = <Null>[]
+ #C6 = <(core::Object*) →* Null>[]
#C7 = <dynamic>[]
- #C8 = core::_ImmutableMap<core::Null?, core::Null?> {_kvPairs:#C7}
- #C9 = core::_ImmutableMap<(core::Object*) →* core::Null?, core::Null?> {_kvPairs:#C7}
- #C10 = core::_ImmutableMap<core::Null?, (core::Object*) →* core::Null?> {_kvPairs:#C7}
+ #C8 = core::_ImmutableMap<Null, Null> {_kvPairs:#C7}
+ #C9 = core::_ImmutableMap<(core::Object*) →* Null, Null> {_kvPairs:#C7}
+ #C10 = core::_ImmutableMap<Null, (core::Object*) →* Null> {_kvPairs:#C7}
}
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect
index f4ffe78..fbcc92b 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect
@@ -54,14 +54,14 @@
static method main() → dynamic {}
constants {
- #C1 = self::Bar<core::Null?> {}
- #C2 = self::Bar<core::List<core::Null?>*> {}
- #C3 = self::Bar<(core::Object*) →* core::Null?> {}
- #C4 = self::Bar<((core::Null?) →* core::Object*) →* core::Null?> {}
- #C5 = <core::Null?>[]
- #C6 = <(core::Object*) →* core::Null?>[]
+ #C1 = self::Bar<Null> {}
+ #C2 = self::Bar<core::List<Null>*> {}
+ #C3 = self::Bar<(core::Object*) →* Null> {}
+ #C4 = self::Bar<((Null) →* core::Object*) →* Null> {}
+ #C5 = <Null>[]
+ #C6 = <(core::Object*) →* Null>[]
#C7 = <dynamic>[]
- #C8 = core::_ImmutableMap<core::Null?, core::Null?> {_kvPairs:#C7}
- #C9 = core::_ImmutableMap<(core::Object*) →* core::Null?, core::Null?> {_kvPairs:#C7}
- #C10 = core::_ImmutableMap<core::Null?, (core::Object*) →* core::Null?> {_kvPairs:#C7}
+ #C8 = core::_ImmutableMap<Null, Null> {_kvPairs:#C7}
+ #C9 = core::_ImmutableMap<(core::Object*) →* Null, Null> {_kvPairs:#C7}
+ #C10 = core::_ImmutableMap<Null, (core::Object*) →* Null> {_kvPairs:#C7}
}
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart
index f8811d5..95a8a3b 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart
@@ -5,7 +5,7 @@
/*@testedFeatures=inference*/
library test;
-var x = /*@ typeArgs=Null? */ [null];
+var x = /*@ typeArgs=Null */ [null];
main() {
x;
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect
index e4f67d0..d051539 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect
@@ -2,6 +2,6 @@
import self as self;
import "dart:core" as core;
-static field core::List<core::Null?>* x;
+static field core::List<Null>* x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.expect
index aa63d12..30af47a 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static field core::List<core::Null?>* x = <core::Null?>[null];
+static field core::List<Null>* x = <Null>[null];
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect
index aa63d12..30af47a 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static field core::List<core::Null?>* x = <core::Null?>[null];
+static field core::List<Null>* x = <Null>[null];
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart
index 03f228f..4acd9c4 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart
@@ -5,7 +5,7 @@
/*@testedFeatures=inference*/
library test;
-var x = /*@ typeArgs=Null?, Null? */ {null: null};
+var x = /*@ typeArgs=Null, Null */ {null: null};
main() {
x;
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect
index f7f9db3..3a23ea0 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect
@@ -2,6 +2,6 @@
import self as self;
import "dart:core" as core;
-static field core::Map<core::Null?, core::Null?>* x;
+static field core::Map<Null, Null>* x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.expect
index 4f1d6de..c5b6db9 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static field core::Map<core::Null?, core::Null?>* x = <core::Null?, core::Null?>{null: null};
+static field core::Map<Null, Null>* x = <Null, Null>{null: null};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.transformed.expect
index 4f1d6de..c5b6db9 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static field core::Map<core::Null?, core::Null?>* x = <core::Null?, core::Null?>{null: null};
+static field core::Map<Null, Null>* x = <Null, Null>{null: null};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect
index 432f2f8..939b47e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (core::Null?) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
+class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.expect
index 0b96aa5..b96266f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (core::Null?) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
+class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
: super core::Object::•()
;
@@ -48,5 +48,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, (core::Null?) →* self::B<dynamic, dynamic>*, core::num*>* d;
+ self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, (Null) →* self::B<dynamic, dynamic>*, core::num*>* d;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.transformed.expect
index 0b96aa5..b96266f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.strong.transformed.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (core::Null?) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
+class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
: super core::Object::•()
;
@@ -48,5 +48,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, (core::Null?) →* self::B<dynamic, dynamic>*, core::num*>* d;
+ self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, (Null) →* self::B<dynamic, dynamic>*, core::num*>* d;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect
index 368e3fc..d6d83e0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null?) →* void> extends core::Object {
+class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -16,6 +16,6 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::num*, (core::Null?) →* void>* c;
+static field self::C<core::num*, (Null) →* void>* c;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.expect
index 9ccc7a3..c86f6b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null?) →* void> extends core::Object {
+class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -17,5 +17,5 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::num*, (core::Null?) →* void>* c;
+static field self::C<core::num*, (Null) →* void>* c;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.transformed.expect
index 9ccc7a3..c86f6b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null?) →* void> extends core::Object {
+class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -17,5 +17,5 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::num*, (core::Null?) →* void>* c;
+static field self::C<core::num*, (Null) →* void>* c;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect
index bb09bc8..84e4164 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null?) →* void> extends core::Object {
+class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<core::num*, (core::Null?) →* void>*>* lc;
-static field core::Map<self::C<core::num*, (core::Null?) →* void>*, self::C<core::num*, (core::Null?) →* void>*>* mc;
+static field core::List<self::C<core::num*, (Null) →* void>*>* lc;
+static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.expect
index 2064da3..52cdb64 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null?) →* void> extends core::Object {
+class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -17,6 +17,6 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<core::num*, (core::Null?) →* void>*>* lc = <self::C<core::num*, (core::Null?) →* void>*>[];
-static field core::Map<self::C<core::num*, (core::Null?) →* void>*, self::C<core::num*, (core::Null?) →* void>*>* mc = <self::C<core::num*, (core::Null?) →* void>*, self::C<core::num*, (core::Null?) →* void>*>{};
+static field core::List<self::C<core::num*, (Null) →* void>*>* lc = <self::C<core::num*, (Null) →* void>*>[];
+static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc = <self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect
index 2064da3..52cdb64 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null?) →* void> extends core::Object {
+class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -17,6 +17,6 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<core::num*, (core::Null?) →* void>*>* lc = <self::C<core::num*, (core::Null?) →* void>*>[];
-static field core::Map<self::C<core::num*, (core::Null?) →* void>*, self::C<core::num*, (core::Null?) →* void>*>* mc = <self::C<core::num*, (core::Null?) →* void>*, self::C<core::num*, (core::Null?) →* void>*>{};
+static field core::List<self::C<core::num*, (Null) →* void>*>* lc = <self::C<core::num*, (Null) →* void>*>[];
+static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc = <self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect
index 66c369f..e4a28c9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void> extends core::Object {
+class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (core::Null?) →* void> extends core::Object {
+class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>* d;
-static field self::E<(core::Null?) →* void>* e;
+static field self::D<(Null, Null) →* void, (Null, Null) →* void>* d;
+static field self::E<(Null) →* void>* e;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.expect
index 718920a..e4ecd94 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void> extends core::Object {
+class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (core::Null?) →* void> extends core::Object {
+class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -32,6 +32,6 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>* d;
-static field self::E<(core::Null?) →* void>* e;
+static field self::D<(Null, Null) →* void, (Null, Null) →* void>* d;
+static field self::E<(Null) →* void>* e;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.transformed.expect
index 718920a..e4ecd94 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void> extends core::Object {
+class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (core::Null?) →* void> extends core::Object {
+class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -32,6 +32,6 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>* d;
-static field self::E<(core::Null?) →* void>* e;
+static field self::D<(Null, Null) →* void, (Null, Null) →* void>* d;
+static field self::E<(Null) →* void>* e;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect
index 4090043..40367c2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void> extends core::Object {
+class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (core::Null?) →* void> extends core::Object {
+class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -30,9 +30,9 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>* ld;
-static field core::Map<self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*, self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>* md;
-static field core::List<self::E<(core::Null?) →* void>*>* le;
-static field core::Map<self::E<(core::Null?) →* void>*, self::E<(core::Null?) →* void>*>* me;
+static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld;
+static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md;
+static field core::List<self::E<(Null) →* void>*>* le;
+static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.expect
index 5013f6a2..eaaf4d5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void> extends core::Object {
+class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (core::Null?) →* void> extends core::Object {
+class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -32,8 +32,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>* ld = <self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>[];
-static field core::Map<self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*, self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>* md = <self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*, self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>{};
-static field core::List<self::E<(core::Null?) →* void>*>* le = <self::E<(core::Null?) →* void>*>[];
-static field core::Map<self::E<(core::Null?) →* void>*, self::E<(core::Null?) →* void>*>* me = <self::E<(core::Null?) →* void>*, self::E<(core::Null?) →* void>*>{};
+static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld = <self::D<(Null, Null) →* void, (Null, Null) →* void>*>[];
+static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md = <self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>{};
+static field core::List<self::E<(Null) →* void>*>* le = <self::E<(Null) →* void>*>[];
+static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me = <self::E<(Null) →* void>*, self::E<(Null) →* void>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect
index 5013f6a2..eaaf4d5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (core::Null?, core::Null?) →* void> extends core::Object {
+class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (core::Null?) →* void> extends core::Object {
+class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -32,8 +32,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>* ld = <self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>[];
-static field core::Map<self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*, self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>* md = <self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*, self::D<(core::Null?, core::Null?) →* void, (core::Null?, core::Null?) →* void>*>{};
-static field core::List<self::E<(core::Null?) →* void>*>* le = <self::E<(core::Null?) →* void>*>[];
-static field core::Map<self::E<(core::Null?) →* void>*, self::E<(core::Null?) →* void>*>* me = <self::E<(core::Null?) →* void>*, self::E<(core::Null?) →* void>*>{};
+static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld = <self::D<(Null, Null) →* void, (Null, Null) →* void>*>[];
+static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md = <self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>{};
+static field core::List<self::E<(Null) →* void>*>* le = <self::E<(Null) →* void>*>[];
+static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me = <self::E<(Null) →* void>*, self::E<(Null) →* void>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect
index ee773ec..7d85a42 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null?) →* dynamic> extends core::Object {
+class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null?) →* core::num*> extends core::Object {
+class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -44,7 +44,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, (core::Null?) →* dynamic>* c;
-static field self::D<core::num*, (core::Null?) →* core::num*>* d;
+static field self::C<dynamic, (Null) →* dynamic>* c;
+static field self::D<core::num*, (Null) →* core::num*>* d;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.expect
index cf12e75..1586c3d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null?) →* dynamic> extends core::Object {
+class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null?) →* core::num*> extends core::Object {
+class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -47,6 +47,6 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, (core::Null?) →* dynamic>* c;
-static field self::D<core::num*, (core::Null?) →* core::num*>* d;
+static field self::C<dynamic, (Null) →* dynamic>* c;
+static field self::D<core::num*, (Null) →* core::num*>* d;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.transformed.expect
index cf12e75..1586c3d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.strong.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null?) →* dynamic> extends core::Object {
+class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null?) →* core::num*> extends core::Object {
+class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -47,6 +47,6 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, (core::Null?) →* dynamic>* c;
-static field self::D<core::num*, (core::Null?) →* core::num*>* d;
+static field self::C<dynamic, (Null) →* dynamic>* c;
+static field self::D<core::num*, (Null) →* core::num*>* d;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect
index c483e76..e2d5490 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null?) →* dynamic> extends core::Object {
+class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null?) →* core::num*> extends core::Object {
+class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -44,9 +44,9 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, (core::Null?) →* dynamic>*>* lc;
-static field core::Map<self::C<dynamic, (core::Null?) →* dynamic>*, self::C<dynamic, (core::Null?) →* dynamic>*>* mc;
-static field core::List<self::D<core::num*, (core::Null?) →* core::num*>*>* ld;
-static field core::Map<self::D<core::num*, (core::Null?) →* core::num*>*, self::D<core::num*, (core::Null?) →* core::num*>*>* md;
+static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc;
+static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc;
+static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld;
+static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.expect
index 760dbc6..edf4bbf 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null?) →* dynamic> extends core::Object {
+class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null?) →* core::num*> extends core::Object {
+class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -47,8 +47,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, (core::Null?) →* dynamic>*>* lc = <self::C<dynamic, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::C<dynamic, (core::Null?) →* dynamic>*, self::C<dynamic, (core::Null?) →* dynamic>*>* mc = <self::C<dynamic, (core::Null?) →* dynamic>*, self::C<dynamic, (core::Null?) →* dynamic>*>{};
-static field core::List<self::D<core::num*, (core::Null?) →* core::num*>*>* ld = <self::D<core::num*, (core::Null?) →* core::num*>*>[];
-static field core::Map<self::D<core::num*, (core::Null?) →* core::num*>*, self::D<core::num*, (core::Null?) →* core::num*>*>* md = <self::D<core::num*, (core::Null?) →* core::num*>*, self::D<core::num*, (core::Null?) →* core::num*>*>{};
+static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc = <self::C<dynamic, (Null) →* dynamic>*>[];
+static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc = <self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>{};
+static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld = <self::D<core::num*, (Null) →* core::num*>*>[];
+static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md = <self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect
index 760dbc6..edf4bbf 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null?) →* dynamic> extends core::Object {
+class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null?) →* core::num*> extends core::Object {
+class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -47,8 +47,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, (core::Null?) →* dynamic>*>* lc = <self::C<dynamic, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::C<dynamic, (core::Null?) →* dynamic>*, self::C<dynamic, (core::Null?) →* dynamic>*>* mc = <self::C<dynamic, (core::Null?) →* dynamic>*, self::C<dynamic, (core::Null?) →* dynamic>*>{};
-static field core::List<self::D<core::num*, (core::Null?) →* core::num*>*>* ld = <self::D<core::num*, (core::Null?) →* core::num*>*>[];
-static field core::Map<self::D<core::num*, (core::Null?) →* core::num*>*, self::D<core::num*, (core::Null?) →* core::num*>*>* md = <self::D<core::num*, (core::Null?) →* core::num*>*, self::D<core::num*, (core::Null?) →* core::num*>*>{};
+static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc = <self::C<dynamic, (Null) →* dynamic>*>[];
+static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc = <self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>{};
+static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld = <self::D<core::num*, (Null) →* core::num*>*>[];
+static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md = <self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect
index 0a70645..df65afc 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect
@@ -122,7 +122,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (core::Null?) →* dynamic, W extends (self::I::X*) →* dynamic = (core::Null?) →* dynamic, X extends (self::I::V*) →* dynamic = (core::Null?) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
+class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -136,7 +136,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<S extends (self::J::U*) →* self::J::T* = (core::Null?) →* dynamic, T extends (self::J::S*) →* self::J::U* = (core::Null?) →* dynamic, U extends (self::J::T*) →* self::J::S* = (core::Null?) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (core::Null?) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
+class J<S extends (self::J::U*) →* self::J::T* = (Null) →* dynamic, T extends (self::J::S*) →* self::J::U* = (Null) →* dynamic, U extends (self::J::T*) →* self::J::S* = (Null) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (Null) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V*, self::J::W*, self::J::X*, self::J::Y*, self::J::Z*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -155,7 +155,7 @@
static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f;
static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g;
static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h;
-static field self::I<invalid-type, invalid-type, (core::Null?) →* dynamic, (core::Null?) →* dynamic, (core::Null?) →* dynamic, invalid-type, invalid-type>* i;
-static field self::J<(core::Null?) →* dynamic, (core::Null?) →* dynamic, (core::Null?) →* dynamic, dynamic, dynamic, (core::Null?) →* dynamic, dynamic, dynamic>* j;
+static field self::I<invalid-type, invalid-type, (Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, invalid-type, invalid-type>* i;
+static field self::J<(Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, dynamic, dynamic, (Null) →* dynamic, dynamic, dynamic>* j;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.expect
index a739066..d8cb6c1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.expect
@@ -130,7 +130,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (core::Null?) →* dynamic, W extends (self::I::X*) →* dynamic = (core::Null?) →* dynamic, X extends (self::I::V*) →* dynamic = (core::Null?) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
+class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
: super core::Object::•()
;
@@ -145,7 +145,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<S extends (self::J::U*) →* self::J::T* = (core::Null?) →* dynamic, T extends (self::J::S*) →* self::J::U* = (core::Null?) →* dynamic, U extends (self::J::T*) →* self::J::S* = (core::Null?) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (core::Null?) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
+class J<S extends (self::J::U*) →* self::J::T* = (Null) →* dynamic, T extends (self::J::S*) →* self::J::U* = (Null) →* dynamic, U extends (self::J::T*) →* self::J::S* = (Null) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (Null) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V*, self::J::W*, self::J::X*, self::J::Y*, self::J::Z*>*
: super core::Object::•()
;
@@ -165,6 +165,6 @@
static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f;
static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g;
static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h;
-static field self::I<invalid-type, invalid-type, (core::Null?) →* dynamic, (core::Null?) →* dynamic, (core::Null?) →* dynamic, invalid-type, invalid-type>* i;
-static field self::J<(core::Null?) →* dynamic, (core::Null?) →* dynamic, (core::Null?) →* dynamic, dynamic, dynamic, (core::Null?) →* dynamic, dynamic, dynamic>* j;
+static field self::I<invalid-type, invalid-type, (Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, invalid-type, invalid-type>* i;
+static field self::J<(Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, dynamic, dynamic, (Null) →* dynamic, dynamic, dynamic>* j;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.transformed.expect
index a739066..d8cb6c1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.strong.transformed.expect
@@ -130,7 +130,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (core::Null?) →* dynamic, W extends (self::I::X*) →* dynamic = (core::Null?) →* dynamic, X extends (self::I::V*) →* dynamic = (core::Null?) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
+class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
: super core::Object::•()
;
@@ -145,7 +145,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<S extends (self::J::U*) →* self::J::T* = (core::Null?) →* dynamic, T extends (self::J::S*) →* self::J::U* = (core::Null?) →* dynamic, U extends (self::J::T*) →* self::J::S* = (core::Null?) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (core::Null?) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
+class J<S extends (self::J::U*) →* self::J::T* = (Null) →* dynamic, T extends (self::J::S*) →* self::J::U* = (Null) →* dynamic, U extends (self::J::T*) →* self::J::S* = (Null) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (Null) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V*, self::J::W*, self::J::X*, self::J::Y*, self::J::Z*>*
: super core::Object::•()
;
@@ -165,6 +165,6 @@
static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f;
static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g;
static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h;
-static field self::I<invalid-type, invalid-type, (core::Null?) →* dynamic, (core::Null?) →* dynamic, (core::Null?) →* dynamic, invalid-type, invalid-type>* i;
-static field self::J<(core::Null?) →* dynamic, (core::Null?) →* dynamic, (core::Null?) →* dynamic, dynamic, dynamic, (core::Null?) →* dynamic, dynamic, dynamic>* j;
+static field self::I<invalid-type, invalid-type, (Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, invalid-type, invalid-type>* i;
+static field self::J<(Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, dynamic, dynamic, (Null) →* dynamic, dynamic, dynamic>* j;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect
index e79c974..b47cdbb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic> extends core::Object {
+class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (core::Null?) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -44,7 +44,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -58,7 +58,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -72,7 +72,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (core::Null?) →* dynamic> extends core::Object {
+class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -86,7 +86,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -100,7 +100,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -114,7 +114,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -128,7 +128,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (core::Null?) →* dynamic> extends core::Object {
+class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -142,14 +142,14 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* c1;
-static field self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* c2;
-static field self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>* c3;
-static field self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>* c4;
-static field self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>* d1;
-static field self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>* d2;
-static field self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>* d3;
-static field self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>* d4;
-static field self::E<(core::Null?) →* dynamic>* e;
+static field self::C1<(Null) →* dynamic, (Null) →* dynamic>* c1;
+static field self::C2<(Null) →* dynamic, (Null) →* dynamic>* c2;
+static field self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c3;
+static field self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c4;
+static field self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d1;
+static field self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d2;
+static field self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d3;
+static field self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d4;
+static field self::E<(Null) →* dynamic>* e;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.expect
index 6e8653f..381fd70 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic> extends core::Object {
+class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (core::Null?) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
: super core::Object::•()
;
@@ -47,7 +47,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
: super core::Object::•()
;
@@ -77,7 +77,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (core::Null?) →* dynamic> extends core::Object {
+class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
: super core::Object::•()
;
@@ -92,7 +92,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
: super core::Object::•()
;
@@ -107,7 +107,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
: super core::Object::•()
;
@@ -122,7 +122,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
: super core::Object::•()
;
@@ -137,7 +137,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (core::Null?) →* dynamic> extends core::Object {
+class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -152,13 +152,13 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* c1;
-static field self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* c2;
-static field self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>* c3;
-static field self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>* c4;
-static field self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>* d1;
-static field self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>* d2;
-static field self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>* d3;
-static field self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>* d4;
-static field self::E<(core::Null?) →* dynamic>* e;
+static field self::C1<(Null) →* dynamic, (Null) →* dynamic>* c1;
+static field self::C2<(Null) →* dynamic, (Null) →* dynamic>* c2;
+static field self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c3;
+static field self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c4;
+static field self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d1;
+static field self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d2;
+static field self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d3;
+static field self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d4;
+static field self::E<(Null) →* dynamic>* e;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.transformed.expect
index 6e8653f..381fd70 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.strong.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic> extends core::Object {
+class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (core::Null?) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
: super core::Object::•()
;
@@ -47,7 +47,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
: super core::Object::•()
;
@@ -77,7 +77,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (core::Null?) →* dynamic> extends core::Object {
+class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
: super core::Object::•()
;
@@ -92,7 +92,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
: super core::Object::•()
;
@@ -107,7 +107,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
: super core::Object::•()
;
@@ -122,7 +122,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
: super core::Object::•()
;
@@ -137,7 +137,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (core::Null?) →* dynamic> extends core::Object {
+class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -152,13 +152,13 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* c1;
-static field self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* c2;
-static field self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>* c3;
-static field self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>* c4;
-static field self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>* d1;
-static field self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>* d2;
-static field self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>* d3;
-static field self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>* d4;
-static field self::E<(core::Null?) →* dynamic>* e;
+static field self::C1<(Null) →* dynamic, (Null) →* dynamic>* c1;
+static field self::C2<(Null) →* dynamic, (Null) →* dynamic>* c2;
+static field self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c3;
+static field self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c4;
+static field self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d1;
+static field self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d2;
+static field self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d3;
+static field self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d4;
+static field self::E<(Null) →* dynamic>* e;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect
index c0655e7..eee0aab 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic> extends core::Object {
+class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (core::Null?) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -44,7 +44,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -58,7 +58,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -72,7 +72,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (core::Null?) →* dynamic> extends core::Object {
+class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -86,7 +86,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -100,7 +100,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -114,7 +114,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -128,7 +128,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (core::Null?) →* dynamic> extends core::Object {
+class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -142,23 +142,23 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* lc1;
-static field core::Map<self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* mc1;
-static field core::List<self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* lc2;
-static field core::Map<self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* mc2;
-static field core::List<self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* lc3;
-static field core::Map<self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* mc3;
-static field core::List<self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* lc4;
-static field core::Map<self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* mc4;
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* ld1;
-static field core::Map<self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* md1;
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* ld2;
-static field core::Map<self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* md2;
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* ld3;
-static field core::Map<self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* md3;
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* ld4;
-static field core::Map<self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* md4;
-static field core::List<self::E<(core::Null?) →* dynamic>*>* le;
-static field core::Map<self::E<(core::Null?) →* dynamic>*, self::E<(core::Null?) →* dynamic>*>* me;
+static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1;
+static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1;
+static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2;
+static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2;
+static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3;
+static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3;
+static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4;
+static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4;
+static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1;
+static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1;
+static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2;
+static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2;
+static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3;
+static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3;
+static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4;
+static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4;
+static field core::List<self::E<(Null) →* dynamic>*>* le;
+static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.expect
index 24668cb..57e2111 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic> extends core::Object {
+class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (core::Null?) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
: super core::Object::•()
;
@@ -47,7 +47,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
: super core::Object::•()
;
@@ -77,7 +77,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (core::Null?) →* dynamic> extends core::Object {
+class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
: super core::Object::•()
;
@@ -92,7 +92,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
: super core::Object::•()
;
@@ -107,7 +107,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
: super core::Object::•()
;
@@ -122,7 +122,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
: super core::Object::•()
;
@@ -137,7 +137,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (core::Null?) →* dynamic> extends core::Object {
+class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -152,22 +152,22 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* lc1 = <self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* mc1 = <self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>{};
-static field core::List<self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* lc2 = <self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* mc2 = <self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>{};
-static field core::List<self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* lc3 = <self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* mc3 = <self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* lc4 = <self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* mc4 = <self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* ld1 = <self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>{};
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* ld2 = <self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>{};
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* ld3 = <self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* ld4 = <self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::E<(core::Null?) →* dynamic>*>* le = <self::E<(core::Null?) →* dynamic>*>[];
-static field core::Map<self::E<(core::Null?) →* dynamic>*, self::E<(core::Null?) →* dynamic>*>* me = <self::E<(core::Null?) →* dynamic>*, self::E<(core::Null?) →* dynamic>*>{};
+static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*>[];
+static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>{};
+static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*>[];
+static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>{};
+static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
+static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
+static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
+static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
+static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
+static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
+static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
+static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
+static field core::List<self::E<(Null) →* dynamic>*>* le = <self::E<(Null) →* dynamic>*>[];
+static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me = <self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect
index 24668cb..57e2111 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (core::Null?) →* dynamic> extends core::Object {
+class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
: super core::Object::•()
;
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (core::Null?) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
: super core::Object::•()
;
@@ -47,7 +47,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (core::Null?, core::Null?) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
: super core::Object::•()
;
@@ -77,7 +77,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (core::Null?) →* dynamic> extends core::Object {
+class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
: super core::Object::•()
;
@@ -92,7 +92,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (core::Null?) →* dynamic> extends core::Object {
+class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
: super core::Object::•()
;
@@ -107,7 +107,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
: super core::Object::•()
;
@@ -122,7 +122,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (core::Null?, core::Null?) →* dynamic> extends core::Object {
+class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
: super core::Object::•()
;
@@ -137,7 +137,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (core::Null?) →* dynamic> extends core::Object {
+class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
synthetic constructor •() → self::E<self::E::X*>*
: super core::Object::•()
;
@@ -152,22 +152,22 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* lc1 = <self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* mc1 = <self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C1<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>{};
-static field core::List<self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* lc2 = <self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* mc2 = <self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*, self::C2<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>{};
-static field core::List<self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* lc3 = <self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* mc3 = <self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C3<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* lc4 = <self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>* mc4 = <self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*, self::C4<(core::Null?, core::Null?) →* dynamic, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* ld1 = <self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>{};
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* ld2 = <self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>[];
-static field core::Map<self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (core::Null?) →* dynamic>*>{};
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* ld3 = <self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* ld4 = <self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>[];
-static field core::Map<self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (core::Null?, core::Null?) →* dynamic>*>{};
-static field core::List<self::E<(core::Null?) →* dynamic>*>* le = <self::E<(core::Null?) →* dynamic>*>[];
-static field core::Map<self::E<(core::Null?) →* dynamic>*, self::E<(core::Null?) →* dynamic>*>* me = <self::E<(core::Null?) →* dynamic>*, self::E<(core::Null?) →* dynamic>*>{};
+static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*>[];
+static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>{};
+static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*>[];
+static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>{};
+static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
+static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
+static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
+static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
+static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
+static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
+static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
+static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
+static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
+static field core::List<self::E<(Null) →* dynamic>*>* le = <self::E<(Null) →* dynamic>*>[];
+static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me = <self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect
index 3fb9073..fd3806b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect
@@ -23,7 +23,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends <TypeZ extends self::Hest<core::Null?>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
+class Fisk<TypeY extends <TypeZ extends self::Hest<Null>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.expect
index b37cf28..74416db 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.expect
@@ -24,7 +24,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends <TypeZ extends self::Hest<core::Null?>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
+class Fisk<TypeY extends <TypeZ extends self::Hest<Null>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.transformed.expect
index b37cf28..74416db 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends <TypeZ extends self::Hest<core::Null?>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
+class Fisk<TypeY extends <TypeZ extends self::Hest<Null>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.outline.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.outline.expect
index 1a5e8e7..4078e3a 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.outline.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.outline.expect
@@ -4,9 +4,9 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect;
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional;
-static field () → core::Null? fieldCompound;
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect;
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional;
+static field () → Null fieldCompound;
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic
;
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect
index 3ef6e6c..ec6a51e 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect
@@ -64,7 +64,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -105,7 +105,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -151,7 +151,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
final core::int? local4;
function #local4#get() → core::int
return let final core::int? #t17 = local4 in #t17.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t17{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect
index 3ef6e6c..ec6a51e 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect
@@ -64,7 +64,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -105,7 +105,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -151,7 +151,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
final core::int? local4;
function #local4#get() → core::int
return let final core::int? #t17 = local4 in #t17.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t17{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect
index 20cf2a00..0b4576c 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect
@@ -64,7 +64,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -111,7 +111,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -163,7 +163,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
final core::int? local4;
core::bool #local4#isSet = false;
function #local4#get() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect
index 20cf2a00..0b4576c 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect
@@ -64,7 +64,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -111,7 +111,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
final T? local2;
core::bool #local2#isSet = false;
function #local2#get() → T%
@@ -163,7 +163,7 @@
local6 = 0; // error
^^^^^^" in #local6#set.call(0);
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
final core::int? local4;
core::bool #local4#isSet = false;
function #local4#get() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.outline.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.outline.expect
index 1a5e8e7..4078e3a 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.outline.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.outline.expect
@@ -4,9 +4,9 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect;
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional;
-static field () → core::Null? fieldCompound;
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect;
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional;
+static field () → Null fieldCompound;
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic
;
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect
index 00d7254..9fd2c07 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect
@@ -96,7 +96,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -151,7 +151,7 @@
^^^^^^" in #local6#get.call();
#local7#get.call();
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -209,7 +209,7 @@
#local6#get.call();
#local7#get.call();
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
core::int? local4;
function #local4#get() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect
index 00d7254..9fd2c07 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect
@@ -96,7 +96,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -151,7 +151,7 @@
^^^^^^" in #local6#get.call();
#local7#get.call();
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -209,7 +209,7 @@
#local6#get.call();
#local7#get.call();
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
core::int? local4;
function #local4#get() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect
index c162162..be1e0a1 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect
@@ -96,7 +96,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -157,7 +157,7 @@
^^^^^^" in #local6#get.call();
#local7#get.call();
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -221,7 +221,7 @@
#local6#get.call();
#local7#get.call();
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
core::int? local4;
core::bool #local4#isSet = false;
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect
index c162162..be1e0a1 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect
@@ -96,7 +96,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -157,7 +157,7 @@
^^^^^^" in #local6#get.call();
#local7#get.call();
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
T? local2;
core::bool #local2#isSet = false;
@@ -221,7 +221,7 @@
#local6#get.call();
#local7#get.call();
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
core::int? local4;
core::bool #local4#isSet = false;
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect
index 34dd272..7e000ad 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect
@@ -19,7 +19,7 @@
return value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
- (() → core::Null? {
+ (() → Null {
#value#set.call(this.{self::A::baz}());
}).call();
return result;
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect
index 34dd272..7e000ad 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect
@@ -19,7 +19,7 @@
return value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
- (() → core::Null? {
+ (() → Null {
#value#set.call(this.{self::A::baz}());
}).call();
return result;
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect
index 34dd272..7e000ad 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect
@@ -19,7 +19,7 @@
return value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
- (() → core::Null? {
+ (() → Null {
#value#set.call(this.{self::A::baz}());
}).call();
return result;
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect
index 34dd272..7e000ad 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect
@@ -19,7 +19,7 @@
return value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
- (() → core::Null? {
+ (() → Null {
#value#set.call(this.{self::A::baz}());
}).call();
return result;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect
index 2f84c91..8a5dd62 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect
@@ -13,7 +13,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect
index 2f84c91..8a5dd62 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect
@@ -13,7 +13,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect
index bfa3459..76adb10 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect
@@ -19,7 +19,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect
index bfa3459..76adb10 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect
@@ -19,7 +19,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect
index f10adef..5052aa475 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect
@@ -22,7 +22,7 @@
self::expect(123, #lateLocal#get.call());
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect
index f10adef..5052aa475 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect
@@ -22,7 +22,7 @@
self::expect(123, #lateLocal#get.call());
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect
index 069d6bd..4a3c1ef 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect
@@ -25,7 +25,7 @@
self::expect(123, #lateLocal#get.call());
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect
index 069d6bd..4a3c1ef 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect
@@ -25,7 +25,7 @@
self::expect(123, #lateLocal#get.call());
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect
index a134538..ffb22f1 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect
@@ -19,7 +19,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect
index a134538..ffb22f1 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect
@@ -19,7 +19,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect
index a134538..ffb22f1 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect
@@ -19,7 +19,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect
index a134538..ffb22f1 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect
@@ -19,7 +19,7 @@
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocalInit;
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect
index 6d26180..37fa15a 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect
@@ -21,7 +21,7 @@
}
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect
index 35e6af5..3dfd218 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect
@@ -21,7 +21,7 @@
}
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect
index 6d26180..37fa15a 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect
@@ -21,7 +21,7 @@
}
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect
index 35e6af5..3dfd218 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect
@@ -21,7 +21,7 @@
}
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
final T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect
index 9fbaf26..d08871e 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect
@@ -11,7 +11,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value1, T% value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect
index 9fbaf26..d08871e 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect
@@ -11,7 +11,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value1, T% value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect
index 81e2022..c681474 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect
@@ -19,7 +19,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value1, T% value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect
index 81e2022..c681474 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect
@@ -19,7 +19,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value1, T% value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect
index 36a822e..0f888e9 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect
@@ -12,7 +12,7 @@
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect
index 36a822e..0f888e9 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect
index fc0779c..49dc955 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect
@@ -15,7 +15,7 @@
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect
index fc0779c..49dc955 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect
@@ -15,7 +15,7 @@
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T% value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T% value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect
index dea8137..44a6c7f 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect
@@ -21,7 +21,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value1, T? value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect
index dea8137..44a6c7f 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect
@@ -21,7 +21,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value1, T? value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect
index dea8137..44a6c7f 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect
@@ -21,7 +21,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value1, T? value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect
index dea8137..44a6c7f 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect
@@ -21,7 +21,7 @@
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value1, T? value2) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect
index 91dd9f8..d1c2417 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect
@@ -15,7 +15,7 @@
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect
index 91dd9f8..d1c2417 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect
@@ -15,7 +15,7 @@
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect
index 91dd9f8..d1c2417 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect
@@ -15,7 +15,7 @@
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect
index 91dd9f8..d1c2417 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect
@@ -15,7 +15,7 @@
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
- function local<T extends core::Object? = dynamic>(T? value) → core::Null? {
+ function local<T extends core::Object? = dynamic>(T? value) → Null {
T? lateGenericLocal;
core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
index b0a568a..03ef078 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
@@ -30,11 +30,11 @@
non::expect(null, c.{non::Class::finalInstanceTypeVariable});
non::expect(null, non::Class::staticField);
non::expect(null, non::Class::staticFinalField);
- non::throws(() → core::Null? => non::finalTopLevelField = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceField} = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceTypeVariable} = null);
- non::throws(() → core::Null? => non::Class::staticFinalField = null);
- non::method<core::Null?>(true, null, null);
+ non::throws(() → Null => non::finalTopLevelField = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceField} = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceTypeVariable} = null);
+ non::throws(() → Null => non::Class::staticFinalField = null);
+ non::method<Null>(true, null, null);
}
library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
index b0a568a..03ef078 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
@@ -30,11 +30,11 @@
non::expect(null, c.{non::Class::finalInstanceTypeVariable});
non::expect(null, non::Class::staticField);
non::expect(null, non::Class::staticFinalField);
- non::throws(() → core::Null? => non::finalTopLevelField = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceField} = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceTypeVariable} = null);
- non::throws(() → core::Null? => non::Class::staticFinalField = null);
- non::method<core::Null?>(true, null, null);
+ non::throws(() → Null => non::finalTopLevelField = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceField} = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceTypeVariable} = null);
+ non::throws(() → Null => non::Class::staticFinalField = null);
+ non::method<Null>(true, null, null);
}
library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
index 9f26c1e..53ea9c9 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
@@ -23,11 +23,11 @@
non::expect(null, c.{non::Class::finalInstanceTypeVariable});
non::expect(null, non::Class::staticField);
non::expect(null, non::Class::staticFinalField);
- non::throws(() → core::Null? => non::finalTopLevelField = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceField} = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceTypeVariable} = null);
- non::throws(() → core::Null? => non::Class::staticFinalField = null);
- non::method<core::Null?>(true, null, null);
+ non::throws(() → Null => non::finalTopLevelField = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceField} = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceTypeVariable} = null);
+ non::throws(() → Null => non::Class::staticFinalField = null);
+ non::method<Null>(true, null, null);
}
library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
index 9f26c1e..53ea9c9 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
@@ -23,11 +23,11 @@
non::expect(null, c.{non::Class::finalInstanceTypeVariable});
non::expect(null, non::Class::staticField);
non::expect(null, non::Class::staticFinalField);
- non::throws(() → core::Null? => non::finalTopLevelField = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceField} = null);
- non::throws(() → core::Null? => c.{non::Class::finalInstanceTypeVariable} = null);
- non::throws(() → core::Null? => non::Class::staticFinalField = null);
- non::method<core::Null?>(true, null, null);
+ non::throws(() → Null => non::finalTopLevelField = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceField} = null);
+ non::throws(() → Null => c.{non::Class::finalInstanceTypeVariable} = null);
+ non::throws(() → Null => non::Class::staticFinalField = null);
+ non::method<Null>(true, null, null);
}
library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.outline.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.outline.expect
index 04a6535..02239ae 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.outline.expect
@@ -22,29 +22,29 @@
static final field core::bool isWeakMode;
static const field core::bool c0 = null is{ForNonNullableByDefault} core::int?;
static const field core::bool c1 = null is{ForNonNullableByDefault} core::int;
-static const field core::bool c2 = null is{ForNonNullableByDefault} core::Null?;
+static const field core::bool c2 = null is{ForNonNullableByDefault} Null;
static const field core::bool c3 = null is{ForNonNullableByDefault} Never?;
static const field core::bool c4 = null is{ForNonNullableByDefault} Never;
static const field core::bool c5 = null is{ForNonNullableByDefault} FutureOr<core::int?>;
static const field core::bool c6 = null is{ForNonNullableByDefault} FutureOr<core::int>;
static const field core::bool c7 = null is{ForNonNullableByDefault} FutureOr<core::int>?;
-static const field core::bool c8 = null is{ForNonNullableByDefault} FutureOr<core::Null?>;
-static const field core::bool c9 = null is{ForNonNullableByDefault} FutureOr<core::Null?>?;
+static const field core::bool c8 = null is{ForNonNullableByDefault} FutureOr<Null>;
+static const field core::bool c9 = null is{ForNonNullableByDefault} FutureOr<Null>?;
static const field core::bool c10 = null is{ForNonNullableByDefault} FutureOr<Never>;
static const field core::bool c11 = null is{ForNonNullableByDefault} FutureOr<Never?>;
static const field core::bool c12 = null is{ForNonNullableByDefault} FutureOr<Never>?;
static const field self::Class<core::int> e1 = const self::Class::constructor1<core::int>(null);
static const field self::Class<core::int?> e2 = const self::Class::constructor1<core::int?>(null);
-static const field self::Class<core::Null?> e3 = const self::Class::constructor1<core::Null?>(null);
+static const field self::Class<Null> e3 = const self::Class::constructor1<Null>(null);
static const field self::Class<core::int> e4 = const self::Class::constructor2<core::int>(null);
static const field self::Class<core::int?> e5 = const self::Class::constructor2<core::int?>(null);
-static const field self::Class<core::Null?> e6 = const self::Class::constructor2<core::Null?>(null);
+static const field self::Class<Null> e6 = const self::Class::constructor2<Null>(null);
static const field self::Class<core::int> e7 = const self::Class::constructor3<core::int>(null);
static const field self::Class<core::int?> e8 = const self::Class::constructor3<core::int?>(null);
-static const field self::Class<core::Null?> e9 = const self::Class::constructor3<core::Null?>(null);
+static const field self::Class<Null> e9 = const self::Class::constructor3<Null>(null);
static const field self::Class<core::int> e10 = const self::Class::constructor4<core::int>(null);
static const field self::Class<core::int?> e11 = const self::Class::constructor4<core::int?>(null);
-static const field self::Class<core::Null?> e12 = const self::Class::constructor4<core::Null?>(null);
+static const field self::Class<Null> e12 = const self::Class::constructor4<Null>(null);
static method main() → dynamic
;
static method expect(dynamic expected, dynamic actual, core::String message) → dynamic
@@ -67,14 +67,14 @@
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:21:18 -> BoolConstant(true)
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:22:18 -> InstanceConstant(const Class<int>{Class.field: false})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:23:18 -> InstanceConstant(const Class<int?>{Class.field: true})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:24:18 -> InstanceConstant(const Class<Null?>{Class.field: true})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:24:18 -> InstanceConstant(const Class<Null>{Class.field: true})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:25:18 -> InstanceConstant(const Class<int>{Class.field: true})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:26:18 -> InstanceConstant(const Class<int?>{Class.field: true})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:27:18 -> InstanceConstant(const Class<Null?>{Class.field: true})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:27:18 -> InstanceConstant(const Class<Null>{Class.field: true})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:28:18 -> InstanceConstant(const Class<int>{Class.field: false})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:29:18 -> InstanceConstant(const Class<int?>{Class.field: false})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:30:18 -> InstanceConstant(const Class<Null?>{Class.field: false})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:30:18 -> InstanceConstant(const Class<Null>{Class.field: false})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:31:19 -> InstanceConstant(const Class<int>{Class.field: true})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:32:19 -> InstanceConstant(const Class<int?>{Class.field: true})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:33:19 -> InstanceConstant(const Class<Null?>{Class.field: true})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_is.dart:33:19 -> InstanceConstant(const Class<Null>{Class.field: true})
Extra constant evaluation: evaluated: 33, effectively constant: 25
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect
index 38d97af..fd5c283 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect
@@ -35,45 +35,45 @@
static const field core::bool c12 = #C2;
static const field self::Class<core::int> e1 = #C4;
static const field self::Class<core::int?> e2 = #C5;
-static const field self::Class<core::Null?> e3 = #C6;
+static const field self::Class<Null> e3 = #C6;
static const field self::Class<core::int> e4 = #C7;
static const field self::Class<core::int?> e5 = #C5;
-static const field self::Class<core::Null?> e6 = #C6;
+static const field self::Class<Null> e6 = #C6;
static const field self::Class<core::int> e7 = #C4;
static const field self::Class<core::int?> e8 = #C8;
-static const field self::Class<core::Null?> e9 = #C9;
+static const field self::Class<Null> e9 = #C9;
static const field self::Class<core::int> e10 = #C7;
static const field self::Class<core::int?> e11 = #C5;
-static const field self::Class<core::Null?> e12 = #C6;
+static const field self::Class<Null> e12 = #C6;
static method main() → dynamic {
self::expect(null is{ForNonNullableByDefault} core::int?, #C2, "null is int?");
self::expect(null is{ForNonNullableByDefault} core::int, #C3, "null is int");
- self::expect(null is{ForNonNullableByDefault} core::Null?, #C2, "null is Null");
+ self::expect(null is{ForNonNullableByDefault} Null, #C2, "null is Null");
self::expect(null is{ForNonNullableByDefault} Never?, #C2, "null is Never?");
self::expect(null is{ForNonNullableByDefault} Never, #C3, "null is Never");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int?>, #C2, "null is FutureOr<int?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>, #C3, "null is FutureOr<int>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>?, #C2, "null is FutureOr<int>?");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>, #C2, "null is FutureOr<Null>");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>?, #C2, "null is FutureOr<Null>?");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>, #C2, "null is FutureOr<Null>");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>?, #C2, "null is FutureOr<Null>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>, #C3, "null is FutureOr<Never>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never?>, #C2, "null is FutureOr<Never?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>?, #C2, "null is FutureOr<Never>?");
self::expect(new self::Class::constructor1<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field");
self::expect(true, new self::Class::constructor1<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor1(null).field");
self::expect(!self::isWeakMode, (#C5).{self::Class::field}, "const Class<int?>.constructor1(null).field");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor1(null).field");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor1(null).field");
self::expect(new self::Class::constructor2<core::int>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<int>.constructor2(null).field");
self::expect(true, new self::Class::constructor2<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<core::int?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<int?>.constructor2(null).field");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor2(null).field");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor2(null).field");
self::expect(new self::Class::constructor3<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C8).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C8).{self::Class::field}, "Class<int?>.constructor3(null).field");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C9).{self::Class::field}, "Class<Null>.constructor3(null).field");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C9).{self::Class::field}, "Class<Null>.constructor3(null).field");
self::expect(new self::Class::constructor4<core::int>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<int>.constructor4(null).field");
self::expect(new self::Class::constructor4<core::int?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<int?>.constructor4(null).field");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor4(null).field");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor4(null).field");
}
static method expect(dynamic expected, dynamic actual, core::String message) → dynamic {
if(!expected.{core::Object::==}(actual))
@@ -81,13 +81,13 @@
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = false
#C4 = self::Class<core::int> {field:#C3}
#C5 = self::Class<core::int?> {field:#C2}
- #C6 = self::Class<core::Null?> {field:#C2}
+ #C6 = self::Class<Null> {field:#C2}
#C7 = self::Class<core::int> {field:#C2}
#C8 = self::Class<core::int?> {field:#C3}
- #C9 = self::Class<core::Null?> {field:#C3}
+ #C9 = self::Class<Null> {field:#C3}
}
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect
index 72bc1d1..a6548c6 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect
@@ -35,45 +35,45 @@
static const field core::bool c12 = #C2;
static const field self::Class<core::int> e1 = #C4;
static const field self::Class<core::int?> e2 = #C5;
-static const field self::Class<core::Null?> e3 = #C6;
+static const field self::Class<Null> e3 = #C6;
static const field self::Class<core::int> e4 = #C7;
static const field self::Class<core::int?> e5 = #C5;
-static const field self::Class<core::Null?> e6 = #C6;
+static const field self::Class<Null> e6 = #C6;
static const field self::Class<core::int> e7 = #C4;
static const field self::Class<core::int?> e8 = #C8;
-static const field self::Class<core::Null?> e9 = #C9;
+static const field self::Class<Null> e9 = #C9;
static const field self::Class<core::int> e10 = #C7;
static const field self::Class<core::int?> e11 = #C5;
-static const field self::Class<core::Null?> e12 = #C6;
+static const field self::Class<Null> e12 = #C6;
static method main() → dynamic {
self::expect(null is{ForNonNullableByDefault} core::int?, #C2, "null is int?");
self::expect(null is{ForNonNullableByDefault} core::int, #C3, "null is int");
- self::expect(null is{ForNonNullableByDefault} core::Null?, #C2, "null is Null");
+ self::expect(null is{ForNonNullableByDefault} Null, #C2, "null is Null");
self::expect(null is{ForNonNullableByDefault} Never?, #C2, "null is Never?");
self::expect(null is{ForNonNullableByDefault} Never, #C3, "null is Never");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int?>, #C2, "null is FutureOr<int?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>, #C3, "null is FutureOr<int>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>?, #C2, "null is FutureOr<int>?");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>, #C2, "null is FutureOr<Null>");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>?, #C2, "null is FutureOr<Null>?");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>, #C2, "null is FutureOr<Null>");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>?, #C2, "null is FutureOr<Null>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>, #C3, "null is FutureOr<Never>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never?>, #C2, "null is FutureOr<Never?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>?, #C2, "null is FutureOr<Never>?");
self::expect(new self::Class::constructor1<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field");
self::expect(true, new self::Class::constructor1<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor1(null).field");
self::expect(!self::isWeakMode, (#C5).{self::Class::field}, "const Class<int?>.constructor1(null).field");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor1(null).field");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor1(null).field");
self::expect(new self::Class::constructor2<core::int>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<int>.constructor2(null).field");
self::expect(true, new self::Class::constructor2<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<core::int?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<int?>.constructor2(null).field");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor2(null).field");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor2(null).field");
self::expect(new self::Class::constructor3<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C8).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C8).{self::Class::field}, "Class<int?>.constructor3(null).field");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C9).{self::Class::field}, "Class<Null>.constructor3(null).field");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C9).{self::Class::field}, "Class<Null>.constructor3(null).field");
self::expect(new self::Class::constructor4<core::int>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<int>.constructor4(null).field");
self::expect(new self::Class::constructor4<core::int?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<int?>.constructor4(null).field");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor4(null).field");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor4(null).field");
}
static method expect(dynamic expected, dynamic actual, core::String message) → dynamic {
if(!expected.{core::Object::==}(actual))
@@ -81,15 +81,15 @@
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = false
#C4 = self::Class<core::int> {field:#C3}
#C5 = self::Class<core::int?> {field:#C2}
- #C6 = self::Class<core::Null?> {field:#C2}
+ #C6 = self::Class<Null> {field:#C2}
#C7 = self::Class<core::int> {field:#C2}
#C8 = self::Class<core::int?> {field:#C3}
- #C9 = self::Class<core::Null?> {field:#C3}
+ #C9 = self::Class<Null> {field:#C3}
}
Extra constant evaluation status:
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect
index 1c2af1f..5ff7516 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect
@@ -35,45 +35,45 @@
static const field core::bool c12 = #C2;
static const field self::Class<core::int> e1 = #C4;
static const field self::Class<core::int?> e2 = #C4;
-static const field self::Class<core::Null?> e3 = #C5;
+static const field self::Class<Null> e3 = #C5;
static const field self::Class<core::int> e4 = #C6;
static const field self::Class<core::int?> e5 = #C6;
-static const field self::Class<core::Null?> e6 = #C5;
+static const field self::Class<Null> e6 = #C5;
static const field self::Class<core::int> e7 = #C4;
static const field self::Class<core::int?> e8 = #C4;
-static const field self::Class<core::Null?> e9 = #C7;
+static const field self::Class<Null> e9 = #C7;
static const field self::Class<core::int> e10 = #C6;
static const field self::Class<core::int?> e11 = #C6;
-static const field self::Class<core::Null?> e12 = #C5;
+static const field self::Class<Null> e12 = #C5;
static method main() → dynamic {
self::expect(null is{ForNonNullableByDefault} core::int?, #C2, "null is int?");
self::expect(null is{ForNonNullableByDefault} core::int, #C3, "null is int");
- self::expect(null is{ForNonNullableByDefault} core::Null?, #C2, "null is Null");
+ self::expect(null is{ForNonNullableByDefault} Null, #C2, "null is Null");
self::expect(null is{ForNonNullableByDefault} Never?, #C2, "null is Never?");
self::expect(null is{ForNonNullableByDefault} Never, #C3, "null is Never");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int?>, #C2, "null is FutureOr<int?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>, #C3, "null is FutureOr<int>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>?, #C2, "null is FutureOr<int>?");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>, #C2, "null is FutureOr<Null>");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>?, #C2, "null is FutureOr<Null>?");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>, #C2, "null is FutureOr<Null>");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>?, #C2, "null is FutureOr<Null>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>, #C3, "null is FutureOr<Never>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never?>, #C2, "null is FutureOr<Never?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>?, #C2, "null is FutureOr<Never>?");
self::expect(new self::Class::constructor1<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field");
self::expect(true, new self::Class::constructor1<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor1(null).field");
self::expect(!self::isWeakMode, (#C4).{self::Class::field}, "const Class<int?>.constructor1(null).field");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
self::expect(new self::Class::constructor2<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor2(null).field");
self::expect(true, new self::Class::constructor2<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor2(null).field");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
self::expect(new self::Class::constructor3<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
self::expect(new self::Class::constructor4<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor4(null).field");
self::expect(new self::Class::constructor4<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor4(null).field");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
}
static method expect(dynamic expected, dynamic actual, core::String message) → dynamic {
if(!expected.{core::Object::==}(actual))
@@ -81,11 +81,11 @@
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = false
#C4 = self::Class<core::int*> {field:#C3}
- #C5 = self::Class<core::Null?> {field:#C2}
+ #C5 = self::Class<Null> {field:#C2}
#C6 = self::Class<core::int*> {field:#C2}
- #C7 = self::Class<core::Null?> {field:#C3}
+ #C7 = self::Class<Null> {field:#C3}
}
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect
index 4bd5117..72bc3fa 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect
@@ -35,45 +35,45 @@
static const field core::bool c12 = #C2;
static const field self::Class<core::int> e1 = #C4;
static const field self::Class<core::int?> e2 = #C4;
-static const field self::Class<core::Null?> e3 = #C5;
+static const field self::Class<Null> e3 = #C5;
static const field self::Class<core::int> e4 = #C6;
static const field self::Class<core::int?> e5 = #C6;
-static const field self::Class<core::Null?> e6 = #C5;
+static const field self::Class<Null> e6 = #C5;
static const field self::Class<core::int> e7 = #C4;
static const field self::Class<core::int?> e8 = #C4;
-static const field self::Class<core::Null?> e9 = #C7;
+static const field self::Class<Null> e9 = #C7;
static const field self::Class<core::int> e10 = #C6;
static const field self::Class<core::int?> e11 = #C6;
-static const field self::Class<core::Null?> e12 = #C5;
+static const field self::Class<Null> e12 = #C5;
static method main() → dynamic {
self::expect(null is{ForNonNullableByDefault} core::int?, #C2, "null is int?");
self::expect(null is{ForNonNullableByDefault} core::int, #C3, "null is int");
- self::expect(null is{ForNonNullableByDefault} core::Null?, #C2, "null is Null");
+ self::expect(null is{ForNonNullableByDefault} Null, #C2, "null is Null");
self::expect(null is{ForNonNullableByDefault} Never?, #C2, "null is Never?");
self::expect(null is{ForNonNullableByDefault} Never, #C3, "null is Never");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int?>, #C2, "null is FutureOr<int?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>, #C3, "null is FutureOr<int>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>?, #C2, "null is FutureOr<int>?");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>, #C2, "null is FutureOr<Null>");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>?, #C2, "null is FutureOr<Null>?");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>, #C2, "null is FutureOr<Null>");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>?, #C2, "null is FutureOr<Null>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>, #C3, "null is FutureOr<Never>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never?>, #C2, "null is FutureOr<Never?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>?, #C2, "null is FutureOr<Never>?");
self::expect(new self::Class::constructor1<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field");
self::expect(true, new self::Class::constructor1<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor1(null).field");
self::expect(!self::isWeakMode, (#C4).{self::Class::field}, "const Class<int?>.constructor1(null).field");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
self::expect(new self::Class::constructor2<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor2(null).field");
self::expect(true, new self::Class::constructor2<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor2(null).field");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
self::expect(new self::Class::constructor3<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
self::expect(new self::Class::constructor4<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor4(null).field");
self::expect(new self::Class::constructor4<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor4(null).field");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
}
static method expect(dynamic expected, dynamic actual, core::String message) → dynamic {
if(!expected.{core::Object::==}(actual))
@@ -81,13 +81,13 @@
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = false
#C4 = self::Class<core::int*> {field:#C3}
- #C5 = self::Class<core::Null?> {field:#C2}
+ #C5 = self::Class<Null> {field:#C2}
#C6 = self::Class<core::int*> {field:#C2}
- #C7 = self::Class<core::Null?> {field:#C3}
+ #C7 = self::Class<Null> {field:#C3}
}
Extra constant evaluation status:
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.outline.expect b/pkg/front_end/testcases/nnbd/constants.dart.outline.expect
index 4de21ca..2ca773c 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.outline.expect
@@ -69,10 +69,10 @@
Evaluated: TypeLiteral @ org-dartlang-testcase:///constants.dart:13:29 -> TypeLiteralConstant(dynamic Function(dynamic))
Evaluated: TypeLiteral @ org-dartlang-testcase:///constants.dart:14:36 -> TypeLiteralConstant(T% Function<T>(T%))
Evaluated: ListLiteral @ org-dartlang-testcase:///constants.dart:15:26 -> ListConstant(const <int>[0])
-Evaluated: SetLiteral @ org-dartlang-testcase:///constants.dart:16:25 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null?>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
+Evaluated: SetLiteral @ org-dartlang-testcase:///constants.dart:16:25 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
Evaluated: MapLiteral @ org-dartlang-testcase:///constants.dart:17:33 -> InstanceConstant(const _ImmutableMap<int, String>{_ImmutableMap._kvPairs: const <dynamic>[0, "foo"]})
Evaluated: ListConcatenation @ org-dartlang-testcase:///constants.dart:18:32 -> ListConstant(const <int>[0])
-Evaluated: SetConcatenation @ org-dartlang-testcase:///constants.dart:19:31 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null?>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
+Evaluated: SetConcatenation @ org-dartlang-testcase:///constants.dart:19:31 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
Evaluated: MapConcatenation @ org-dartlang-testcase:///constants.dart:20:7 -> InstanceConstant(const _ImmutableMap<int, String>{_ImmutableMap._kvPairs: const <dynamic>[0, "foo"]})
Evaluated: StaticInvocation @ org-dartlang-testcase:///constants.dart:23:5 -> BoolConstant(true)
Evaluated: StaticInvocation @ org-dartlang-testcase:///constants.dart:25:5 -> BoolConstant(true)
@@ -92,9 +92,9 @@
Evaluated: TypeLiteral @ org-dartlang-testcase:///constants_lib.dart:20:29 -> TypeLiteralConstant(dynamic Function(dynamic))
Evaluated: TypeLiteral @ org-dartlang-testcase:///constants_lib.dart:21:36 -> TypeLiteralConstant(T% Function<T>(T%))
Evaluated: ListLiteral @ org-dartlang-testcase:///constants_lib.dart:22:26 -> ListConstant(const <int>[0])
-Evaluated: SetLiteral @ org-dartlang-testcase:///constants_lib.dart:23:25 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null?>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
+Evaluated: SetLiteral @ org-dartlang-testcase:///constants_lib.dart:23:25 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
Evaluated: MapLiteral @ org-dartlang-testcase:///constants_lib.dart:24:33 -> InstanceConstant(const _ImmutableMap<int, String>{_ImmutableMap._kvPairs: const <dynamic>[0, "foo"]})
Evaluated: ListConcatenation @ org-dartlang-testcase:///constants_lib.dart:25:32 -> ListConstant(const <int>[0])
-Evaluated: SetConcatenation @ org-dartlang-testcase:///constants_lib.dart:26:31 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null?>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
+Evaluated: SetConcatenation @ org-dartlang-testcase:///constants_lib.dart:26:31 -> InstanceConstant(const _UnmodifiableSet<int>{_UnmodifiableSet._map: const _ImmutableMap<int, Null>{_ImmutableMap._kvPairs: const <dynamic>[0, null]}})
Evaluated: MapConcatenation @ org-dartlang-testcase:///constants_lib.dart:27:7 -> InstanceConstant(const _ImmutableMap<int, String>{_ImmutableMap._kvPairs: const <dynamic>[0, "foo"]})
Extra constant evaluation: evaluated: 35, effectively constant: 34
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.strong.expect b/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
index 6ff5eb2..d2ed836 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
@@ -98,7 +98,7 @@
#C8 = <core::int>[#C4]
#C9 = null
#C10 = <dynamic>[#C4, #C9]
- #C11 = core::_ImmutableMap<core::int, core::Null?> {_kvPairs:#C10}
+ #C11 = core::_ImmutableMap<core::int, Null> {_kvPairs:#C10}
#C12 = col::_UnmodifiableSet<core::int> {_map:#C11}
#C13 = "foo"
#C14 = <dynamic>[#C4, #C13]
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
index 6ff5eb2..d2ed836 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
@@ -98,7 +98,7 @@
#C8 = <core::int>[#C4]
#C9 = null
#C10 = <dynamic>[#C4, #C9]
- #C11 = core::_ImmutableMap<core::int, core::Null?> {_kvPairs:#C10}
+ #C11 = core::_ImmutableMap<core::int, Null> {_kvPairs:#C10}
#C12 = col::_UnmodifiableSet<core::int> {_map:#C11}
#C13 = "foo"
#C14 = <dynamic>[#C4, #C13]
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.weak.expect b/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
index 787be87..be9f59d 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
@@ -98,7 +98,7 @@
#C8 = <core::int*>[#C4]
#C9 = null
#C10 = <dynamic>[#C4, #C9]
- #C11 = core::_ImmutableMap<core::int*, core::Null?> {_kvPairs:#C10}
+ #C11 = core::_ImmutableMap<core::int*, Null> {_kvPairs:#C10}
#C12 = col::_UnmodifiableSet<core::int*> {_map:#C11}
#C13 = "foo"
#C14 = <dynamic>[#C4, #C13]
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
index 787be87..be9f59d 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
@@ -98,7 +98,7 @@
#C8 = <core::int*>[#C4]
#C9 = null
#C10 = <dynamic>[#C4, #C9]
- #C11 = core::_ImmutableMap<core::int*, core::Null?> {_kvPairs:#C10}
+ #C11 = core::_ImmutableMap<core::int*, Null> {_kvPairs:#C10}
#C12 = col::_UnmodifiableSet<core::int*> {_map:#C11}
#C13 = "foo"
#C14 = <dynamic>[#C4, #C13]
diff --git a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.outline.expect b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.outline.expect
index 1a5e8e7..4078e3a 100644
--- a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.outline.expect
@@ -4,9 +4,9 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect;
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional;
-static field () → core::Null? fieldCompound;
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect;
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional;
+static field () → Null fieldCompound;
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic
;
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic
diff --git a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.expect b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.expect
index 31532b7..a63baf3 100644
--- a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.expect
@@ -63,7 +63,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -80,7 +80,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -102,7 +102,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
late final core::int local4;
local4 = 0;
let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
diff --git a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.transformed.expect
index 31532b7..a63baf3 100644
--- a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.strong.transformed.expect
@@ -63,7 +63,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -80,7 +80,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -102,7 +102,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
late final core::int local4;
local4 = 0;
let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
diff --git a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.expect b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.expect
index 31532b7..a63baf3 100644
--- a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.expect
@@ -63,7 +63,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -80,7 +80,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -102,7 +102,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
late final core::int local4;
local4 = 0;
let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
diff --git a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.transformed.expect
index 31532b7..a63baf3 100644
--- a/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_assigned.dart.weak.transformed.expect
@@ -63,7 +63,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -80,7 +80,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
late final T% local2;
late final core::int local4;
late final FutureOr<core::int>local6;
@@ -102,7 +102,7 @@
local6 = 0; // error
^^^^^^" in local6 = 0;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
late final core::int local4;
local4 = 0;
let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
diff --git a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.outline.expect b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.outline.expect
index 1a5e8e7..4078e3a 100644
--- a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.outline.expect
@@ -4,9 +4,9 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect;
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional;
-static field () → core::Null? fieldCompound;
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect;
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional;
+static field () → Null fieldCompound;
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic
;
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic
diff --git a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.expect b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.expect
index d23513e..1803f4a 100644
--- a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.expect
@@ -95,7 +95,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -123,7 +123,7 @@
^^^^^^" in local6;
local7;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -154,7 +154,7 @@
local6;
local7;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
late core::int local4;
local3 = (let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
diff --git a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.transformed.expect
index b7c2c1c..be2309c 100644
--- a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.strong.transformed.expect
@@ -95,7 +95,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -125,7 +125,7 @@
^^^^^^" in local6;
local7;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -158,7 +158,7 @@
local6;
local7;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
late core::int local4;
local3 = (let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
diff --git a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.expect b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.expect
index d23513e..1803f4a 100644
--- a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.expect
@@ -95,7 +95,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -123,7 +123,7 @@
^^^^^^" in local6;
local7;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -154,7 +154,7 @@
local6;
local7;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
late core::int local4;
local3 = (let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
diff --git a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.transformed.expect
index b7c2c1c..be2309c 100644
--- a/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/definitely_unassigned.dart.weak.transformed.expect
@@ -95,7 +95,7 @@
import "dart:async";
-static field <T extends core::Object? = dynamic>(T%) → core::Null? fieldDirect = <T extends core::Object? = dynamic>(T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -125,7 +125,7 @@
^^^^^^" in local6;
local7;
};
-static field <T extends core::Object? = dynamic>(core::bool, T%) → core::Null? fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → core::Null? {
+static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
late T% local2;
core::int local3;
@@ -158,7 +158,7 @@
local6;
local7;
};
-static field () → core::Null? fieldCompound = () → core::Null? {
+static field () → Null fieldCompound = () → Null {
core::int local3;
late core::int local4;
local3 = (let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/nnbd/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
diff --git a/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.outline.expect b/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.outline.expect
index c79998e..b4161d9 100644
--- a/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.outline.expect
@@ -28,7 +28,7 @@
Extra constant evaluation status:
Evaluated: StaticInvocation @ org-dartlang-testcase:///from_agnostic.dart:7:12 -> BoolConstant(false)
Evaluated: MapLiteral @ org-dartlang-testcase:///from_agnostic.dart:8:12 -> InstanceConstant(const _ImmutableMap<List<int?>, int>{_ImmutableMap._kvPairs: const <dynamic>[const <int>[], 0, const <int?>[], 1]})
-Evaluated: SetLiteral @ org-dartlang-testcase:///from_agnostic.dart:9:12 -> InstanceConstant(const _UnmodifiableSet<List<int?>>{_UnmodifiableSet._map: const _ImmutableMap<List<int?>, Null?>{_ImmutableMap._kvPairs: const <dynamic>[const <int>[], null, const <int?>[], null]}})
+Evaluated: SetLiteral @ org-dartlang-testcase:///from_agnostic.dart:9:12 -> InstanceConstant(const _UnmodifiableSet<List<int?>>{_UnmodifiableSet._map: const _ImmutableMap<List<int?>, Null>{_ImmutableMap._kvPairs: const <dynamic>[const <int>[], null, const <int?>[], null]}})
Evaluated: StaticGet @ org-dartlang-testcase:///from_agnostic.dart:10:12 -> ListConstant(const <int>[])
Evaluated: StaticGet @ org-dartlang-testcase:///from_agnostic.dart:11:12 -> ListConstant(const <int?>[])
Extra constant evaluation: evaluated: 5, effectively constant: 5
diff --git a/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.expect b/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.expect
index ef5caf7..e114f63 100644
--- a/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.expect
@@ -31,6 +31,6 @@
#C7 = core::_ImmutableMap<core::List<core::int?>, core::int> {_kvPairs:#C6}
#C8 = null
#C9 = <dynamic>[#C2, #C8, #C4, #C8]
- #C10 = core::_ImmutableMap<core::List<core::int?>, core::Null?> {_kvPairs:#C9}
+ #C10 = core::_ImmutableMap<core::List<core::int?>, Null> {_kvPairs:#C9}
#C11 = col::_UnmodifiableSet<core::List<core::int?>> {_map:#C10}
}
diff --git a/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.transformed.expect
index ef5caf7..e114f63 100644
--- a/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/from_agnostic/from_agnostic.dart.strong.transformed.expect
@@ -31,6 +31,6 @@
#C7 = core::_ImmutableMap<core::List<core::int?>, core::int> {_kvPairs:#C6}
#C8 = null
#C9 = <dynamic>[#C2, #C8, #C4, #C8]
- #C10 = core::_ImmutableMap<core::List<core::int?>, core::Null?> {_kvPairs:#C9}
+ #C10 = core::_ImmutableMap<core::List<core::int?>, Null> {_kvPairs:#C9}
#C11 = col::_UnmodifiableSet<core::List<core::int?>> {_map:#C10}
}
diff --git a/pkg/front_end/testcases/nnbd/issue39822.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue39822.dart.outline.expect
index bc24ff1..3a5a5b8 100644
--- a/pkg/front_end/testcases/nnbd/issue39822.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue39822.dart.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method foo(core::Null? x) → dynamic
+static method foo(Null x) → dynamic
;
static method bar(core::int y) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue39822.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue39822.dart.strong.expect
index 14a6598..0c41f17 100644
--- a/pkg/front_end/testcases/nnbd/issue39822.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue39822.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method foo(core::Null? x) → dynamic {
+static method foo(Null x) → dynamic {
self::bar(x!);
}
static method bar(core::int y) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue39822.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue39822.dart.strong.transformed.expect
index 14a6598..0c41f17 100644
--- a/pkg/front_end/testcases/nnbd/issue39822.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue39822.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method foo(core::Null? x) → dynamic {
+static method foo(Null x) → dynamic {
self::bar(x!);
}
static method bar(core::int y) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue39822.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue39822.dart.weak.expect
index 4304389..5ffa759 100644
--- a/pkg/front_end/testcases/nnbd/issue39822.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue39822.dart.weak.expect
@@ -1,9 +1,9 @@
library /*isNonNullableByDefault*/;
import self as self;
-import "dart:core" as core;
import "dart:_internal" as _in;
+import "dart:core" as core;
-static method foo(core::Null? x) → dynamic {
+static method foo(Null x) → dynamic {
self::bar(let final Never #t1 = x! in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
}
static method bar(core::int y) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue39822.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue39822.dart.weak.transformed.expect
index 4304389..5ffa759 100644
--- a/pkg/front_end/testcases/nnbd/issue39822.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue39822.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
library /*isNonNullableByDefault*/;
import self as self;
-import "dart:core" as core;
import "dart:_internal" as _in;
+import "dart:core" as core;
-static method foo(core::Null? x) → dynamic {
+static method foo(Null x) → dynamic {
self::bar(let final Never #t1 = x! in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
}
static method bar(core::int y) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40601.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue40601.dart.strong.expect
index 3d1b60c..412e12d 100644
--- a/pkg/front_end/testcases/nnbd/issue40601.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue40601.dart.strong.expect
@@ -11,7 +11,7 @@
method foo() → dynamic {
late self::A::T% value;
() → dynamic result = () → dynamic => this.{self::A::bar}(value);
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
}).call();
return result;
diff --git a/pkg/front_end/testcases/nnbd/issue40601.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue40601.dart.strong.transformed.expect
index 3d1b60c..412e12d 100644
--- a/pkg/front_end/testcases/nnbd/issue40601.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40601.dart.strong.transformed.expect
@@ -11,7 +11,7 @@
method foo() → dynamic {
late self::A::T% value;
() → dynamic result = () → dynamic => this.{self::A::bar}(value);
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
}).call();
return result;
diff --git a/pkg/front_end/testcases/nnbd/issue40601.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue40601.dart.weak.expect
index 3d1b60c..412e12d 100644
--- a/pkg/front_end/testcases/nnbd/issue40601.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue40601.dart.weak.expect
@@ -11,7 +11,7 @@
method foo() → dynamic {
late self::A::T% value;
() → dynamic result = () → dynamic => this.{self::A::bar}(value);
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
}).call();
return result;
diff --git a/pkg/front_end/testcases/nnbd/issue40601.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue40601.dart.weak.transformed.expect
index 3d1b60c..412e12d 100644
--- a/pkg/front_end/testcases/nnbd/issue40601.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40601.dart.weak.transformed.expect
@@ -11,7 +11,7 @@
method foo() → dynamic {
late self::A::T% value;
() → dynamic result = () → dynamic => this.{self::A::bar}(value);
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
}).call();
return result;
diff --git a/pkg/front_end/testcases/nnbd/issue41102.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41102.dart.strong.expect
index f117107..6c3640f 100644
--- a/pkg/front_end/testcases/nnbd/issue41102.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41102.dart.strong.expect
@@ -75,7 +75,7 @@
Try using List.filled instead.
final s3 = new List<int>(2);
^" in core::List::•<core::int>(2);
-static final field dynamic s4 = (() → core::Null? {
+static final field dynamic s4 = (() → Null {
core::int e = 0;
switch(e) {
#L1:
diff --git a/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect
index 9ccbc8b..55a469e 100644
--- a/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect
@@ -75,7 +75,7 @@
Try using List.filled instead.
final s3 = new List<int>(2);
^" in core::_List::•<core::int>(2);
-static final field dynamic s4 = (() → core::Null? {
+static final field dynamic s4 = (() → Null {
core::int e = 0;
switch(e) {
#L1:
diff --git a/pkg/front_end/testcases/nnbd/issue41102.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41102.dart.weak.expect
index f117107..6c3640f 100644
--- a/pkg/front_end/testcases/nnbd/issue41102.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41102.dart.weak.expect
@@ -75,7 +75,7 @@
Try using List.filled instead.
final s3 = new List<int>(2);
^" in core::List::•<core::int>(2);
-static final field dynamic s4 = (() → core::Null? {
+static final field dynamic s4 = (() → Null {
core::int e = 0;
switch(e) {
#L1:
diff --git a/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect
index 9ccbc8b..55a469e 100644
--- a/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect
@@ -75,7 +75,7 @@
Try using List.filled instead.
final s3 = new List<int>(2);
^" in core::_List::•<core::int>(2);
-static final field dynamic s4 = (() → core::Null? {
+static final field dynamic s4 = (() → Null {
core::int e = 0;
switch(e) {
#L1:
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.outline.expect
index 0213dd7..f683084 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.outline.expect
@@ -1,8 +1,7 @@
library /*isNonNullableByDefault*/;
import self as self;
-import "dart:core" as core;
static method main() → dynamic
;
-static method test<X extends core::Null? = core::Null?, Y extends Never? = Never?, Z extends Never = Never>() → dynamic
+static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect
index 4419497..8a8d3f2 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect
@@ -3,8 +3,8 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends core::Null? = core::Null?, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
- (core::Null?) → core::int f = (core::Object? x) → core::int => 1;
+static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+ (Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
(core::String) → core::int i = (core::String x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect
index 4419497..8a8d3f2 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect
@@ -3,8 +3,8 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends core::Null? = core::Null?, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
- (core::Null?) → core::int f = (core::Object? x) → core::int => 1;
+static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+ (Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
(core::String) → core::int i = (core::String x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect
index 4419497..8a8d3f2 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect
@@ -3,8 +3,8 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends core::Null? = core::Null?, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
- (core::Null?) → core::int f = (core::Object? x) → core::int => 1;
+static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+ (Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
(core::String) → core::int i = (core::String x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect
index 4419497..8a8d3f2 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect
@@ -3,8 +3,8 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends core::Null? = core::Null?, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
- (core::Null?) → core::int f = (core::Object? x) → core::int => 1;
+static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+ (Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
(core::String) → core::int i = (core::String x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41657.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue41657.dart.outline.expect
index a9d3a40..b01f0d8 100644
--- a/pkg/front_end/testcases/nnbd/issue41657.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue41657.dart.outline.expect
@@ -3,10 +3,10 @@
import "dart:core" as core;
static final field core::bool isLegacySubtyping1a;
-static const field core::bool isLegacySubtyping1b = const <core::Null?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static const field core::bool isLegacySubtyping1b = const <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
static final field core::bool isLegacySubtyping2a;
static const field core::bool isLegacySubtyping2b = const <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
-static const field core::List<core::int> assertLegacySubtyping1 = const <core::Null?>[] as{ForNonNullableByDefault} core::List<core::int>;
+static const field core::List<core::int> assertLegacySubtyping1 = const <Null>[] as{ForNonNullableByDefault} core::List<core::int>;
static const field core::List<core::int> assertLegacySubtyping2 = const <core::int?>[] as{ForNonNullableByDefault} core::List<core::int>;
static method main() → void
;
@@ -17,6 +17,6 @@
Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///issue41657.dart:6:38 -> BoolConstant(false)
Evaluated: IsExpression @ org-dartlang-testcase:///issue41657.dart:8:38 -> BoolConstant(false)
-Evaluated: ListLiteral @ org-dartlang-testcase:///issue41657.dart:10:38 -> ListConstant(const <Null?>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///issue41657.dart:10:38 -> ListConstant(const <Null>[])
Evaluated: ListLiteral @ org-dartlang-testcase:///issue41657.dart:12:38 -> ListConstant(const <int?>[])
Extra constant evaluation: evaluated: 6, effectively constant: 4
diff --git a/pkg/front_end/testcases/nnbd/issue41657.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41657.dart.strong.expect
index 0e06724..b2b28aa 100644
--- a/pkg/front_end/testcases/nnbd/issue41657.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41657.dart.strong.expect
@@ -27,7 +27,7 @@
import self as self;
import "dart:core" as core;
-static final field core::bool isLegacySubtyping1a = <core::Null?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping1a = <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping1b = #C1;
static final field core::bool isLegacySubtyping2a = <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping2b = #C1;
diff --git a/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect
index 0e06724..b2b28aa 100644
--- a/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect
@@ -27,7 +27,7 @@
import self as self;
import "dart:core" as core;
-static final field core::bool isLegacySubtyping1a = <core::Null?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping1a = <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping1b = #C1;
static final field core::bool isLegacySubtyping2a = <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping2b = #C1;
diff --git a/pkg/front_end/testcases/nnbd/issue41657.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41657.dart.weak.expect
index 2a7e74f..0065c49 100644
--- a/pkg/front_end/testcases/nnbd/issue41657.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41657.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static final field core::bool isLegacySubtyping1a = <core::Null?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping1a = <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping1b = #C1;
static final field core::bool isLegacySubtyping2a = <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping2b = #C1;
@@ -19,6 +19,6 @@
constants {
#C1 = true
- #C2 = <core::Null?>[]
+ #C2 = <Null>[]
#C3 = <core::int*>[]
}
diff --git a/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect
index 2a7e74f..0065c49 100644
--- a/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static final field core::bool isLegacySubtyping1a = <core::Null?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping1a = <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping1b = #C1;
static final field core::bool isLegacySubtyping2a = <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
static const field core::bool isLegacySubtyping2b = #C1;
@@ -19,6 +19,6 @@
constants {
#C1 = true
- #C2 = <core::Null?>[]
+ #C2 = <Null>[]
#C3 = <core::int*>[]
}
diff --git a/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.expect
index 65b8b25..40f1fe1 100644
--- a/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.expect
@@ -13,15 +13,14 @@
// ^^^
//
import self as self;
-import "dart:core" as core;
static method test() → dynamic {
- core::Null? x = null;
+ Null x = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:7:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
x.foo();
^^^";
- core::Null? y = null;
+ Null y = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
y.foo();
diff --git a/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.transformed.expect
index 65b8b25..40f1fe1 100644
--- a/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700a.dart.strong.transformed.expect
@@ -13,15 +13,14 @@
// ^^^
//
import self as self;
-import "dart:core" as core;
static method test() → dynamic {
- core::Null? x = null;
+ Null x = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:7:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
x.foo();
^^^";
- core::Null? y = null;
+ Null y = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
y.foo();
diff --git a/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.expect
index 65b8b25..40f1fe1 100644
--- a/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.expect
@@ -13,15 +13,14 @@
// ^^^
//
import self as self;
-import "dart:core" as core;
static method test() → dynamic {
- core::Null? x = null;
+ Null x = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:7:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
x.foo();
^^^";
- core::Null? y = null;
+ Null y = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
y.foo();
diff --git a/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.transformed.expect
index 65b8b25..40f1fe1 100644
--- a/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700a.dart.weak.transformed.expect
@@ -13,15 +13,14 @@
// ^^^
//
import self as self;
-import "dart:core" as core;
static method test() → dynamic {
- core::Null? x = null;
+ Null x = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:7:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
x.foo();
^^^";
- core::Null? y = null;
+ Null y = null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700a.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
y.foo();
diff --git a/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.expect
index f71f62c..0ba35af 100644
--- a/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.expect
@@ -2,9 +2,8 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
-// - 'Null/*1*/' is from 'dart:core'.
-// - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+// - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
// Null x = null;
// ^
//
@@ -29,9 +28,8 @@
;
}
static method test() → dynamic {
- self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
- - 'Null/*1*/' is from 'dart:core'.
- - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+ self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+ - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
Null x = null;
^" in null as{TypeError,ForNonNullableByDefault} self::Null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
diff --git a/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.transformed.expect
index ac0d6f4..43bc84a 100644
--- a/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700b.dart.strong.transformed.expect
@@ -2,9 +2,8 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
-// - 'Null/*1*/' is from 'dart:core'.
-// - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+// - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
// Null x = null;
// ^
//
@@ -29,11 +28,10 @@
;
}
static method test() → dynamic {
- self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
- - 'Null/*1*/' is from 'dart:core'.
- - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+ self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+ - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
Null x = null;
- ^" in let core::Null? #t2 = null in #t2.==(null) ?{self::Null} #t2 as{TypeError,ForNonNullableByDefault} self::Null : #t2{self::Null};
+ ^" in let Null #t2 = null in #t2.==(null) ?{self::Null} #t2 as{TypeError,ForNonNullableByDefault} self::Null : #t2{self::Null};
invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
- 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
diff --git a/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.expect
index f71f62c..0ba35af 100644
--- a/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.expect
@@ -2,9 +2,8 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
-// - 'Null/*1*/' is from 'dart:core'.
-// - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+// - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
// Null x = null;
// ^
//
@@ -29,9 +28,8 @@
;
}
static method test() → dynamic {
- self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
- - 'Null/*1*/' is from 'dart:core'.
- - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+ self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+ - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
Null x = null;
^" in null as{TypeError,ForNonNullableByDefault} self::Null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
diff --git a/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.transformed.expect
index fc3fc98..a18115f 100644
--- a/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41700b.dart.weak.transformed.expect
@@ -2,9 +2,8 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
-// - 'Null/*1*/' is from 'dart:core'.
-// - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+// pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+// - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
// Null x = null;
// ^
//
@@ -29,9 +28,8 @@
;
}
static method test() → dynamic {
- self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null/*1*/' can't be assigned to a variable of type 'Null/*2*/' because 'Null/*1*/' is nullable and 'Null/*2*/' isn't.
- - 'Null/*1*/' is from 'dart:core'.
- - 'Null/*2*/' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
+ self::Null x = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: A value of type 'Null' can't be assigned to a variable of type 'Null' because 'Null' is nullable and 'Null' isn't.
+ - 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
Null x = null;
^" in null;
invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect
index 30ddc8d..eebb429 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect
@@ -183,19 +183,19 @@
self::A<core::Object> aObject;
self::A<core::num?> aNumNullable;
self::A<core::int?> aIntNullable;
- self::A<core::Null?> aNull;
+ self::A<Null> aNull;
(core::Object) → dynamic fArgumentObject;
(core::num?) → dynamic fArgumentNumNullable;
(core::int?) → dynamic fArgumentIntNullable;
- (core::Null?) → dynamic fArgumentNull;
+ (Null) → dynamic fArgumentNull;
() → core::Object fReturnObject;
() → core::num? fReturnNumNullable;
() → core::int? fReturnIntNullable;
- () → core::Null? fReturnNull;
+ () → Null fReturnNull;
(core::Object) → core::Object fBothObject;
(core::num?) → core::num? fBothNumNullable;
(core::int?) → core::int? fBothIntNullable;
- (core::Null?) → core::Null? fBothNull;
+ (Null) → Null fBothNull;
() → dynamic fNowhereObject;
() → dynamic fNowhereNumNullable;
() → dynamic fNowhereIntNullable;
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect
index 30ddc8d..eebb429 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect
@@ -183,19 +183,19 @@
self::A<core::Object> aObject;
self::A<core::num?> aNumNullable;
self::A<core::int?> aIntNullable;
- self::A<core::Null?> aNull;
+ self::A<Null> aNull;
(core::Object) → dynamic fArgumentObject;
(core::num?) → dynamic fArgumentNumNullable;
(core::int?) → dynamic fArgumentIntNullable;
- (core::Null?) → dynamic fArgumentNull;
+ (Null) → dynamic fArgumentNull;
() → core::Object fReturnObject;
() → core::num? fReturnNumNullable;
() → core::int? fReturnIntNullable;
- () → core::Null? fReturnNull;
+ () → Null fReturnNull;
(core::Object) → core::Object fBothObject;
(core::num?) → core::num? fBothNumNullable;
(core::int?) → core::int? fBothIntNullable;
- (core::Null?) → core::Null? fBothNull;
+ (Null) → Null fBothNull;
() → dynamic fNowhereObject;
() → dynamic fNowhereNumNullable;
() → dynamic fNowhereIntNullable;
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect
index 30ddc8d..eebb429 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect
@@ -183,19 +183,19 @@
self::A<core::Object> aObject;
self::A<core::num?> aNumNullable;
self::A<core::int?> aIntNullable;
- self::A<core::Null?> aNull;
+ self::A<Null> aNull;
(core::Object) → dynamic fArgumentObject;
(core::num?) → dynamic fArgumentNumNullable;
(core::int?) → dynamic fArgumentIntNullable;
- (core::Null?) → dynamic fArgumentNull;
+ (Null) → dynamic fArgumentNull;
() → core::Object fReturnObject;
() → core::num? fReturnNumNullable;
() → core::int? fReturnIntNullable;
- () → core::Null? fReturnNull;
+ () → Null fReturnNull;
(core::Object) → core::Object fBothObject;
(core::num?) → core::num? fBothNumNullable;
(core::int?) → core::int? fBothIntNullable;
- (core::Null?) → core::Null? fBothNull;
+ (Null) → Null fBothNull;
() → dynamic fNowhereObject;
() → dynamic fNowhereNumNullable;
() → dynamic fNowhereIntNullable;
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect
index 30ddc8d..eebb429 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect
@@ -183,19 +183,19 @@
self::A<core::Object> aObject;
self::A<core::num?> aNumNullable;
self::A<core::int?> aIntNullable;
- self::A<core::Null?> aNull;
+ self::A<Null> aNull;
(core::Object) → dynamic fArgumentObject;
(core::num?) → dynamic fArgumentNumNullable;
(core::int?) → dynamic fArgumentIntNullable;
- (core::Null?) → dynamic fArgumentNull;
+ (Null) → dynamic fArgumentNull;
() → core::Object fReturnObject;
() → core::num? fReturnNumNullable;
() → core::int? fReturnIntNullable;
- () → core::Null? fReturnNull;
+ () → Null fReturnNull;
(core::Object) → core::Object fBothObject;
(core::num?) → core::num? fBothNumNullable;
(core::int?) → core::int? fBothIntNullable;
- (core::Null?) → core::Null? fBothNull;
+ (Null) → Null fBothNull;
() → dynamic fNowhereObject;
() → dynamic fNowhereNumNullable;
() → dynamic fNowhereIntNullable;
diff --git a/pkg/front_end/testcases/nnbd/issue42603.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue42603.dart.outline.expect
index 384e012..930703f 100644
--- a/pkg/front_end/testcases/nnbd/issue42603.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue42603.dart.outline.expect
@@ -36,7 +36,7 @@
;
method method1(dynamic o) → core::bool
;
- method method2(core::Null? o) → core::bool
+ method method2(Null o) → core::bool
;
}
class E extends core::Object {
diff --git a/pkg/front_end/testcases/nnbd/issue42603.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42603.dart.strong.expect
index 91362db..e677ee5 100644
--- a/pkg/front_end/testcases/nnbd/issue42603.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42603.dart.strong.expect
@@ -43,7 +43,7 @@
return super.{self::C::==}(other);
method method1(dynamic o) → core::bool
return super.{self::C::==}(o);
- method method2(core::Null? o) → core::bool
+ method method2(Null o) → core::bool
return super.{self::C::==}(o);
}
class E extends core::Object {
diff --git a/pkg/front_end/testcases/nnbd/issue42603.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42603.dart.weak.expect
index 91362db..e677ee5 100644
--- a/pkg/front_end/testcases/nnbd/issue42603.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42603.dart.weak.expect
@@ -43,7 +43,7 @@
return super.{self::C::==}(other);
method method1(dynamic o) → core::bool
return super.{self::C::==}(o);
- method method2(core::Null? o) → core::bool
+ method method2(Null o) → core::bool
return super.{self::C::==}(o);
}
class E extends core::Object {
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.outline.expect
index 3ada4d6..d2e2ef3 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.outline.expect
@@ -1,10 +1,9 @@
library /*isNonNullableByDefault*/;
import self as self;
-import "dart:core" as core;
-static method test1(Never n1, Never? n2, core::Null? n3) → dynamic
+static method test1(Never n1, Never? n2, Null n3) → dynamic
;
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends core::Null? = core::Null?>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic
+static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
index 99e529a..ec865de 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
@@ -78,7 +78,7 @@
import "dart:core" as core;
import "dart:collection" as col;
-static method test1(Never n1, Never? n2, core::Null? n3) → dynamic {
+static method test1(Never n1, Never? n2, Null n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t1 = <Never>[];
for (final Never #t2 in n1)
@@ -192,7 +192,7 @@
#t33.{core::Map::[]=}(n1, n1);
} =>#t33;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends core::Null? = core::Null?>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t36 = <Never>[];
for (final Never #t37 in n1)
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
index 6523b4f..30a2fce 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
@@ -78,7 +78,7 @@
import "dart:core" as core;
import "dart:collection" as col;
-static method test1(Never n1, Never? n2, core::Null? n3) → dynamic {
+static method test1(Never n1, Never? n2, Null n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t1 = <Never>[];
for (final Never #t2 in n1)
@@ -233,7 +233,7 @@
#t33.{core::Map::[]=}(n1, n1);
} =>#t33;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends core::Null? = core::Null?>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t36 = <Never>[];
for (final Never #t37 in n1)
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
index 49bea7d..db1601c 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
@@ -79,7 +79,7 @@
import "dart:_internal" as _in;
import "dart:collection" as col;
-static method test1(Never n1, Never? n2, core::Null? n3) → dynamic {
+static method test1(Never n1, Never? n2, Null n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t1 = <Never>[];
for (final Never #t2 in let final Never #t3 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
@@ -193,7 +193,7 @@
#t55.{core::Map::[]=}(let final Never #t58 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t59 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
} =>#t55;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends core::Null? = core::Null?>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t60 = <Never>[];
for (final Never #t61 in let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
index 87b9b08..a2689d6 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
@@ -79,7 +79,7 @@
import "dart:_internal" as _in;
import "dart:collection" as col;
-static method test1(Never n1, Never? n2, core::Null? n3) → dynamic {
+static method test1(Never n1, Never? n2, Null n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t1 = <Never>[];
for (final Never #t2 in let final Never #t3 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
@@ -234,7 +234,7 @@
#t55.{core::Map::[]=}(let final Never #t58 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t59 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
} =>#t55;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends core::Null? = core::Null?>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t60 = <Never>[];
for (final Never #t61 in let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect
index f9ad8e5..2ff42f4 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect
@@ -112,10 +112,10 @@
synthetic constructor •() → self::D<self::D::X>
;
}
-class B<X extends self::A<core::Null?>? = self::A<core::Null?>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
;
- method method1<Y extends self::A<core::Null?>? = self::A<core::Null?>?>(self::A<self::B::method1::Y%> a, self::A<self::A<core::Null?>>? b) → void
+ method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void
;
method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void
;
@@ -124,9 +124,9 @@
static field dynamic _redirecting# = <dynamic>[self::C::redirect]/*isNullableByDefault*/;
constructor internal(dynamic _) → self::C
;
- static factory redirect(self::A<self::A<core::Null?>>? a) → self::C
+ static factory redirect(self::A<self::A<Null>>? a) → self::C
let dynamic #redirecting_factory = self::C::internal in invalid-expression;
- static factory fact(self::A<self::A<core::Null?>>? a) → self::C
+ static factory fact(self::A<self::A<Null>>? a) → self::C
;
}
extension Extension1<X extends self::A<X%>? = self::A<dynamic>?> on self::A<X%> {
@@ -135,12 +135,12 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<core::Null?>? = self::A<core::Null?>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<core::Null?>>? b) → void
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void
;
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<core::Null?>>?) → void
- return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<core::Null?>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+ return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void
;
static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
index 127779c..54f0536 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
@@ -207,13 +207,13 @@
: super core::Object::•()
;
}
-class B<X extends self::A<core::Null?>? = self::A<core::Null?>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<core::Null?>? = self::A<core::Null?>?>(self::A<self::B::method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+ method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
@@ -224,13 +224,13 @@
static field dynamic _redirecting# = <dynamic>[self::C::redirect]/*isNullableByDefault*/;
constructor internal(dynamic _) → self::C
: super core::Object::•() {
- self::A<self::A<core::Null?>>? a;
+ self::A<self::A<Null>>? a;
self::D<core::String>? b;
}
- static factory redirect(self::A<self::A<core::Null?>>? a) → self::C
+ static factory redirect(self::A<self::A<Null>>? a) → self::C
let dynamic #redirecting_factory = self::C::internal in invalid-expression;
- static factory fact(self::A<self::A<core::Null?>>? a) → self::C {
- self::A<self::A<core::Null?>>? b;
+ static factory fact(self::A<self::A<Null>>? a) → self::C {
+ self::A<self::A<Null>>? b;
self::D<core::String>? c;
return new self::C::internal(a);
}
@@ -241,14 +241,14 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<core::Null?>? = self::A<core::Null?>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<core::Null?>>?) → void
- return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<core::Null?>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+ return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
@@ -256,6 +256,6 @@
static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
- self::A<core::Null?> a = new self::A::•<core::Null?>();
+ self::A<Null> a = new self::A::•<Null>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
index 10f7711..e77cc1a 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
@@ -207,13 +207,13 @@
: super core::Object::•()
;
}
-class B<X extends self::A<core::Null?>? = self::A<core::Null?>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<core::Null?>? = self::A<core::Null?>?>(self::A<self::B::method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+ method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
@@ -224,13 +224,13 @@
static field dynamic _redirecting# = <dynamic>[self::C::redirect]/*isNullableByDefault*/;
constructor internal(dynamic _) → self::C
: super core::Object::•() {
- self::A<self::A<core::Null?>>? a;
+ self::A<self::A<Null>>? a;
self::D<core::String>? b;
}
- static factory redirect(self::A<self::A<core::Null?>>? a) → self::C
+ static factory redirect(self::A<self::A<Null>>? a) → self::C
let<BottomType> #redirecting_factory = self::C::internal in invalid-expression;
- static factory fact(self::A<self::A<core::Null?>>? a) → self::C {
- self::A<self::A<core::Null?>>? b;
+ static factory fact(self::A<self::A<Null>>? a) → self::C {
+ self::A<self::A<Null>>? b;
self::D<core::String>? c;
return new self::C::internal(a);
}
@@ -241,14 +241,14 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<core::Null?>? = self::A<core::Null?>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<core::Null?>>?) → void
- return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<core::Null?>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+ return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
@@ -256,6 +256,6 @@
static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
- self::A<core::Null?> a = new self::A::•<core::Null?>();
+ self::A<Null> a = new self::A::•<Null>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
index 127779c..54f0536 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
@@ -207,13 +207,13 @@
: super core::Object::•()
;
}
-class B<X extends self::A<core::Null?>? = self::A<core::Null?>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<core::Null?>? = self::A<core::Null?>?>(self::A<self::B::method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+ method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
@@ -224,13 +224,13 @@
static field dynamic _redirecting# = <dynamic>[self::C::redirect]/*isNullableByDefault*/;
constructor internal(dynamic _) → self::C
: super core::Object::•() {
- self::A<self::A<core::Null?>>? a;
+ self::A<self::A<Null>>? a;
self::D<core::String>? b;
}
- static factory redirect(self::A<self::A<core::Null?>>? a) → self::C
+ static factory redirect(self::A<self::A<Null>>? a) → self::C
let dynamic #redirecting_factory = self::C::internal in invalid-expression;
- static factory fact(self::A<self::A<core::Null?>>? a) → self::C {
- self::A<self::A<core::Null?>>? b;
+ static factory fact(self::A<self::A<Null>>? a) → self::C {
+ self::A<self::A<Null>>? b;
self::D<core::String>? c;
return new self::C::internal(a);
}
@@ -241,14 +241,14 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<core::Null?>? = self::A<core::Null?>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<core::Null?>>?) → void
- return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<core::Null?>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+ return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
@@ -256,6 +256,6 @@
static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
- self::A<core::Null?> a = new self::A::•<core::Null?>();
+ self::A<Null> a = new self::A::•<Null>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
index 10f7711..e77cc1a 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
@@ -207,13 +207,13 @@
: super core::Object::•()
;
}
-class B<X extends self::A<core::Null?>? = self::A<core::Null?>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<core::Null?>? = self::A<core::Null?>?>(self::A<self::B::method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+ method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
@@ -224,13 +224,13 @@
static field dynamic _redirecting# = <dynamic>[self::C::redirect]/*isNullableByDefault*/;
constructor internal(dynamic _) → self::C
: super core::Object::•() {
- self::A<self::A<core::Null?>>? a;
+ self::A<self::A<Null>>? a;
self::D<core::String>? b;
}
- static factory redirect(self::A<self::A<core::Null?>>? a) → self::C
+ static factory redirect(self::A<self::A<Null>>? a) → self::C
let<BottomType> #redirecting_factory = self::C::internal in invalid-expression;
- static factory fact(self::A<self::A<core::Null?>>? a) → self::C {
- self::A<self::A<core::Null?>>? b;
+ static factory fact(self::A<self::A<Null>>? a) → self::C {
+ self::A<self::A<Null>>? b;
self::D<core::String>? c;
return new self::C::internal(a);
}
@@ -241,14 +241,14 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<core::Null?>? = self::A<core::Null?>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<core::Null?>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
- self::A<self::A<core::Null?>>? d;
+ self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<core::Null?>>?) → void
- return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<core::Null?>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+ return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
@@ -256,6 +256,6 @@
static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
- self::A<core::Null?> a = new self::A::•<core::Null?>();
+ self::A<Null> a = new self::A::•<Null>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/load_library.dart.strong.expect b/pkg/front_end/testcases/nnbd/load_library.dart.strong.expect
index 92acca2..0e7e3b1 100644
--- a/pkg/front_end/testcases/nnbd/load_library.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/load_library.dart.strong.expect
@@ -1,15 +1,14 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
-import "dart:core" as core;
import "dart:math" deferred as math;
static method main() → dynamic {
asy::Future<dynamic> v1 = LoadLibrary(math);
- v1.{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v1.{asy::Future::then}<Null>((dynamic _) → Null {});
() → asy::Future<dynamic> v2 = #C1;
- v2.call().{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v2.call().{asy::Future::then}<Null>((dynamic _) → Null {});
}
static method _#loadLibrary_math() → asy::Future<dynamic>
return LoadLibrary(math);
diff --git a/pkg/front_end/testcases/nnbd/load_library.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/load_library.dart.strong.transformed.expect
index 92acca2..0e7e3b1 100644
--- a/pkg/front_end/testcases/nnbd/load_library.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/load_library.dart.strong.transformed.expect
@@ -1,15 +1,14 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
-import "dart:core" as core;
import "dart:math" deferred as math;
static method main() → dynamic {
asy::Future<dynamic> v1 = LoadLibrary(math);
- v1.{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v1.{asy::Future::then}<Null>((dynamic _) → Null {});
() → asy::Future<dynamic> v2 = #C1;
- v2.call().{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v2.call().{asy::Future::then}<Null>((dynamic _) → Null {});
}
static method _#loadLibrary_math() → asy::Future<dynamic>
return LoadLibrary(math);
diff --git a/pkg/front_end/testcases/nnbd/load_library.dart.weak.expect b/pkg/front_end/testcases/nnbd/load_library.dart.weak.expect
index 92acca2..0e7e3b1 100644
--- a/pkg/front_end/testcases/nnbd/load_library.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/load_library.dart.weak.expect
@@ -1,15 +1,14 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
-import "dart:core" as core;
import "dart:math" deferred as math;
static method main() → dynamic {
asy::Future<dynamic> v1 = LoadLibrary(math);
- v1.{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v1.{asy::Future::then}<Null>((dynamic _) → Null {});
() → asy::Future<dynamic> v2 = #C1;
- v2.call().{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v2.call().{asy::Future::then}<Null>((dynamic _) → Null {});
}
static method _#loadLibrary_math() → asy::Future<dynamic>
return LoadLibrary(math);
diff --git a/pkg/front_end/testcases/nnbd/load_library.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/load_library.dart.weak.transformed.expect
index 92acca2..0e7e3b1 100644
--- a/pkg/front_end/testcases/nnbd/load_library.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/load_library.dart.weak.transformed.expect
@@ -1,15 +1,14 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
-import "dart:core" as core;
import "dart:math" deferred as math;
static method main() → dynamic {
asy::Future<dynamic> v1 = LoadLibrary(math);
- v1.{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v1.{asy::Future::then}<Null>((dynamic _) → Null {});
() → asy::Future<dynamic> v2 = #C1;
- v2.call().{asy::Future::then}<core::Null?>((dynamic _) → core::Null? {});
+ v2.call().{asy::Future::then}<Null>((dynamic _) → Null {});
}
static method _#loadLibrary_math() → asy::Future<dynamic>
return LoadLibrary(math);
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.outline.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.outline.expect
index 8ff567c..100ffd1 100644
--- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.outline.expect
@@ -5,7 +5,7 @@
import "dart:async";
class Mixin extends core::Object {
- field FutureOr<core::Null?>m;
+ field FutureOr<Null>m;
synthetic constructor •() → self::Mixin
;
}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect
index 41252e1..f87569c 100644
--- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect
@@ -5,7 +5,7 @@
import "dart:async";
class Mixin extends core::Object {
- field FutureOr<core::Null?>m = null;
+ field FutureOr<Null>m = null;
synthetic constructor •() → self::Mixin
: super core::Object::•()
;
@@ -20,7 +20,7 @@
: super self::_Class&Object&Mixin::•()
;
method test(dynamic t1) → dynamic {
- this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+ this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<Null>;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect
index 002d4b2..0f52fef 100644
--- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect
@@ -5,13 +5,13 @@
import "dart:async";
class Mixin extends core::Object {
- field FutureOr<core::Null?>m = null;
+ field FutureOr<Null>m = null;
synthetic constructor •() → self::Mixin
: super core::Object::•()
;
}
abstract class _Class&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/ {
- field FutureOr<core::Null?>m = null;
+ field FutureOr<Null>m = null;
synthetic constructor •() → self::_Class&Object&Mixin
: super core::Object::•()
;
@@ -21,7 +21,7 @@
: super self::_Class&Object&Mixin::•()
;
method test(dynamic t1) → dynamic {
- this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+ this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<Null>;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect
index 41252e1..f87569c 100644
--- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect
@@ -5,7 +5,7 @@
import "dart:async";
class Mixin extends core::Object {
- field FutureOr<core::Null?>m = null;
+ field FutureOr<Null>m = null;
synthetic constructor •() → self::Mixin
: super core::Object::•()
;
@@ -20,7 +20,7 @@
: super self::_Class&Object&Mixin::•()
;
method test(dynamic t1) → dynamic {
- this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+ this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<Null>;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect
index 002d4b2..0f52fef 100644
--- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect
@@ -5,13 +5,13 @@
import "dart:async";
class Mixin extends core::Object {
- field FutureOr<core::Null?>m = null;
+ field FutureOr<Null>m = null;
synthetic constructor •() → self::Mixin
: super core::Object::•()
;
}
abstract class _Class&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/ {
- field FutureOr<core::Null?>m = null;
+ field FutureOr<Null>m = null;
synthetic constructor •() → self::_Class&Object&Mixin
: super core::Object::•()
;
@@ -21,7 +21,7 @@
: super self::_Class&Object&Mixin::•()
;
method test(dynamic t1) → dynamic {
- this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+ this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<Null>;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.expect b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.expect
index 16bb524..b0cfefc 100644
--- a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.expect
@@ -39,15 +39,15 @@
method method1() → void {
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:21:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method2() → void {
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:25:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method3() → FutureOr<void> {
- return asy::Future::value<core::Null?>(null);
+ return asy::Future::value<Null>(null);
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.transformed.expect
index 16bb524..b0cfefc 100644
--- a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.strong.transformed.expect
@@ -39,15 +39,15 @@
method method1() → void {
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:21:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method2() → void {
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:25:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method3() → FutureOr<void> {
- return asy::Future::value<core::Null?>(null);
+ return asy::Future::value<Null>(null);
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.expect b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.expect
index 16bb524..b0cfefc 100644
--- a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.expect
@@ -39,15 +39,15 @@
method method1() → void {
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:21:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method2() → void {
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:25:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method3() → FutureOr<void> {
- return asy::Future::value<core::Null?>(null);
+ return asy::Future::value<Null>(null);
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.transformed.expect
index 16bb524..b0cfefc 100644
--- a/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart.weak.transformed.expect
@@ -39,15 +39,15 @@
method method1() → void {
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:21:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method2() → void {
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/mutual_subtype_norm.dart:25:16: Error: Can't return a value from a void function.
return new Future<Null>.value(null); // error
- ^" in asy::Future::value<core::Null?>(null);
+ ^" in asy::Future::value<Null>(null);
}
method method3() → FutureOr<void> {
- return asy::Future::value<core::Null?>(null);
+ return asy::Future::value<Null>(null);
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect
index 8d4563e..ab8cca2 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect
@@ -37,7 +37,7 @@
return self::GenericNever::T;
}
static method errors() → dynamic {
- new self::GenericNever::•<core::Null?>();
+ new self::GenericNever::•<Null>();
new self::GenericNever::•<void>();
new self::GenericNever::•<core::int>();
}
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect
index 8d4563e..ab8cca2 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect
@@ -37,7 +37,7 @@
return self::GenericNever::T;
}
static method errors() → dynamic {
- new self::GenericNever::•<core::Null?>();
+ new self::GenericNever::•<Null>();
new self::GenericNever::•<void>();
new self::GenericNever::•<core::int>();
}
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect
index 8d4563e..ab8cca2 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect
@@ -37,7 +37,7 @@
return self::GenericNever::T;
}
static method errors() → dynamic {
- new self::GenericNever::•<core::Null?>();
+ new self::GenericNever::•<Null>();
new self::GenericNever::•<void>();
new self::GenericNever::•<core::int>();
}
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect
index 8d4563e..ab8cca2 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect
@@ -37,7 +37,7 @@
return self::GenericNever::T;
}
static method errors() → dynamic {
- new self::GenericNever::•<core::Null?>();
+ new self::GenericNever::•<Null>();
new self::GenericNever::•<void>();
new self::GenericNever::•<core::int>();
}
diff --git a/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.expect b/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.expect
index 8a67b5a..1a136213 100644
--- a/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.expect
@@ -76,16 +76,16 @@
x.[]=(42, 42);
x = x.+(1);
x = x.+(1);
- let final Never? #t1 = y in #t1.{core::Object::==}(null) ?{core::Null?} null : #t1{Never}.foo();
- let final Never? #t2 = y in #t2.{core::Object::==}(null) ?{core::Null?} null : #t2{Never}.bar;
+ let final Never? #t1 = y in #t1.{core::Object::==}(null) ?{Null} null : #t1{Never}.foo();
+ let final Never? #t2 = y in #t2.{core::Object::==}(null) ?{Null} null : #t2{Never}.bar;
let final Never? #t3 = y in #t3.{core::Object::==}(null) ?{core::int?} null : #t3{Never}.baz = 42;
- let final Never? #t4 = y in #t4.{core::Object::==}(null) ?{core::Null?} null : #t4{Never}.call();
- let final Never? #t5 = y in #t5.{core::Object::==}(null) ?{core::Null?} null : #t5{Never}.[](42);
+ let final Never? #t4 = y in #t4.{core::Object::==}(null) ?{Null} null : #t4{Never}.call();
+ let final Never? #t5 = y in #t5.{core::Object::==}(null) ?{Null} null : #t5{Never}.[](42);
let final Never? #t6 = y in #t6.{core::Object::==}(null) ?{core::int?} null : #t6{Never}.[]=(42, 42);
- let final Never #t7 = x in #t7.{core::Object::==}(null) ?{core::Null?} null : #t7.foo();
- let final Never #t8 = x in #t8.{core::Object::==}(null) ?{core::Null?} null : #t8.bar;
+ let final Never #t7 = x in #t7.{core::Object::==}(null) ?{Null} null : #t7.foo();
+ let final Never #t8 = x in #t8.{core::Object::==}(null) ?{Null} null : #t8.bar;
let final Never #t9 = x in #t9.{core::Object::==}(null) ?{core::int?} null : #t9.baz = 42;
- let final Never #t10 = x in #t10.{core::Object::==}(null) ?{core::Null?} null : #t10.[](42);
+ let final Never #t10 = x in #t10.{core::Object::==}(null) ?{Null} null : #t10.[](42);
let final Never #t11 = x in #t11.{core::Object::==}(null) ?{core::int?} null : #t11.[]=(42, 42);
invalid-expression "pkg/front_end/testcases/nnbd/never_receiver.dart:30:5: Error: The method 'foo' isn't defined for the class 'Never?'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
diff --git a/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.transformed.expect
index aa42b16..8078ed3 100644
--- a/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/never_receiver.dart.strong.transformed.expect
@@ -76,16 +76,16 @@
x.[]=(42, 42);
x = x.+(1);
x = x.+(1);
- let final Never? #t1 = y in #t1.{core::Object::==}(null) ?{core::Null?} null : #t1{Never}.foo();
- let final Never? #t2 = y in #t2.{core::Object::==}(null) ?{core::Null?} null : #t2{Never}.bar;
+ let final Never? #t1 = y in #t1.{core::Object::==}(null) ?{Null} null : #t1{Never}.foo();
+ let final Never? #t2 = y in #t2.{core::Object::==}(null) ?{Null} null : #t2{Never}.bar;
let final Never? #t3 = y in #t3.{core::Object::==}(null) ?{core::int?} null : #t3{Never}.baz = 42;
- let final Never? #t4 = y in #t4.{core::Object::==}(null) ?{core::Null?} null : #t4{Never}.call();
- let final Never? #t5 = y in #t5.{core::Object::==}(null) ?{core::Null?} null : #t5{Never}.[](42);
+ let final Never? #t4 = y in #t4.{core::Object::==}(null) ?{Null} null : #t4{Never}.call();
+ let final Never? #t5 = y in #t5.{core::Object::==}(null) ?{Null} null : #t5{Never}.[](42);
let final Never? #t6 = y in #t6.{core::Object::==}(null) ?{core::int?} null : #t6{Never}.[]=(42, 42);
- let final Never #t7 = x in #t7.{core::Object::==}(null) ?{core::Null?} null : #t7.foo();
- let final Never #t8 = x in #t8.{core::Object::==}(null) ?{core::Null?} null : #t8.bar;
+ let final Never #t7 = x in #t7.{core::Object::==}(null) ?{Null} null : #t7.foo();
+ let final Never #t8 = x in #t8.{core::Object::==}(null) ?{Null} null : #t8.bar;
let final Never #t9 = x in #t9.{core::Object::==}(null) ?{core::int?} null : #t9.baz = 42;
- let final Never #t10 = x in #t10.{core::Object::==}(null) ?{core::Null?} null : #t10.[](42);
+ let final Never #t10 = x in #t10.{core::Object::==}(null) ?{Null} null : #t10.[](42);
let final Never #t11 = x in #t11.{core::Object::==}(null) ?{core::int?} null : #t11.[]=(42, 42);
invalid-expression "pkg/front_end/testcases/nnbd/never_receiver.dart:30:5: Error: The method 'foo' isn't defined for the class 'Never?'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
diff --git a/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.expect b/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.expect
index ea4279d..8460d43 100644
--- a/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.expect
@@ -77,16 +77,16 @@
(let final Never #t10 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[]=(42, 42);
let final Never #t11 = x = let final Never #t12 = (let final Never #t13 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).+(1) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never #t14 = x = let final Never #t15 = (let final Never #t16 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).+(1) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never? #t17 = y in #t17.{core::Object::==}(null) ?{core::Null?} null : let final Never #t18 = (let final Never #t19 = #t17{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never? #t20 = y in #t20.{core::Object::==}(null) ?{core::Null?} null : let final Never #t21 = (let final Never #t22 = #t20{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t17 = y in #t17.{core::Object::==}(null) ?{Null} null : let final Never #t18 = (let final Never #t19 = #t17{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t20 = y in #t20.{core::Object::==}(null) ?{Null} null : let final Never #t21 = (let final Never #t22 = #t20{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never? #t23 = y in #t23.{core::Object::==}(null) ?{core::int?} null : (let final Never #t24 = #t23{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).baz = 42;
- let final Never? #t25 = y in #t25.{core::Object::==}(null) ?{core::Null?} null : let final Never #t26 = (let final Never #t27 = #t25{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).call() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never? #t28 = y in #t28.{core::Object::==}(null) ?{core::Null?} null : let final Never #t29 = (let final Never #t30 = #t28{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t25 = y in #t25.{core::Object::==}(null) ?{Null} null : let final Never #t26 = (let final Never #t27 = #t25{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).call() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t28 = y in #t28.{core::Object::==}(null) ?{Null} null : let final Never #t29 = (let final Never #t30 = #t28{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never? #t31 = y in #t31.{core::Object::==}(null) ?{core::int?} null : (let final Never #t32 = #t31{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[]=(42, 42);
- let final Never #t33 = let final Never #t34 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t33.{core::Object::==}(null) ?{core::Null?} null : let final Never #t35 = (let final Never #t36 = #t33 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never #t37 = let final Never #t38 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t37.{core::Object::==}(null) ?{core::Null?} null : let final Never #t39 = (let final Never #t40 = #t37 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never #t33 = let final Never #t34 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t33.{core::Object::==}(null) ?{Null} null : let final Never #t35 = (let final Never #t36 = #t33 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never #t37 = let final Never #t38 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t37.{core::Object::==}(null) ?{Null} null : let final Never #t39 = (let final Never #t40 = #t37 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never #t41 = let final Never #t42 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t41.{core::Object::==}(null) ?{core::int?} null : (let final Never #t43 = #t41 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).baz = 42;
- let final Never #t44 = let final Never #t45 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t44.{core::Object::==}(null) ?{core::Null?} null : let final Never #t46 = (let final Never #t47 = #t44 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never #t44 = let final Never #t45 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t44.{core::Object::==}(null) ?{Null} null : let final Never #t46 = (let final Never #t47 = #t44 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never #t48 = let final Never #t49 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t48.{core::Object::==}(null) ?{core::int?} null : (let final Never #t50 = #t48 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[]=(42, 42);
invalid-expression "pkg/front_end/testcases/nnbd/never_receiver.dart:30:5: Error: The method 'foo' isn't defined for the class 'Never?'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
diff --git a/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.transformed.expect
index d677ad0..7e2c429 100644
--- a/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/never_receiver.dart.weak.transformed.expect
@@ -77,16 +77,16 @@
(let final Never #t10 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[]=(42, 42);
let final Never #t11 = x = let final Never #t12 = (let final Never #t13 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).+(1) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never #t14 = x = let final Never #t15 = (let final Never #t16 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).+(1) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never? #t17 = y in #t17.{core::Object::==}(null) ?{core::Null?} null : let final Never #t18 = (let final Never #t19 = #t17{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never? #t20 = y in #t20.{core::Object::==}(null) ?{core::Null?} null : let final Never #t21 = (let final Never #t22 = #t20{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t17 = y in #t17.{core::Object::==}(null) ?{Null} null : let final Never #t18 = (let final Never #t19 = #t17{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t20 = y in #t20.{core::Object::==}(null) ?{Null} null : let final Never #t21 = (let final Never #t22 = #t20{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never? #t23 = y in #t23.{core::Object::==}(null) ?{core::int?} null : (let final Never #t24 = #t23{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).baz = 42;
- let final Never? #t25 = y in #t25.{core::Object::==}(null) ?{core::Null?} null : let final Never #t26 = (let final Never #t27 = #t25{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).call() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never? #t28 = y in #t28.{core::Object::==}(null) ?{core::Null?} null : let final Never #t29 = (let final Never #t30 = #t28{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t25 = y in #t25.{core::Object::==}(null) ?{Null} null : let final Never #t26 = (let final Never #t27 = #t25{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).call() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never? #t28 = y in #t28.{core::Object::==}(null) ?{Null} null : let final Never #t29 = (let final Never #t30 = #t28{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never? #t31 = y in #t31.{core::Object::==}(null) ?{core::int?} null : (let final Never #t32 = #t31{Never} in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[]=(42, 42);
- let final Never #t33 = let final Never #t34 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t33.{core::Object::==}(null) ?{core::Null?} null : let final Never #t35 = (let final Never #t36 = #t33 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- let final Never #t37 = let final Never #t38 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t37.{core::Object::==}(null) ?{core::Null?} null : let final Never #t39 = (let final Never #t40 = #t37 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never #t33 = let final Never #t34 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t33.{core::Object::==}(null) ?{Null} null : let final Never #t35 = (let final Never #t36 = #t33 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).foo() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never #t37 = let final Never #t38 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t37.{core::Object::==}(null) ?{Null} null : let final Never #t39 = (let final Never #t40 = #t37 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).bar in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never #t41 = let final Never #t42 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t41.{core::Object::==}(null) ?{core::int?} null : (let final Never #t43 = #t41 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).baz = 42;
- let final Never #t44 = let final Never #t45 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t44.{core::Object::==}(null) ?{core::Null?} null : let final Never #t46 = (let final Never #t47 = #t44 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ let final Never #t44 = let final Never #t45 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t44.{core::Object::==}(null) ?{Null} null : let final Never #t46 = (let final Never #t47 = #t44 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[](42) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
let final Never #t48 = let final Never #t49 = x in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.") in #t48.{core::Object::==}(null) ?{core::int?} null : (let final Never #t50 = #t48 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).[]=(42, 42);
invalid-expression "pkg/front_end/testcases/nnbd/never_receiver.dart:30:5: Error: The method 'foo' isn't defined for the class 'Never?'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.outline.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.outline.expect
index 296454f..03d3614 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.outline.expect
@@ -55,7 +55,7 @@
generic-covariant-impl field self::C::X? fieldOfX;
field core::int? fieldOfX2;
field dynamic fieldOfX3;
- field core::Null? fieldOfX4;
+ field Null fieldOfX4;
field () →? core::int fieldOfX5;
generic-covariant-impl field self::C::Y? fieldOfX6;
late static field core::int lateStaticFieldOfC;
@@ -74,7 +74,7 @@
generic-covariant-impl field self::L::X? fieldOfL;
field core::int? fieldOfL2;
field dynamic fieldOfL3;
- field core::Null? fieldOfL4;
+ field Null fieldOfL4;
field () →? core::int fieldOfL5;
generic-covariant-impl field self::L::Y? fieldOfL6;
late static field core::int lateStaticFieldOfM;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect
index 344ba8c..e9ee16a 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect
@@ -93,7 +93,7 @@
generic-covariant-impl field self::C::X? fieldOfX = null;
field core::int? fieldOfX2 = null;
field dynamic fieldOfX3 = null;
- field core::Null? fieldOfX4 = null;
+ field Null fieldOfX4 = null;
field () →? core::int fieldOfX5 = null;
generic-covariant-impl field self::C::Y? fieldOfX6 = null;
late static field core::int lateStaticFieldOfC;
@@ -114,7 +114,7 @@
generic-covariant-impl field self::L::X? fieldOfL = null;
field core::int? fieldOfL2 = null;
field dynamic fieldOfL3 = null;
- field core::Null? fieldOfL4 = null;
+ field Null fieldOfL4 = null;
field () →? core::int fieldOfL5 = null;
generic-covariant-impl field self::L::Y? fieldOfL6 = null;
late static field core::int lateStaticFieldOfM;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect
index 344ba8c..e9ee16a 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect
@@ -93,7 +93,7 @@
generic-covariant-impl field self::C::X? fieldOfX = null;
field core::int? fieldOfX2 = null;
field dynamic fieldOfX3 = null;
- field core::Null? fieldOfX4 = null;
+ field Null fieldOfX4 = null;
field () →? core::int fieldOfX5 = null;
generic-covariant-impl field self::C::Y? fieldOfX6 = null;
late static field core::int lateStaticFieldOfC;
@@ -114,7 +114,7 @@
generic-covariant-impl field self::L::X? fieldOfL = null;
field core::int? fieldOfL2 = null;
field dynamic fieldOfL3 = null;
- field core::Null? fieldOfL4 = null;
+ field Null fieldOfL4 = null;
field () →? core::int fieldOfL5 = null;
generic-covariant-impl field self::L::Y? fieldOfL6 = null;
late static field core::int lateStaticFieldOfM;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect
index 344ba8c..e9ee16a 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect
@@ -93,7 +93,7 @@
generic-covariant-impl field self::C::X? fieldOfX = null;
field core::int? fieldOfX2 = null;
field dynamic fieldOfX3 = null;
- field core::Null? fieldOfX4 = null;
+ field Null fieldOfX4 = null;
field () →? core::int fieldOfX5 = null;
generic-covariant-impl field self::C::Y? fieldOfX6 = null;
late static field core::int lateStaticFieldOfC;
@@ -114,7 +114,7 @@
generic-covariant-impl field self::L::X? fieldOfL = null;
field core::int? fieldOfL2 = null;
field dynamic fieldOfL3 = null;
- field core::Null? fieldOfL4 = null;
+ field Null fieldOfL4 = null;
field () →? core::int fieldOfL5 = null;
generic-covariant-impl field self::L::Y? fieldOfL6 = null;
late static field core::int lateStaticFieldOfM;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect
index 344ba8c..e9ee16a 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect
@@ -93,7 +93,7 @@
generic-covariant-impl field self::C::X? fieldOfX = null;
field core::int? fieldOfX2 = null;
field dynamic fieldOfX3 = null;
- field core::Null? fieldOfX4 = null;
+ field Null fieldOfX4 = null;
field () →? core::int fieldOfX5 = null;
generic-covariant-impl field self::C::Y? fieldOfX6 = null;
late static field core::int lateStaticFieldOfC;
@@ -114,7 +114,7 @@
generic-covariant-impl field self::L::X? fieldOfL = null;
field core::int? fieldOfL2 = null;
field dynamic fieldOfL3 = null;
- field core::Null? fieldOfL4 = null;
+ field Null fieldOfL4 = null;
field () →? core::int fieldOfL5 = null;
generic-covariant-impl field self::L::Y? fieldOfL6 = null;
late static field core::int lateStaticFieldOfM;
diff --git a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.expect b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.expect
index 81553c6..56259bd 100644
--- a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.expect
@@ -12,11 +12,11 @@
method foo() → dynamic {
late self::A::T% value;
late core::int intValue;
- () → core::Null? result = () → core::Null? {
+ () → Null result = () → Null {
this.{self::A::bar}(value);
this.{self::A::barInt}(intValue);
};
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
intValue = 42;
}).call();
diff --git a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.transformed.expect
index 81553c6..56259bd 100644
--- a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.strong.transformed.expect
@@ -12,11 +12,11 @@
method foo() → dynamic {
late self::A::T% value;
late core::int intValue;
- () → core::Null? result = () → core::Null? {
+ () → Null result = () → Null {
this.{self::A::bar}(value);
this.{self::A::barInt}(intValue);
};
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
intValue = 42;
}).call();
diff --git a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.expect b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.expect
index 81553c6..56259bd 100644
--- a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.expect
@@ -12,11 +12,11 @@
method foo() → dynamic {
late self::A::T% value;
late core::int intValue;
- () → core::Null? result = () → core::Null? {
+ () → Null result = () → Null {
this.{self::A::bar}(value);
this.{self::A::barInt}(intValue);
};
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
intValue = 42;
}).call();
diff --git a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.transformed.expect
index 81553c6..56259bd 100644
--- a/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/not_definitely_unassigned_late_local_variables.dart.weak.transformed.expect
@@ -12,11 +12,11 @@
method foo() → dynamic {
late self::A::T% value;
late core::int intValue;
- () → core::Null? result = () → core::Null? {
+ () → Null result = () → Null {
this.{self::A::bar}(value);
this.{self::A::barInt}(intValue);
};
- (() → core::Null? {
+ (() → Null {
value = this.{self::A::baz}();
intValue = 42;
}).call();
diff --git a/pkg/front_end/testcases/nnbd/nullable_null.dart.outline.expect b/pkg/front_end/testcases/nnbd/nullable_null.dart.outline.expect
index f1b5ac6..6aaebca 100644
--- a/pkg/front_end/testcases/nnbd/nullable_null.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_null.dart.outline.expect
@@ -6,14 +6,14 @@
synthetic constructor •() → self::A<self::A::X%>
;
}
-class B extends self::A<core::Null?> {
+class B extends self::A<Null> {
synthetic constructor •() → self::B
;
}
class C extends core::Object {
synthetic constructor •() → self::C
;
- method foo(core::Null? n, self::A<core::Null?> an) → core::Null?
+ method foo(Null n, self::A<Null> an) → Null
;
}
static method foo() → dynamic
diff --git a/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.expect b/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.expect
index a19cb5b..b1e0890 100644
--- a/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
}
-class B extends self::A<core::Null?> {
+class B extends self::A<Null> {
synthetic constructor •() → self::B
: super self::A::•()
;
@@ -16,18 +16,18 @@
synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo(core::Null? n, self::A<core::Null?> an) → core::Null?
+ method foo(Null n, self::A<Null> an) → Null
return n;
}
static method foo() → dynamic {
- return <core::List<self::A<core::Null?>?>>[<core::Null?>[], <self::A<core::Null?>>[]];
+ return <core::List<self::A<Null>?>>[<Null>[], <self::A<Null>>[]];
}
static method bar() → dynamic {
- return <core::List<self::A<core::Null?>?>>[#C1, #C2];
+ return <core::List<self::A<Null>?>>[#C1, #C2];
}
static method main() → dynamic {}
constants {
- #C1 = <core::Null?>[]
- #C2 = <self::A<core::Null?>>[]
+ #C1 = <Null>[]
+ #C2 = <self::A<Null>>[]
}
diff --git a/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect
index a19cb5b..b1e0890 100644
--- a/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
}
-class B extends self::A<core::Null?> {
+class B extends self::A<Null> {
synthetic constructor •() → self::B
: super self::A::•()
;
@@ -16,18 +16,18 @@
synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo(core::Null? n, self::A<core::Null?> an) → core::Null?
+ method foo(Null n, self::A<Null> an) → Null
return n;
}
static method foo() → dynamic {
- return <core::List<self::A<core::Null?>?>>[<core::Null?>[], <self::A<core::Null?>>[]];
+ return <core::List<self::A<Null>?>>[<Null>[], <self::A<Null>>[]];
}
static method bar() → dynamic {
- return <core::List<self::A<core::Null?>?>>[#C1, #C2];
+ return <core::List<self::A<Null>?>>[#C1, #C2];
}
static method main() → dynamic {}
constants {
- #C1 = <core::Null?>[]
- #C2 = <self::A<core::Null?>>[]
+ #C1 = <Null>[]
+ #C2 = <self::A<Null>>[]
}
diff --git a/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.expect b/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.expect
index 7efdb66..82c9494 100644
--- a/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
}
-class B extends self::A<core::Null?> {
+class B extends self::A<Null> {
synthetic constructor •() → self::B
: super self::A::•()
;
@@ -16,18 +16,18 @@
synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo(core::Null? n, self::A<core::Null?> an) → core::Null?
+ method foo(Null n, self::A<Null> an) → Null
return n;
}
static method foo() → dynamic {
- return <core::List<self::A<core::Null?>?>>[<core::Null?>[], <self::A<core::Null?>>[]];
+ return <core::List<self::A<Null>?>>[<Null>[], <self::A<Null>>[]];
}
static method bar() → dynamic {
- return <core::List<self::A<core::Null?>?>>[#C1, #C2];
+ return <core::List<self::A<Null>?>>[#C1, #C2];
}
static method main() → dynamic {}
constants {
- #C1 = <core::Null?>[]
- #C2 = <self::A<core::Null?>*>[]
+ #C1 = <Null>[]
+ #C2 = <self::A<Null>*>[]
}
diff --git a/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect
index 7efdb66..82c9494 100644
--- a/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect
@@ -7,7 +7,7 @@
: super core::Object::•()
;
}
-class B extends self::A<core::Null?> {
+class B extends self::A<Null> {
synthetic constructor •() → self::B
: super self::A::•()
;
@@ -16,18 +16,18 @@
synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo(core::Null? n, self::A<core::Null?> an) → core::Null?
+ method foo(Null n, self::A<Null> an) → Null
return n;
}
static method foo() → dynamic {
- return <core::List<self::A<core::Null?>?>>[<core::Null?>[], <self::A<core::Null?>>[]];
+ return <core::List<self::A<Null>?>>[<Null>[], <self::A<Null>>[]];
}
static method bar() → dynamic {
- return <core::List<self::A<core::Null?>?>>[#C1, #C2];
+ return <core::List<self::A<Null>?>>[#C1, #C2];
}
static method main() → dynamic {}
constants {
- #C1 = <core::Null?>[]
- #C2 = <self::A<core::Null?>*>[]
+ #C1 = <Null>[]
+ #C2 = <self::A<Null>*>[]
}
diff --git a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect
index e0909e0..c104f5c 100644
--- a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect
@@ -417,7 +417,7 @@
class Class extends core::Object {
field core::int property = 0;
- field core::Function functionField = () → core::Null? {};
+ field core::Function functionField = () → Null {};
field () → void functionTypeField = () → void {};
synthetic constructor •() → self::Class
: super core::Object::•()
@@ -425,7 +425,7 @@
method method() → core::int
return 0;
get functionGetter() → core::Function
- return () → core::Null? {};
+ return () → Null {};
get functionTypeGetter() → () → void
return () → void {};
}
@@ -636,11 +636,11 @@
static method Extension|get#extensionMethod(final self::Class #this) → () → core::int
return () → core::int => self::Extension|extensionMethod(#this);
static method Extension|get#extensionFunctionGetter(final self::Class #this) → core::Function
- return () → core::Null? {};
+ return () → Null {};
static method Extension|get#extensionFunctionTypeGetter(final self::Class #this) → () → void
return () → void {};
static get nullableFunction() → core::Function?
- return () → core::Null? {};
+ return () → Null {};
static get nullableFunctionType() → () →? void
return () → void {};
static get nullableInt() → core::int?
diff --git a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect
index e0909e0..c104f5c 100644
--- a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect
@@ -417,7 +417,7 @@
class Class extends core::Object {
field core::int property = 0;
- field core::Function functionField = () → core::Null? {};
+ field core::Function functionField = () → Null {};
field () → void functionTypeField = () → void {};
synthetic constructor •() → self::Class
: super core::Object::•()
@@ -425,7 +425,7 @@
method method() → core::int
return 0;
get functionGetter() → core::Function
- return () → core::Null? {};
+ return () → Null {};
get functionTypeGetter() → () → void
return () → void {};
}
@@ -636,11 +636,11 @@
static method Extension|get#extensionMethod(final self::Class #this) → () → core::int
return () → core::int => self::Extension|extensionMethod(#this);
static method Extension|get#extensionFunctionGetter(final self::Class #this) → core::Function
- return () → core::Null? {};
+ return () → Null {};
static method Extension|get#extensionFunctionTypeGetter(final self::Class #this) → () → void
return () → void {};
static get nullableFunction() → core::Function?
- return () → core::Null? {};
+ return () → Null {};
static get nullableFunctionType() → () →? void
return () → void {};
static get nullableInt() → core::int?
diff --git a/pkg/front_end/testcases/nnbd/required.dart.strong.expect b/pkg/front_end/testcases/nnbd/required.dart.strong.expect
index ed0ee8e..55eb694 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.strong.expect
@@ -74,23 +74,23 @@
;
method foo({core::int x = #C1}) → dynamic {}
}
-static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → Null {};
static method method({core::int a = #C1, required core::int b = #C2, required final core::int c = #C2}) → dynamic {}
static method ok() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C1, required core::int b = #C2}) → void {}
- f = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+ f = ({core::int a = #C1, required core::int b = #C2}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a, [core::int b = #C1]) → void {}
- f2 = (core::int a, [core::int b = #C1]) → core::Null? {};
+ f2 = (core::int a, [core::int b = #C1]) → Null {};
}
static method error() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C2, required core::int b = #C1}) → void {}
- f = ({core::int a = #C2, required core::int b = #C1}) → core::Null? {};
+ f = ({core::int a = #C2, required core::int b = #C1}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a = #C1, [core::int b = #C2]) → void {}
- f2 = (core::int a = #C1, [core::int b = #C2]) → core::Null? {};
+ f2 = (core::int a = #C1, [core::int b = #C2]) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect
index ed0ee8e..55eb694 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect
@@ -74,23 +74,23 @@
;
method foo({core::int x = #C1}) → dynamic {}
}
-static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → Null {};
static method method({core::int a = #C1, required core::int b = #C2, required final core::int c = #C2}) → dynamic {}
static method ok() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C1, required core::int b = #C2}) → void {}
- f = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+ f = ({core::int a = #C1, required core::int b = #C2}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a, [core::int b = #C1]) → void {}
- f2 = (core::int a, [core::int b = #C1]) → core::Null? {};
+ f2 = (core::int a, [core::int b = #C1]) → Null {};
}
static method error() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C2, required core::int b = #C1}) → void {}
- f = ({core::int a = #C2, required core::int b = #C1}) → core::Null? {};
+ f = ({core::int a = #C2, required core::int b = #C1}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a = #C1, [core::int b = #C2]) → void {}
- f2 = (core::int a = #C1, [core::int b = #C2]) → core::Null? {};
+ f2 = (core::int a = #C1, [core::int b = #C2]) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/required.dart.weak.expect b/pkg/front_end/testcases/nnbd/required.dart.weak.expect
index ed0ee8e..55eb694 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.weak.expect
@@ -74,23 +74,23 @@
;
method foo({core::int x = #C1}) → dynamic {}
}
-static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → Null {};
static method method({core::int a = #C1, required core::int b = #C2, required final core::int c = #C2}) → dynamic {}
static method ok() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C1, required core::int b = #C2}) → void {}
- f = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+ f = ({core::int a = #C1, required core::int b = #C2}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a, [core::int b = #C1]) → void {}
- f2 = (core::int a, [core::int b = #C1]) → core::Null? {};
+ f2 = (core::int a, [core::int b = #C1]) → Null {};
}
static method error() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C2, required core::int b = #C1}) → void {}
- f = ({core::int a = #C2, required core::int b = #C1}) → core::Null? {};
+ f = ({core::int a = #C2, required core::int b = #C1}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a = #C1, [core::int b = #C2]) → void {}
- f2 = (core::int a = #C1, [core::int b = #C2]) → core::Null? {};
+ f2 = (core::int a = #C1, [core::int b = #C2]) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/required.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/required.dart.weak.transformed.expect
index ed0ee8e..55eb694 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.weak.transformed.expect
@@ -74,23 +74,23 @@
;
method foo({core::int x = #C1}) → dynamic {}
}
-static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+static field ({a: core::int, required b: core::int}) → dynamic field = ({core::int a = #C1, required core::int b = #C2}) → Null {};
static method method({core::int a = #C1, required core::int b = #C2, required final core::int c = #C2}) → dynamic {}
static method ok() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C1, required core::int b = #C2}) → void {}
- f = ({core::int a = #C1, required core::int b = #C2}) → core::Null? {};
+ f = ({core::int a = #C1, required core::int b = #C2}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a, [core::int b = #C1]) → void {}
- f2 = (core::int a, [core::int b = #C1]) → core::Null? {};
+ f2 = (core::int a, [core::int b = #C1]) → Null {};
}
static method error() → dynamic {
({a: core::int, required b: core::int}) → dynamic f;
function g({core::int a = #C2, required core::int b = #C1}) → void {}
- f = ({core::int a = #C2, required core::int b = #C1}) → core::Null? {};
+ f = ({core::int a = #C2, required core::int b = #C1}) → Null {};
(core::int, [core::int]) → dynamic f2;
function g2(core::int a = #C1, [core::int b = #C2]) → void {}
- f2 = (core::int a = #C1, [core::int b = #C2]) → core::Null? {};
+ f2 = (core::int a = #C1, [core::int b = #C2]) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/return_async.dart.strong.expect b/pkg/front_end/testcases/nnbd/return_async.dart.strong.expect
index 04bbfb6..2c50b42 100644
--- a/pkg/front_end/testcases/nnbd/return_async.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/return_async.dart.strong.expect
@@ -22,7 +22,7 @@
}
static method customErrorZone() → asy::Future<void> async {
final asy::Completer<void> completer = asy::Completer::•<void>();
- asy::runZonedGuarded<asy::Future<core::Null?>>(() → asy::Future<core::Null?> async {
+ asy::runZonedGuarded<asy::Future<Null>>(() → asy::Future<Null> async {
await self::allYield();
completer.{asy::Completer::complete}(null);
}, (core::Object e, core::StackTrace s) → void {
diff --git a/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect
index c130478..8c64d78 100644
--- a/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect
@@ -118,10 +118,10 @@
#L4:
{
final asy::Completer<void> completer = asy::Completer::•<void>();
- asy::runZonedGuarded<asy::Future<core::Null?>>(() → asy::Future<core::Null?> /* originally async */ {
- final asy::_Future<core::Null?> :async_future = new asy::_Future::•<core::Null?>();
+ asy::runZonedGuarded<asy::Future<Null>>(() → asy::Future<Null> /* originally async */ {
+ final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
core::bool* :is_sync = false;
- FutureOr<core::Null?>? :return_value;
+ FutureOr<Null>? :return_value;
dynamic :async_stack_trace;
(dynamic) → dynamic :async_op_then;
(core::Object, core::StackTrace) → dynamic :async_op_error;
diff --git a/pkg/front_end/testcases/nnbd/return_async.dart.weak.expect b/pkg/front_end/testcases/nnbd/return_async.dart.weak.expect
index 04bbfb6..2c50b42 100644
--- a/pkg/front_end/testcases/nnbd/return_async.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/return_async.dart.weak.expect
@@ -22,7 +22,7 @@
}
static method customErrorZone() → asy::Future<void> async {
final asy::Completer<void> completer = asy::Completer::•<void>();
- asy::runZonedGuarded<asy::Future<core::Null?>>(() → asy::Future<core::Null?> async {
+ asy::runZonedGuarded<asy::Future<Null>>(() → asy::Future<Null> async {
await self::allYield();
completer.{asy::Completer::complete}(null);
}, (core::Object e, core::StackTrace s) → void {
diff --git a/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect
index c130478..8c64d78 100644
--- a/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect
@@ -118,10 +118,10 @@
#L4:
{
final asy::Completer<void> completer = asy::Completer::•<void>();
- asy::runZonedGuarded<asy::Future<core::Null?>>(() → asy::Future<core::Null?> /* originally async */ {
- final asy::_Future<core::Null?> :async_future = new asy::_Future::•<core::Null?>();
+ asy::runZonedGuarded<asy::Future<Null>>(() → asy::Future<Null> /* originally async */ {
+ final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
core::bool* :is_sync = false;
- FutureOr<core::Null?>? :return_value;
+ FutureOr<Null>? :return_value;
dynamic :async_stack_trace;
(dynamic) → dynamic :async_op_then;
(core::Object, core::StackTrace) → dynamic :async_op_error;
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect b/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect
index e6382ed..05a001d 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect
@@ -170,7 +170,7 @@
^" in null;
}
function returnAsync4() → FutureOr<core::int?> async {}
- function returnAsync5() → asy::Future<core::Null?> async {}
+ function returnAsync5() → asy::Future<Null> async {}
function returnAsync6() → asy::Future<core::int?> async {
return null;
}
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
index 35e4ddc..08d3990 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
@@ -80,14 +80,14 @@
core::print("foo");
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:13:10: Error: A value of type 'Null' can't be returned from a function with return type 'String' because 'Null' is nullable and 'String' isn't.
return null; // error
- ^" in let core::Null? #t3 = null in #t3.==(null) ?{core::String} #t3 as{TypeError,ForNonNullableByDefault} core::String : #t3{core::String};
+ ^" in let Null #t3 = null in #t3.==(null) ?{core::String} #t3 as{TypeError,ForNonNullableByDefault} core::String : #t3{core::String};
}
static method returnMixed(core::bool b) → core::String {
if(b) {
core::print("foo");
return let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:19:12: Error: A value of type 'Null' can't be returned from a function with return type 'String' because 'Null' is nullable and 'String' isn't.
return null; // error
- ^" in let core::Null? #t5 = null in #t5.==(null) ?{core::String} #t5 as{TypeError,ForNonNullableByDefault} core::String : #t5{core::String};
+ ^" in let Null #t5 = null in #t5.==(null) ?{core::String} #t5 as{TypeError,ForNonNullableByDefault} core::String : #t5{core::String};
}
return let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:16:8: Error: A non-null value must be returned since the return type 'String' doesn't allow null.
String returnMixed(bool b) /*error*/ {
@@ -364,14 +364,14 @@
core::print("foo");
return let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:69:12: Error: A value of type 'Null' can't be returned from a function with return type 'String' because 'Null' is nullable and 'String' isn't.
return null; // error
- ^" in let core::Null? #t11 = null in #t11.==(null) ?{core::String} #t11 as{TypeError,ForNonNullableByDefault} core::String : #t11{core::String};
+ ^" in let Null #t11 = null in #t11.==(null) ?{core::String} #t11 as{TypeError,ForNonNullableByDefault} core::String : #t11{core::String};
}
function returnMixed(core::bool b) → core::String {
if(b) {
core::print("foo");
return let final<BottomType> #t12 = invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:75:14: Error: A value of type 'Null' can't be returned from a function with return type 'String' because 'Null' is nullable and 'String' isn't.
return null; // error
- ^" in let core::Null? #t13 = null in #t13.==(null) ?{core::String} #t13 as{TypeError,ForNonNullableByDefault} core::String : #t13{core::String};
+ ^" in let Null #t13 = null in #t13.==(null) ?{core::String} #t13 as{TypeError,ForNonNullableByDefault} core::String : #t13{core::String};
}
return let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:72:3: Error: A non-null value must be returned since the return type 'String' doesn't allow null.
String returnMixed(bool b) /* error */ {
@@ -486,10 +486,10 @@
:is_sync = true;
return :async_future;
}
- function returnAsync5() → asy::Future<core::Null?> /* originally async */ {
- final asy::_Future<core::Null?> :async_future = new asy::_Future::•<core::Null?>();
+ function returnAsync5() → asy::Future<Null> /* originally async */ {
+ final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
core::bool* :is_sync = false;
- FutureOr<core::Null?>? :return_value;
+ FutureOr<Null>? :return_value;
dynamic :async_stack_trace;
(dynamic) → dynamic :async_op_then;
(core::Object, core::StackTrace) → dynamic :async_op_error;
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect b/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect
index 4c3a28a..75aa5e4 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect
@@ -174,7 +174,7 @@
^" in null;
}
function returnAsync4() → FutureOr<core::int?> async {}
- function returnAsync5() → asy::Future<core::Null?> async {}
+ function returnAsync5() → asy::Future<Null> async {}
function returnAsync6() → asy::Future<core::int?> async {
return null;
}
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
index 0a2d547..39f41e3 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
@@ -490,10 +490,10 @@
:is_sync = true;
return :async_future;
}
- function returnAsync5() → asy::Future<core::Null?> /* originally async */ {
- final asy::_Future<core::Null?> :async_future = new asy::_Future::•<core::Null?>();
+ function returnAsync5() → asy::Future<Null> /* originally async */ {
+ final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
core::bool* :is_sync = false;
- FutureOr<core::Null?>? :return_value;
+ FutureOr<Null>? :return_value;
dynamic :async_stack_trace;
(dynamic) → dynamic :async_op_then;
(core::Object, core::StackTrace) → dynamic :async_op_error;
diff --git a/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.expect b/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.expect
index 9810989..2e91168 100644
--- a/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.expect
@@ -82,7 +82,7 @@
^" in (let final self::Class? #t26 = c in #t26.{core::Object::==}(null) ?{core::int?} null : #t26{self::Class}.{self::Class::next}.{self::Class::[]}(0)).{core::int::unary-}());
}
static method _inStrongMode() → core::bool {
- (core::String?) → core::Null? f = (core::String? s) → core::Null? {
+ (core::String?) → Null f = (core::String? s) → Null {
let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/nnbd/shorting_stop.dart:36:7: Error: Property 'length' cannot be accessed on 'String?' because it is potentially null.
Try accessing using ?. instead.
s.length; // This will be an invalid expression in strong mode.
diff --git a/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.transformed.expect
index 9962d29..6fba66e 100644
--- a/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/shorting_stop.dart.strong.transformed.expect
@@ -82,7 +82,7 @@
^" in (let final self::Class? #t26 = c in #t26.{core::Object::==}(null) ?{core::int?} null : #t26{self::Class}.{self::Class::next}.{self::Class::[]}(0)).{core::int::unary-}());
}
static method _inStrongMode() → core::bool {
- (core::String?) → core::Null? f = (core::String? s) → core::Null? {
+ (core::String?) → Null f = (core::String? s) → Null {
let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/nnbd/shorting_stop.dart:36:7: Error: Property 'length' cannot be accessed on 'String?' because it is potentially null.
Try accessing using ?. instead.
s.length; // This will be an invalid expression in strong mode.
diff --git a/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.expect b/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.expect
index 9810989..2e91168 100644
--- a/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.expect
@@ -82,7 +82,7 @@
^" in (let final self::Class? #t26 = c in #t26.{core::Object::==}(null) ?{core::int?} null : #t26{self::Class}.{self::Class::next}.{self::Class::[]}(0)).{core::int::unary-}());
}
static method _inStrongMode() → core::bool {
- (core::String?) → core::Null? f = (core::String? s) → core::Null? {
+ (core::String?) → Null f = (core::String? s) → Null {
let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/nnbd/shorting_stop.dart:36:7: Error: Property 'length' cannot be accessed on 'String?' because it is potentially null.
Try accessing using ?. instead.
s.length; // This will be an invalid expression in strong mode.
diff --git a/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.transformed.expect
index 9962d29..6fba66e 100644
--- a/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/shorting_stop.dart.weak.transformed.expect
@@ -82,7 +82,7 @@
^" in (let final self::Class? #t26 = c in #t26.{core::Object::==}(null) ?{core::int?} null : #t26{self::Class}.{self::Class::next}.{self::Class::[]}(0)).{core::int::unary-}());
}
static method _inStrongMode() → core::bool {
- (core::String?) → core::Null? f = (core::String? s) → core::Null? {
+ (core::String?) → Null f = (core::String? s) → Null {
let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/nnbd/shorting_stop.dart:36:7: Error: Property 'length' cannot be accessed on 'String?' because it is potentially null.
Try accessing using ?. instead.
s.length; // This will be an invalid expression in strong mode.
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
index c7475f1..23c8814 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
@@ -57,7 +57,7 @@
static method foo<T extends self::C? = self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
self::functionContext(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:14:24: Error: Can't tear off method 'call' from a potentially null value.
functionContext(null as C?); // Error.
- ^" in let core::Null? #t2 = null in #t2.==(null) ?{() → core::int} #t2 as{TypeError} () → core::int : #t2{() → core::int});
+ ^" in let Null #t2 = null in #t2.==(null) ?{() → core::int} #t2 as{TypeError} () → core::int : #t2{() → core::int});
self::nullableFunctionContext(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:15:32: Error: Can't tear off method 'call' from a potentially null value.
nullableFunctionContext(null as C?); // Error.
^" in null);
diff --git a/pkg/front_end/testcases/nnbd/type_constraint_solving_closures_in_upper_and_lower_bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/type_constraint_solving_closures_in_upper_and_lower_bounds.dart.strong.transformed.expect
index 211652e..64936bf 100644
--- a/pkg/front_end/testcases/nnbd/type_constraint_solving_closures_in_upper_and_lower_bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/type_constraint_solving_closures_in_upper_and_lower_bounds.dart.strong.transformed.expect
@@ -15,7 +15,7 @@
;
}
static method check<T extends core::Object? = dynamic>(self::C<core::List<self::check::T%>> f) → self::check::T% {
- return let core::Null? #t1 = null in #t1.==(null) ?{self::check::T%} #t1 as{ForNonNullableByDefault} self::check::T% : #t1{self::check::T%};
+ return let Null #t1 = null in #t1.==(null) ?{self::check::T%} #t1 as{ForNonNullableByDefault} self::check::T% : #t1{self::check::T%};
}
static method test() → void {
core::int x = self::check<core::int>(new self::C::•<core::List<core::int>>((core::List<core::int> x) → void {}));
diff --git a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect
index 364e1c1..f315bb6 100644
--- a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect
@@ -1,15 +1,15 @@
library;
import self as self;
-import "dart:core" as core;
import "bounds_from_opt_in_lib.dart" as bou;
+import "dart:core" as core;
import "org-dartlang-testcase:///bounds_from_opt_in_lib.dart";
-class LegacyClass<T extends core::Null? = core::Null?> extends bou::Class<self::LegacyClass::T*> {
+class LegacyClass<T extends Null = Null> extends bou::Class<self::LegacyClass::T*> {
synthetic constructor •() → self::LegacyClass<self::LegacyClass::T*>*
: super bou::Class::•()
;
- method method<T extends core::Null? = core::Null?>() → dynamic {}
+ method method<T extends Null = Null>() → dynamic {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -22,9 +22,9 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- bou::Class<core::Null?>* c = new bou::Class::•<core::Null?>();
- c.{bou::Class::method}<core::Null?>();
- bou::method<core::Null?>();
+ bou::Class<Null>* c = new bou::Class::•<Null>();
+ c.{bou::Class::method}<Null>();
+ bou::method<Null>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect
index 364e1c1..f315bb6 100644
--- a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect
@@ -1,15 +1,15 @@
library;
import self as self;
-import "dart:core" as core;
import "bounds_from_opt_in_lib.dart" as bou;
+import "dart:core" as core;
import "org-dartlang-testcase:///bounds_from_opt_in_lib.dart";
-class LegacyClass<T extends core::Null? = core::Null?> extends bou::Class<self::LegacyClass::T*> {
+class LegacyClass<T extends Null = Null> extends bou::Class<self::LegacyClass::T*> {
synthetic constructor •() → self::LegacyClass<self::LegacyClass::T*>*
: super bou::Class::•()
;
- method method<T extends core::Null? = core::Null?>() → dynamic {}
+ method method<T extends Null = Null>() → dynamic {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -22,9 +22,9 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- bou::Class<core::Null?>* c = new bou::Class::•<core::Null?>();
- c.{bou::Class::method}<core::Null?>();
- bou::method<core::Null?>();
+ bou::Class<Null>* c = new bou::Class::•<Null>();
+ c.{bou::Class::method}<Null>();
+ bou::method<Null>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.expect
index 3725acd..496eb80 100644
--- a/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.expect
@@ -29,11 +29,11 @@
import self as cal;
import "dart:core" as core;
-static method takesNull(core::Null? n) → void {}
+static method takesNull(Null n) → void {}
static method takesNever(Never n) → void {}
-static method applyTakesNull((core::Null?) → void f) → dynamic {}
+static method applyTakesNull((Null) → void f) → dynamic {}
static method applyTakesNever((Never) → void f) → dynamic {}
-static method applyTakesNullNamed({required (core::Null?) → void f = #C5}) → dynamic {}
+static method applyTakesNullNamed({required (Null) → void f = #C5}) → dynamic {}
static method applyTakesNeverNamed({required (Never) → void f = #C5}) → dynamic {}
static method takesNullable(core::int? i) → void {}
static method takesNonNullable(core::int i) → void {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.transformed.expect
index 3725acd..496eb80 100644
--- a/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/call_opt_in_through_opt_out.dart.weak.transformed.expect
@@ -29,11 +29,11 @@
import self as cal;
import "dart:core" as core;
-static method takesNull(core::Null? n) → void {}
+static method takesNull(Null n) → void {}
static method takesNever(Never n) → void {}
-static method applyTakesNull((core::Null?) → void f) → dynamic {}
+static method applyTakesNull((Null) → void f) → dynamic {}
static method applyTakesNever((Never) → void f) → dynamic {}
-static method applyTakesNullNamed({required (core::Null?) → void f = #C5}) → dynamic {}
+static method applyTakesNullNamed({required (Null) → void f = #C5}) → dynamic {}
static method applyTakesNeverNamed({required (Never) → void f = #C5}) → dynamic {}
static method takesNullable(core::int? i) → void {}
static method takesNonNullable(core::int i) → void {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect
index a139d60..bdcfe75 100644
--- a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect
@@ -23,7 +23,7 @@
typedef fnTypeWithNeverBound = <T extends Never = dynamic>() → void;
static method fnWithNonNullObjectBound<T extends core::Object = core::Object>() → void
return null;
-static method fnWithNullBound<T extends core::Null? = core::Null?>() → void
+static method fnWithNullBound<T extends Null = Null>() → void
return null;
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect
index 9c0d806..a2670ba 100644
--- a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect
@@ -23,7 +23,7 @@
typedef fnTypeWithNeverBound = <T extends Never = dynamic>() → void;
static method fnWithNonNullObjectBound<T extends core::Object = core::Object>() → void
return null;
-static method fnWithNullBound<T extends core::Null? = core::Null?>() → void
+static method fnWithNullBound<T extends Null = Null>() → void
return null;
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
index 2a5dc83..470c9c8 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
@@ -37,45 +37,45 @@
static const field core::bool c12 = #C2;
static const field self::Class<core::int> e1 = #C4;
static const field self::Class<core::int?> e2 = #C4;
-static const field self::Class<core::Null?> e3 = #C5;
+static const field self::Class<Null> e3 = #C5;
static const field self::Class<core::int> e4 = #C6;
static const field self::Class<core::int?> e5 = #C6;
-static const field self::Class<core::Null?> e6 = #C5;
+static const field self::Class<Null> e6 = #C5;
static const field self::Class<core::int> e7 = #C4;
static const field self::Class<core::int?> e8 = #C4;
-static const field self::Class<core::Null?> e9 = #C7;
+static const field self::Class<Null> e9 = #C7;
static const field self::Class<core::int> e10 = #C6;
static const field self::Class<core::int?> e11 = #C6;
-static const field self::Class<core::Null?> e12 = #C5;
+static const field self::Class<Null> e12 = #C5;
static method main() → dynamic {
self::expect(null is{ForNonNullableByDefault} core::int?, #C2, "null is int?");
self::expect(null is{ForNonNullableByDefault} core::int, #C3, "null is int");
- self::expect(null is{ForNonNullableByDefault} core::Null?, #C2, "null is Null");
+ self::expect(null is{ForNonNullableByDefault} Null, #C2, "null is Null");
self::expect(null is{ForNonNullableByDefault} Never?, #C2, "null is Never?");
self::expect(null is{ForNonNullableByDefault} Never, #C3, "null is Never");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int?>, #C2, "null is FutureOr<int?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>, #C3, "null is FutureOr<int>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>?, #C2, "null is FutureOr<int>?");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>, #C2, "null is FutureOr<Null>");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>?, #C2, "null is FutureOr<Null>?");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>, #C2, "null is FutureOr<Null>");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>?, #C2, "null is FutureOr<Null>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>, #C3, "null is FutureOr<Never>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never?>, #C2, "null is FutureOr<Never?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>?, #C2, "null is FutureOr<Never>?");
self::expect(new self::Class::constructor1<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field");
self::expect(true, new self::Class::constructor1<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor1(null).field");
self::expect(!self::isWeakMode, (#C4).{self::Class::field}, "const Class<int?>.constructor1(null).field");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
self::expect(new self::Class::constructor2<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor2(null).field");
self::expect(true, new self::Class::constructor2<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor2(null).field");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
self::expect(new self::Class::constructor3<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
self::expect(new self::Class::constructor4<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor4(null).field");
self::expect(new self::Class::constructor4<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor4(null).field");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
con::test();
}
static method expect(dynamic expected, dynamic actual, core::String message) → dynamic {
@@ -94,32 +94,32 @@
static const field core::bool* d0 = #C3;
static const field core::bool* d1 = #C2;
static const field self::Class<core::int*>* d4 = #C4;
-static const field self::Class<core::Null?>* d5 = #C5;
+static const field self::Class<Null>* d5 = #C5;
static const field self::Class<core::int*>* d6 = #C6;
-static const field self::Class<core::Null?>* d7 = #C5;
+static const field self::Class<Null>* d7 = #C5;
static const field self::Class<core::int*>* d8 = #C4;
-static const field self::Class<core::Null?>* d9 = #C7;
+static const field self::Class<Null>* d9 = #C7;
static const field self::Class<core::int*>* d10 = #C6;
-static const field self::Class<core::Null?>* d11 = #C5;
+static const field self::Class<Null>* d11 = #C5;
static method test() → dynamic {
self::expect(null is core::int*, #C3, "null is int (opt-out)");
- self::expect(null is core::Null?, #C2, "null is Null");
+ self::expect(null is Null, #C2, "null is Null");
self::expect(new self::Class::constructor1<core::int*>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field (opt-out)");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field (opt-out)");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field (opt-out)");
self::expect(new self::Class::constructor2<core::int*>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor2(null).field (opt-out)");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field (opt-out)");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field (opt-out)");
self::expect(new self::Class::constructor3<core::int*>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field (opt-out)");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field (opt-out)");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field (opt-out)");
self::expect(new self::Class::constructor4<core::int*>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor4(null).field (opt-out)");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field (opt-out)");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field (opt-out)");
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = false
#C4 = self::Class<core::int*> {field:#C3}
- #C5 = self::Class<core::Null?> {field:#C2}
+ #C5 = self::Class<Null> {field:#C2}
#C6 = self::Class<core::int*> {field:#C2}
- #C7 = self::Class<core::Null?> {field:#C3}
+ #C7 = self::Class<Null> {field:#C3}
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
index 439da59..dc41d03 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
@@ -37,45 +37,45 @@
static const field core::bool c12 = #C2;
static const field self::Class<core::int> e1 = #C4;
static const field self::Class<core::int?> e2 = #C4;
-static const field self::Class<core::Null?> e3 = #C5;
+static const field self::Class<Null> e3 = #C5;
static const field self::Class<core::int> e4 = #C6;
static const field self::Class<core::int?> e5 = #C6;
-static const field self::Class<core::Null?> e6 = #C5;
+static const field self::Class<Null> e6 = #C5;
static const field self::Class<core::int> e7 = #C4;
static const field self::Class<core::int?> e8 = #C4;
-static const field self::Class<core::Null?> e9 = #C7;
+static const field self::Class<Null> e9 = #C7;
static const field self::Class<core::int> e10 = #C6;
static const field self::Class<core::int?> e11 = #C6;
-static const field self::Class<core::Null?> e12 = #C5;
+static const field self::Class<Null> e12 = #C5;
static method main() → dynamic {
self::expect(null is{ForNonNullableByDefault} core::int?, #C2, "null is int?");
self::expect(null is{ForNonNullableByDefault} core::int, #C3, "null is int");
- self::expect(null is{ForNonNullableByDefault} core::Null?, #C2, "null is Null");
+ self::expect(null is{ForNonNullableByDefault} Null, #C2, "null is Null");
self::expect(null is{ForNonNullableByDefault} Never?, #C2, "null is Never?");
self::expect(null is{ForNonNullableByDefault} Never, #C3, "null is Never");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int?>, #C2, "null is FutureOr<int?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>, #C3, "null is FutureOr<int>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>?, #C2, "null is FutureOr<int>?");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>, #C2, "null is FutureOr<Null>");
- self::expect(null is{ForNonNullableByDefault} FutureOr<core::Null?>?, #C2, "null is FutureOr<Null>?");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>, #C2, "null is FutureOr<Null>");
+ self::expect(null is{ForNonNullableByDefault} FutureOr<Null>?, #C2, "null is FutureOr<Null>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>, #C3, "null is FutureOr<Never>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never?>, #C2, "null is FutureOr<Never?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>?, #C2, "null is FutureOr<Never>?");
self::expect(new self::Class::constructor1<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field");
self::expect(true, new self::Class::constructor1<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor1(null).field");
self::expect(!self::isWeakMode, (#C4).{self::Class::field}, "const Class<int?>.constructor1(null).field");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field");
self::expect(new self::Class::constructor2<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor2(null).field");
self::expect(true, new self::Class::constructor2<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor2(null).field");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field");
self::expect(new self::Class::constructor3<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int?>.constructor3(null).field");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field");
self::expect(new self::Class::constructor4<core::int>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor4(null).field");
self::expect(new self::Class::constructor4<core::int?>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int?>.constructor4(null).field");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field");
con::test();
}
static method expect(dynamic expected, dynamic actual, core::String message) → dynamic {
@@ -94,34 +94,34 @@
static const field core::bool* d0 = #C3;
static const field core::bool* d1 = #C2;
static const field self::Class<core::int*>* d4 = #C4;
-static const field self::Class<core::Null?>* d5 = #C5;
+static const field self::Class<Null>* d5 = #C5;
static const field self::Class<core::int*>* d6 = #C6;
-static const field self::Class<core::Null?>* d7 = #C5;
+static const field self::Class<Null>* d7 = #C5;
static const field self::Class<core::int*>* d8 = #C4;
-static const field self::Class<core::Null?>* d9 = #C7;
+static const field self::Class<Null>* d9 = #C7;
static const field self::Class<core::int*>* d10 = #C6;
-static const field self::Class<core::Null?>* d11 = #C5;
+static const field self::Class<Null>* d11 = #C5;
static method test() → dynamic {
self::expect(null is core::int*, #C3, "null is int (opt-out)");
- self::expect(null is core::Null?, #C2, "null is Null");
+ self::expect(null is Null, #C2, "null is Null");
self::expect(new self::Class::constructor1<core::int*>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field (opt-out)");
- self::expect(new self::Class::constructor1<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field (opt-out)");
+ self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor1(null).field (opt-out)");
self::expect(new self::Class::constructor2<core::int*>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor2(null).field (opt-out)");
- self::expect(new self::Class::constructor2<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field (opt-out)");
+ self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor2(null).field (opt-out)");
self::expect(new self::Class::constructor3<core::int*>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field (opt-out)");
- self::expect(new self::Class::constructor3<core::Null?>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field (opt-out)");
+ self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<Null>.constructor3(null).field (opt-out)");
self::expect(new self::Class::constructor4<core::int*>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<int>.constructor4(null).field (opt-out)");
- self::expect(new self::Class::constructor4<core::Null?>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field (opt-out)");
+ self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C5).{self::Class::field}, "Class<Null>.constructor4(null).field (opt-out)");
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = false
#C4 = self::Class<core::int*> {field:#C3}
- #C5 = self::Class<core::Null?> {field:#C2}
+ #C5 = self::Class<Null> {field:#C2}
#C6 = self::Class<core::int*> {field:#C2}
- #C7 = self::Class<core::Null?> {field:#C3}
+ #C7 = self::Class<Null> {field:#C3}
}
Extra constant evaluation status:
diff --git a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
index e324019..0124126 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
@@ -88,7 +88,7 @@
#C5 = <core::int*>[#C3]
#C6 = null
#C7 = <dynamic>[#C3, #C6]
- #C8 = core::_ImmutableMap<core::int*, core::Null?> {_kvPairs:#C7}
+ #C8 = core::_ImmutableMap<core::int*, Null> {_kvPairs:#C7}
#C9 = col::_UnmodifiableSet<core::int*> {_map:#C8}
#C10 = "foo"
#C11 = <dynamic>[#C3, #C10]
diff --git a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
index e324019..0124126 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
@@ -88,7 +88,7 @@
#C5 = <core::int*>[#C3]
#C6 = null
#C7 = <dynamic>[#C3, #C6]
- #C8 = core::_ImmutableMap<core::int*, core::Null?> {_kvPairs:#C7}
+ #C8 = core::_ImmutableMap<core::int*, Null> {_kvPairs:#C7}
#C9 = col::_UnmodifiableSet<core::int*> {_map:#C8}
#C10 = "foo"
#C11 = <dynamic>[#C3, #C10]
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
index a342956..94c1a96 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
@@ -34,7 +34,7 @@
core::List<inf::C<core::int*>*>* local1f = <inf::C<core::int*>*>[inf::field6];
core::List<core::int*>* local1g = <core::int*>[inf::field7];
core::List<core::int*>* local1h = <core::int*>[inf::field8];
- core::List<core::Null?>* local1i = <core::Null?>[null];
+ core::List<Null>* local1i = <Null>[null];
core::Set<inf::C<dynamic>*>* local2a = block {
final core::Set<inf::C<dynamic>*>* #t1 = col::LinkedHashSet::•<inf::C<dynamic>*>();
#t1.{core::Set::add}(inf::field1);
@@ -164,7 +164,7 @@
core::List<inf::C<core::int?>?> local1f = <inf::C<core::int?>?>[inf::field6];
core::List<core::int> local1g = <core::int>[inf::field7];
core::List<core::int?> local1h = <core::int?>[inf::field8];
- core::List<core::Null?> local1i = <core::Null?>[null];
+ core::List<Null> local1i = <Null>[null];
core::Set<inf::C<dynamic>?> local2a = block {
final core::Set<inf::C<dynamic>?> #t17 = col::LinkedHashSet::•<inf::C<dynamic>?>();
#t17.{core::Set::add}(inf::field1);
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
index 3eb5671..8c3ed7b 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
@@ -34,7 +34,7 @@
core::List<inf::C<core::int*>*>* local1f = <inf::C<core::int*>*>[inf::field6];
core::List<core::int*>* local1g = <core::int*>[inf::field7];
core::List<core::int*>* local1h = <core::int*>[inf::field8];
- core::List<core::Null?>* local1i = <core::Null?>[null];
+ core::List<Null>* local1i = <Null>[null];
core::Set<inf::C<dynamic>*>* local2a = block {
final core::Set<inf::C<dynamic>*>* #t1 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>*>();
#t1.{core::Set::add}(inf::field1);
@@ -164,7 +164,7 @@
core::List<inf::C<core::int?>?> local1f = <inf::C<core::int?>?>[inf::field6];
core::List<core::int> local1g = <core::int>[inf::field7];
core::List<core::int?> local1h = <core::int?>[inf::field8];
- core::List<core::Null?> local1i = <core::Null?>[null];
+ core::List<Null> local1i = <Null>[null];
core::Set<inf::C<dynamic>?> local2a = block {
final core::Set<inf::C<dynamic>?> #t17 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>?>();
#t17.{core::Set::add}(inf::field1);
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.expect
index 1a52e64..615c4e4 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.expect
@@ -10,7 +10,7 @@
: super core::Object::•()
;
method method() → iss::C<self::D::Y*>*
- return new iss::C::•<self::D::Y*>(() → core::Null? => null);
+ return new iss::C::•<self::D::Y*>(() → Null => null);
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -23,13 +23,13 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- iss::foo(() → core::Null? => null);
+ iss::foo(() → Null => null);
iss::bar = () → iss::Map<core::String*, core::String*>* => null;
new self::D::•<core::int*>().{self::D::method}();
self::findKey(new iss::Map::•<core::String*, core::String*>("foo", "bar"), "bar");
}
static method findKey(iss::Map<core::String*, dynamic>* m, dynamic search) → void {
- core::print(let final core::MapEntry<core::String*, dynamic>* #t1 = m.{iss::Map::entries}.{iss::Iterable::singleWhere}((core::MapEntry<core::String*, dynamic>* entry) → core::bool* => entry.{core::MapEntry::value}.{core::Object::==}(search), orElse: () → core::Null? => null) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::MapEntry::key});
+ core::print(let final core::MapEntry<core::String*, dynamic>* #t1 = m.{iss::Map::entries}.{iss::Iterable::singleWhere}((core::MapEntry<core::String*, dynamic>* entry) → core::bool* => entry.{core::MapEntry::value}.{core::Object::==}(search), orElse: () → Null => null) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::MapEntry::key});
}
library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.transformed.expect
index 1a52e64..615c4e4 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41180.dart.weak.transformed.expect
@@ -10,7 +10,7 @@
: super core::Object::•()
;
method method() → iss::C<self::D::Y*>*
- return new iss::C::•<self::D::Y*>(() → core::Null? => null);
+ return new iss::C::•<self::D::Y*>(() → Null => null);
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -23,13 +23,13 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- iss::foo(() → core::Null? => null);
+ iss::foo(() → Null => null);
iss::bar = () → iss::Map<core::String*, core::String*>* => null;
new self::D::•<core::int*>().{self::D::method}();
self::findKey(new iss::Map::•<core::String*, core::String*>("foo", "bar"), "bar");
}
static method findKey(iss::Map<core::String*, dynamic>* m, dynamic search) → void {
- core::print(let final core::MapEntry<core::String*, dynamic>* #t1 = m.{iss::Map::entries}.{iss::Iterable::singleWhere}((core::MapEntry<core::String*, dynamic>* entry) → core::bool* => entry.{core::MapEntry::value}.{core::Object::==}(search), orElse: () → core::Null? => null) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::MapEntry::key});
+ core::print(let final core::MapEntry<core::String*, dynamic>* #t1 = m.{iss::Map::entries}.{iss::Iterable::singleWhere}((core::MapEntry<core::String*, dynamic>* entry) → core::bool* => entry.{core::MapEntry::value}.{core::Object::==}(search), orElse: () → Null => null) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::MapEntry::key});
}
library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.expect
index 2f840e9..bcfdbf4 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.expect
@@ -1,18 +1,17 @@
library;
import self as self;
-import "dart:core" as core;
import "issue41435_lib.dart" as iss;
import "org-dartlang-testcase:///issue41435_lib.dart";
static method main() → void {
- core::Null? nil;
+ Null nil;
iss::x = null;
iss::x = nil;
iss::takesNever(null);
iss::takesNever(nil);
iss::takesTakesNull(#C1);
- iss::f = (core::Null? x) → core::Null? {};
+ iss::f = (Null x) → Null {};
}
library /*isNonNullableByDefault*/;
@@ -20,9 +19,9 @@
import "dart:core" as core;
static field Never x = throw "Unreachable";
-static field (core::Null?) → void f = (core::Object? n) → void {};
+static field (Null) → void f = (core::Object? n) → void {};
static method takesNever(Never x) → void {}
-static method takesTakesNull((core::Null?) → void f) → void {}
+static method takesTakesNull((Null) → void f) → void {}
constants {
#C1 = tearoff iss::takesNever
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.transformed.expect
index 2f840e9..bcfdbf4 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41435.dart.weak.transformed.expect
@@ -1,18 +1,17 @@
library;
import self as self;
-import "dart:core" as core;
import "issue41435_lib.dart" as iss;
import "org-dartlang-testcase:///issue41435_lib.dart";
static method main() → void {
- core::Null? nil;
+ Null nil;
iss::x = null;
iss::x = nil;
iss::takesNever(null);
iss::takesNever(nil);
iss::takesTakesNull(#C1);
- iss::f = (core::Null? x) → core::Null? {};
+ iss::f = (Null x) → Null {};
}
library /*isNonNullableByDefault*/;
@@ -20,9 +19,9 @@
import "dart:core" as core;
static field Never x = throw "Unreachable";
-static field (core::Null?) → void f = (core::Object? n) → void {};
+static field (Null) → void f = (core::Object? n) → void {};
static method takesNever(Never x) → void {}
-static method takesTakesNull((core::Null?) → void f) → void {}
+static method takesTakesNull((Null) → void f) → void {}
constants {
#C1 = tearoff iss::takesNever
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.expect
index e78db51..280af56 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.expect
@@ -45,7 +45,7 @@
(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498.dart:24:3: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
^" in f).{core::Object::toString}();
- core::Function foo = () → core::Null? {
+ core::Function foo = () → Null {
() → void f;
(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498.dart:29:5: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
@@ -87,7 +87,7 @@
static method test() → dynamic {
() →* void f;
f.{core::Object::toString}();
- core::Function* foo = () → core::Null? {
+ core::Function* foo = () → Null {
() →* void f;
f.{core::Object::toString}();
};
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.transformed.expect
index e78db51..280af56 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41498.dart.weak.transformed.expect
@@ -45,7 +45,7 @@
(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498.dart:24:3: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
^" in f).{core::Object::toString}();
- core::Function foo = () → core::Null? {
+ core::Function foo = () → Null {
() → void f;
(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498.dart:29:5: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
@@ -87,7 +87,7 @@
static method test() → dynamic {
() →* void f;
f.{core::Object::toString}();
- core::Function* foo = () → core::Null? {
+ core::Function* foo = () → Null {
() →* void f;
f.{core::Object::toString}();
};
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.expect
index aaa6b94..a230610b 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.expect
@@ -32,7 +32,7 @@
static method test() → dynamic {
() →* void f;
f.{core::Object::toString}();
- core::Function* foo = () → core::Null? {
+ core::Function* foo = () → Null {
() →* void f;
f.{core::Object::toString}();
};
@@ -90,7 +90,7 @@
(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498b_lib.dart:24:3: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
^" in f).{core::Object::toString}();
- core::Function foo = () → core::Null? {
+ core::Function foo = () → Null {
() → void f;
(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498b_lib.dart:29:5: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.transformed.expect
index aaa6b94..a230610b 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41498b.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
static method test() → dynamic {
() →* void f;
f.{core::Object::toString}();
- core::Function* foo = () → core::Null? {
+ core::Function* foo = () → Null {
() →* void f;
f.{core::Object::toString}();
};
@@ -90,7 +90,7 @@
(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498b_lib.dart:24:3: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
^" in f).{core::Object::toString}();
- core::Function foo = () → core::Null? {
+ core::Function foo = () → Null {
() → void f;
(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue41498b_lib.dart:29:5: Error: Non-nullable variable 'f' must be assigned before it can be used.
f.toString(); // error
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.expect
index 06afa9c..6654a73 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.expect
@@ -22,7 +22,7 @@
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = <core::int*>[]
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.transformed.expect
index a19de51..9a8aafd 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41657.dart.weak.transformed.expect
@@ -22,7 +22,7 @@
}
constants {
- #C1 = <core::Null?>[]
+ #C1 = <Null>[]
#C2 = true
#C3 = <core::int*>[]
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.expect
index 0e74a72..3a9fde4 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.expect
@@ -28,9 +28,8 @@
library /*isNonNullableByDefault*/;
import self as self2;
import "dart:async" as asy;
-import "dart:core" as core;
-typedef AsyncCallback = () → asy::Future<core::Null?>;
+typedef AsyncCallback = () → asy::Future<Null>;
library /*isNonNullableByDefault*/;
import self as fou;
@@ -43,7 +42,7 @@
synthetic constructor •() → fou::BindingBase
: super core::Object::•()
;
- method registerSignalServiceExtension({required core::String name = #C1, required () → asy::Future<core::Null?> callback = #C1}) → void {}
+ method registerSignalServiceExtension({required core::String name = #C1, required () → asy::Future<Null> callback = #C1}) → void {}
}
library;
@@ -66,7 +65,7 @@
import "org-dartlang-testcase:///foundation_lib.dart";
abstract class SchedulerBinding extends fou::BindingBase /*isMixinDeclaration*/ {
- abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<core::Null?>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
+ abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<Null>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -111,7 +110,7 @@
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<core::Null?>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
+ abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<Null>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
}
abstract class ServicesBinding extends ser::_ServicesBinding&BindingBase&SchedulerBinding /*isMixinDeclaration*/ {
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.transformed.expect
index 30fe040..75be828 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue42387/scheduler_tester.dart.weak.transformed.expect
@@ -14,7 +14,7 @@
synthetic constructor •() → self::_TestSchedulerBinding&BindingBase&SchedulerBinding*
: super fou::BindingBase::•()
;
- abstract member-signature method /* from org-dartlang-testcase:///scheduler_binding_lib.dart */ registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<core::Null?>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
+ abstract member-signature method /* from org-dartlang-testcase:///scheduler_binding_lib.dart */ registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<Null>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
abstract member-signature get /* from org-dartlang-testcase:///scheduler_binding_lib.dart */ _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method /* from org-dartlang-testcase:///scheduler_binding_lib.dart */ _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method /* from org-dartlang-testcase:///scheduler_binding_lib.dart */ _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -41,9 +41,8 @@
library /*isNonNullableByDefault*/;
import self as self2;
import "dart:async" as asy;
-import "dart:core" as core;
-typedef AsyncCallback = () → asy::Future<core::Null?>;
+typedef AsyncCallback = () → asy::Future<Null>;
library /*isNonNullableByDefault*/;
import self as fou;
@@ -56,7 +55,7 @@
synthetic constructor •() → fou::BindingBase
: super core::Object::•()
;
- method registerSignalServiceExtension({required core::String name = #C1, required () → asy::Future<core::Null?> callback = #C1}) → void {}
+ method registerSignalServiceExtension({required core::String name = #C1, required () → asy::Future<Null> callback = #C1}) → void {}
}
library;
@@ -79,7 +78,7 @@
import "org-dartlang-testcase:///foundation_lib.dart";
abstract class SchedulerBinding extends fou::BindingBase /*isMixinDeclaration*/ {
- abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<core::Null?>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
+ abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<Null>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -124,7 +123,7 @@
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<core::Null?>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
+ abstract member-signature method registerSignalServiceExtension({core::String* name = #C1, () →* asy::Future<Null>* callback = #C1}) → void; -> fou::BindingBase::registerSignalServiceExtension
}
abstract class ServicesBinding extends ser::_ServicesBinding&BindingBase&SchedulerBinding /*isMixinDeclaration*/ {
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect
index 4852b17..ee003ce 100644
--- a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect
@@ -21,21 +21,21 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends nev::A {
- field core::Null? neverField = null;
- field core::Null? nullField = null;
+ field Null neverField = null;
+ field Null nullField = null;
synthetic constructor •() → self::B*
: super nev::A::•()
;
- method neverMethod(core::Null? value) → core::Null?
+ method neverMethod(Null value) → Null
return value;
- get neverProperty() → core::Null?
+ get neverProperty() → Null
return null;
- set neverProperty(core::Null? value) → void {}
- method nullMethod(core::Null? value) → core::Null?
+ set neverProperty(Null value) → void {}
+ method nullMethod(Null value) → Null
return value;
- get nullProperty() → core::Null?
+ get nullProperty() → Null
return null;
- set nullProperty(core::Null? value) → void {}
+ set nullProperty(Null value) → void {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -48,21 +48,21 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends nev::A {
- field core::Null? neverField = null;
- field core::Null? nullField = null;
+ field Null neverField = null;
+ field Null nullField = null;
synthetic constructor •() → self::C*
: super nev::A::•()
;
- method neverMethod(core::Null? value) → core::Null?
+ method neverMethod(Null value) → Null
return value;
- get neverProperty() → core::Null?
+ get neverProperty() → Null
return null;
- set neverProperty(core::Null? value) → void {}
- method nullMethod(core::Null? value) → core::Null?
+ set neverProperty(Null value) → void {}
+ method nullMethod(Null value) → Null
return value;
- get nullProperty() → core::Null?
+ get nullProperty() → Null
return null;
- set nullProperty(core::Null? value) → void {}
+ set nullProperty(Null value) → void {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -74,16 +74,16 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::Null? optOutNever;
+static field Null optOutNever;
static field dynamic inferredOptOutNever = nev::optInNever;
static method genericMethod<T extends core::Object* = dynamic>() → dynamic {}
static method main() → dynamic {
nev::optInNever = self::optOutNever;
- core::Type* typeNever = core::Null?;
- self::genericMethod<core::Null?>();
- new self::GenericClass::•<core::Null?>();
- core::Null? localNever = null;
- core::Null? localNull = null;
+ core::Type* typeNever = Null;
+ self::genericMethod<Null>();
+ new self::GenericClass::•<Null>();
+ Null localNever = null;
+ Null localNull = null;
dynamic inferredLocalNever = nev::optInNever;
localNever = localNever;
self::optOutNever = localNever;
@@ -109,29 +109,29 @@
localNull = localNull;
self::inferredOptOutNever = localNull;
inferredLocalNever = localNull;
- localNever = self::inferredOptOutNever as{TypeError,ForDynamic} core::Null?;
- self::optOutNever = self::inferredOptOutNever as{TypeError,ForDynamic} core::Null?;
+ localNever = self::inferredOptOutNever as{TypeError,ForDynamic} Null;
+ self::optOutNever = self::inferredOptOutNever as{TypeError,ForDynamic} Null;
nev::optInNever = self::inferredOptOutNever as{TypeError,ForDynamic} Never;
- localNull = self::inferredOptOutNever as{TypeError,ForDynamic} core::Null?;
+ localNull = self::inferredOptOutNever as{TypeError,ForDynamic} Null;
self::inferredOptOutNever = self::inferredOptOutNever;
inferredLocalNever = self::inferredOptOutNever;
- localNever = inferredLocalNever as{TypeError,ForDynamic} core::Null?;
- self::optOutNever = inferredLocalNever as{TypeError,ForDynamic} core::Null?;
+ localNever = inferredLocalNever as{TypeError,ForDynamic} Null;
+ self::optOutNever = inferredLocalNever as{TypeError,ForDynamic} Null;
nev::optInNever = inferredLocalNever as{TypeError,ForDynamic} Never;
- localNull = inferredLocalNever as{TypeError,ForDynamic} core::Null?;
+ localNull = inferredLocalNever as{TypeError,ForDynamic} Null;
self::inferredOptOutNever = inferredLocalNever;
inferredLocalNever = inferredLocalNever;
- self::throws(() → core::Null? => self::optOutNever = nev::throwing());
- self::throws(() → core::Null? => localNever = nev::throwing());
- self::throws(() → core::Null? => self::optOutNever = nev::throwing());
- self::throws(() → core::Null? => nev::optInNever = nev::throwing());
- self::throws(() → core::Null? => self::inferredOptOutNever = nev::throwing());
- self::throws(() → core::Null? => inferredLocalNever = nev::throwing());
- nev::BoundedGenericClass<core::Null?>* boundedGenericClass = new nev::BoundedGenericClass::•<core::Null?>();
- self::throws(() → core::Null? {
- dynamic boundedGenericMethodResult1 = nev::boundedGenericMethod1<core::Null?>();
+ self::throws(() → Null => self::optOutNever = nev::throwing());
+ self::throws(() → Null => localNever = nev::throwing());
+ self::throws(() → Null => self::optOutNever = nev::throwing());
+ self::throws(() → Null => nev::optInNever = nev::throwing());
+ self::throws(() → Null => self::inferredOptOutNever = nev::throwing());
+ self::throws(() → Null => inferredLocalNever = nev::throwing());
+ nev::BoundedGenericClass<Null>* boundedGenericClass = new nev::BoundedGenericClass::•<Null>();
+ self::throws(() → Null {
+ dynamic boundedGenericMethodResult1 = nev::boundedGenericMethod1<Null>();
});
- core::List<core::Null?>* boundedGenericMethodResult2 = nev::boundedGenericMethod2<core::Null?>();
+ core::List<Null>* boundedGenericMethodResult2 = nev::boundedGenericMethod2<Null>();
dynamic dyn = null;
nev::optInNever = dyn as{TypeError,ForDynamic} Never;
}
@@ -154,7 +154,7 @@
class A extends core::Object {
field Never neverField = throw "Should not reach here";
- field core::Null? nullField = null;
+ field Null nullField = null;
synthetic constructor •() → nev::A
: super core::Object::•()
;
@@ -163,11 +163,11 @@
get neverProperty() → Never
return throw "Should not reach here";
set neverProperty(Never value) → void {}
- method nullMethod(core::Null? value) → core::Null?
+ method nullMethod(Null value) → Null
return value;
- get nullProperty() → core::Null?
+ get nullProperty() → Null
return null;
- set nullProperty(core::Null? value) → void {}
+ set nullProperty(Null value) → void {}
}
class BoundedGenericClass<T extends Never = Never> extends core::Object {
synthetic constructor •() → nev::BoundedGenericClass<nev::BoundedGenericClass::T>
diff --git a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
index 9428bc8..34765b6 100644
--- a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
@@ -21,21 +21,21 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends nev::A {
- field core::Null? neverField = null;
- field core::Null? nullField = null;
+ field Null neverField = null;
+ field Null nullField = null;
synthetic constructor •() → self::B*
: super nev::A::•()
;
- method neverMethod(core::Null? value) → core::Null?
+ method neverMethod(Null value) → Null
return value;
- get neverProperty() → core::Null?
+ get neverProperty() → Null
return null;
- set neverProperty(core::Null? value) → void {}
- method nullMethod(core::Null? value) → core::Null?
+ set neverProperty(Null value) → void {}
+ method nullMethod(Null value) → Null
return value;
- get nullProperty() → core::Null?
+ get nullProperty() → Null
return null;
- set nullProperty(core::Null? value) → void {}
+ set nullProperty(Null value) → void {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -48,21 +48,21 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends nev::A {
- field core::Null? neverField = null;
- field core::Null? nullField = null;
+ field Null neverField = null;
+ field Null nullField = null;
synthetic constructor •() → self::C*
: super nev::A::•()
;
- method neverMethod(core::Null? value) → core::Null?
+ method neverMethod(Null value) → Null
return value;
- get neverProperty() → core::Null?
+ get neverProperty() → Null
return null;
- set neverProperty(core::Null? value) → void {}
- method nullMethod(core::Null? value) → core::Null?
+ set neverProperty(Null value) → void {}
+ method nullMethod(Null value) → Null
return value;
- get nullProperty() → core::Null?
+ get nullProperty() → Null
return null;
- set nullProperty(core::Null? value) → void {}
+ set nullProperty(Null value) → void {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -74,16 +74,16 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::Null? optOutNever;
+static field Null optOutNever;
static field dynamic inferredOptOutNever = nev::optInNever;
static method genericMethod<T extends core::Object* = dynamic>() → dynamic {}
static method main() → dynamic {
nev::optInNever = self::optOutNever;
- core::Type* typeNever = core::Null?;
- self::genericMethod<core::Null?>();
- new self::GenericClass::•<core::Null?>();
- core::Null? localNever = null;
- core::Null? localNull = null;
+ core::Type* typeNever = Null;
+ self::genericMethod<Null>();
+ new self::GenericClass::•<Null>();
+ Null localNever = null;
+ Null localNull = null;
dynamic inferredLocalNever = nev::optInNever;
localNever = localNever;
self::optOutNever = localNever;
@@ -109,29 +109,29 @@
localNull = localNull;
self::inferredOptOutNever = localNull;
inferredLocalNever = localNull;
- localNever = self::inferredOptOutNever as{TypeError,ForDynamic} core::Null?;
- self::optOutNever = self::inferredOptOutNever as{TypeError,ForDynamic} core::Null?;
+ localNever = self::inferredOptOutNever as{TypeError,ForDynamic} Null;
+ self::optOutNever = self::inferredOptOutNever as{TypeError,ForDynamic} Null;
nev::optInNever = self::inferredOptOutNever as{TypeError,ForDynamic} Never;
- localNull = self::inferredOptOutNever as{TypeError,ForDynamic} core::Null?;
+ localNull = self::inferredOptOutNever as{TypeError,ForDynamic} Null;
self::inferredOptOutNever = self::inferredOptOutNever;
inferredLocalNever = self::inferredOptOutNever;
- localNever = inferredLocalNever as{TypeError,ForDynamic} core::Null?;
- self::optOutNever = inferredLocalNever as{TypeError,ForDynamic} core::Null?;
+ localNever = inferredLocalNever as{TypeError,ForDynamic} Null;
+ self::optOutNever = inferredLocalNever as{TypeError,ForDynamic} Null;
nev::optInNever = inferredLocalNever as{TypeError,ForDynamic} Never;
- localNull = inferredLocalNever as{TypeError,ForDynamic} core::Null?;
+ localNull = inferredLocalNever as{TypeError,ForDynamic} Null;
self::inferredOptOutNever = inferredLocalNever;
inferredLocalNever = inferredLocalNever;
- self::throws(() → core::Null? => self::optOutNever = nev::throwing());
- self::throws(() → core::Null? => localNever = nev::throwing());
- self::throws(() → core::Null? => self::optOutNever = nev::throwing());
- self::throws(() → core::Null? => nev::optInNever = nev::throwing());
- self::throws(() → core::Null? => self::inferredOptOutNever = nev::throwing());
- self::throws(() → core::Null? => inferredLocalNever = nev::throwing());
- nev::BoundedGenericClass<core::Null?>* boundedGenericClass = new nev::BoundedGenericClass::•<core::Null?>();
- self::throws(() → core::Null? {
- dynamic boundedGenericMethodResult1 = nev::boundedGenericMethod1<core::Null?>();
+ self::throws(() → Null => self::optOutNever = nev::throwing());
+ self::throws(() → Null => localNever = nev::throwing());
+ self::throws(() → Null => self::optOutNever = nev::throwing());
+ self::throws(() → Null => nev::optInNever = nev::throwing());
+ self::throws(() → Null => self::inferredOptOutNever = nev::throwing());
+ self::throws(() → Null => inferredLocalNever = nev::throwing());
+ nev::BoundedGenericClass<Null>* boundedGenericClass = new nev::BoundedGenericClass::•<Null>();
+ self::throws(() → Null {
+ dynamic boundedGenericMethodResult1 = nev::boundedGenericMethod1<Null>();
});
- core::List<core::Null?>* boundedGenericMethodResult2 = nev::boundedGenericMethod2<core::Null?>();
+ core::List<Null>* boundedGenericMethodResult2 = nev::boundedGenericMethod2<Null>();
dynamic dyn = null;
nev::optInNever = dyn as{TypeError,ForDynamic} Never;
}
@@ -154,7 +154,7 @@
class A extends core::Object {
field Never neverField = throw "Should not reach here";
- field core::Null? nullField = null;
+ field Null nullField = null;
synthetic constructor •() → nev::A
: super core::Object::•()
;
@@ -163,11 +163,11 @@
get neverProperty() → Never
return throw "Should not reach here";
set neverProperty(Never value) → void {}
- method nullMethod(core::Null? value) → core::Null?
+ method nullMethod(Null value) → Null
return value;
- get nullProperty() → core::Null?
+ get nullProperty() → Null
return null;
- set nullProperty(core::Null? value) → void {}
+ set nullProperty(Null value) → void {}
}
class BoundedGenericClass<T extends Never = Never> extends core::Object {
synthetic constructor •() → nev::BoundedGenericClass<nev::BoundedGenericClass::T>
@@ -184,5 +184,5 @@
Extra constant evaluation status:
-Evaluated: TypeLiteral @ org-dartlang-testcase:///never_opt_out.dart:19:20 -> TypeLiteralConstant(Null?)
+Evaluated: TypeLiteral @ org-dartlang-testcase:///never_opt_out.dart:19:20 -> TypeLiteralConstant(Null)
Extra constant evaluation: evaluated: 136, effectively constant: 1
diff --git a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
index 06a5216..20bc8a1 100644
--- a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
@@ -247,15 +247,15 @@
uns::promotionToNever(0);
uns::promotionToNever(null);
uns::unnecessaryNullCheck(() → core::int* => 0);
- uns::unnecessaryNullCheck(() → core::Null? => null);
+ uns::unnecessaryNullCheck(() → Null => null);
self::expect(0, uns::unnecessaryIfNull(() → core::int* => 0, () → core::int* => 42));
- self::expect(42, uns::unnecessaryIfNull(() → core::Null? => null, () → core::int* => 42));
+ self::expect(42, uns::unnecessaryIfNull(() → Null => null, () → core::int* => 42));
uns::unnecessaryIfNullAssign(<core::int*>[0], () → core::int* => 42);
uns::unnecessaryIfNullAssign(<core::int*>[null], () → core::int* => 42);
uns::unnecessaryNullAwareAccess(() → core::int* => 0);
- uns::unnecessaryNullAwareAccess(() → core::Null? => null);
+ uns::unnecessaryNullAwareAccess(() → Null => null);
self::throws(() → dynamic => uns::callReturningNever(() → <BottomType>=> throw "foo"), (core::Object* e) → core::bool* => e.{core::Object::==}("foo"));
- () →* core::Null? f = () → core::Null? => null;
+ () →* Null f = () → Null => null;
self::throws(() → dynamic => uns::callReturningNever(f));
uns::switchOnEnum(#C3);
uns::switchOnEnum(#C6);
diff --git a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
index 908eb54..272a76b 100644
--- a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
@@ -247,15 +247,15 @@
uns::promotionToNever(0);
uns::promotionToNever(null);
uns::unnecessaryNullCheck(() → core::int* => 0);
- uns::unnecessaryNullCheck(() → core::Null? => null);
+ uns::unnecessaryNullCheck(() → Null => null);
self::expect(0, uns::unnecessaryIfNull(() → core::int* => 0, () → core::int* => 42));
- self::expect(42, uns::unnecessaryIfNull(() → core::Null? => null, () → core::int* => 42));
+ self::expect(42, uns::unnecessaryIfNull(() → Null => null, () → core::int* => 42));
uns::unnecessaryIfNullAssign(<core::int*>[0], () → core::int* => 42);
uns::unnecessaryIfNullAssign(<core::int*>[null], () → core::int* => 42);
uns::unnecessaryNullAwareAccess(() → core::int* => 0);
- uns::unnecessaryNullAwareAccess(() → core::Null? => null);
+ uns::unnecessaryNullAwareAccess(() → Null => null);
self::throws(() → dynamic => uns::callReturningNever(() → <BottomType>=> throw "foo"), (core::Object* e) → core::bool* => e.{core::Object::==}("foo"));
- () →* core::Null? f = () → core::Null? => null;
+ () →* Null f = () → Null => null;
self::throws(() → dynamic => uns::callReturningNever(f));
uns::switchOnEnum(#C3);
uns::switchOnEnum(#C6);
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.outline.expect
index 8a420c1..bc566ba 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.outline.expect
@@ -43,7 +43,7 @@
;
set foo(core::num* value) → void
;
- get bar() → core::Null?
+ get bar() → Null
;
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -70,8 +70,8 @@
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder get bar() → core::Null?
- return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#bar, 1, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))) as{TypeError,ForDynamic} core::Null?;
+ no-such-method-forwarder get bar() → Null
+ return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#bar, 1, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))) as{TypeError,ForDynamic} Null;
no-such-method-forwarder set foo(core::num* value) → void
return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#foo=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{})));
}
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.expect
index d9f1769..297ab3b 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.expect
@@ -43,7 +43,7 @@
: super core::Object::•()
;
set foo(core::num* value) → void {}
- get bar() → core::Null?
+ get bar() → Null
return null;
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -71,8 +71,8 @@
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder get bar() → core::Null?
- return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::Null?;
+ no-such-method-forwarder get bar() → Null
+ return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} Null;
no-such-method-forwarder set foo(core::num* value) → void
return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
}
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect
index d9f1769..297ab3b 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect
@@ -43,7 +43,7 @@
: super core::Object::•()
;
set foo(core::num* value) → void {}
- get bar() → core::Null?
+ get bar() → Null
return null;
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -71,8 +71,8 @@
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder get bar() → core::Null?
- return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::Null?;
+ no-such-method-forwarder get bar() → Null
+ return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} Null;
no-such-method-forwarder set foo(core::num* value) → void
return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
}
diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart b/pkg/front_end/testcases/none/mixin_covariant.dart
new file mode 100644
index 0000000..8454114
--- /dev/null
+++ b/pkg/front_end/testcases/none/mixin_covariant.dart
@@ -0,0 +1,53 @@
+// Copyright (c) 2020, 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.
+
+class Superclass {
+ String method1(num argument1, num argument2) => "Superclass";
+ String method2(num argument1, num argument2) => "Superclass";
+ String method3(num argument1, covariant int argument2) => "Superclass";
+ String method4(num argument1, covariant num argument2) => "Superclass";
+}
+
+class Mixin {
+ String method1(num argument1, num argument2) => "Mixin";
+ String method2(covariant int argument1, num argument2) => "Mixin";
+ String method3(num argument1, num argument2) => "Mixin";
+ String method4(covariant int argument1, int argument2) => "Mixin";
+}
+
+class Class extends Superclass with Mixin {}
+
+main() {
+ Class c = new Class();
+ expect("Mixin", c.method1(0, 1));
+ expect("Mixin", c.method2(0, 1));
+ expect("Mixin", c.method3(0, 1));
+ expect("Mixin", c.method4(0, 1));
+
+ Superclass s = c;
+ expect("Mixin", s.method1(0.5, 1.5));
+ throws(() => s.method2(0.5, 1.5));
+ expect("Mixin", s.method3(0.5, 1));
+ throws(() => s.method4(0.5, 1));
+ expect("Mixin", s.method4(1, 0.5));
+
+ Mixin m = c;
+ expect("Mixin", m.method1(0, 1));
+ expect("Mixin", m.method2(0, 1));
+ expect("Mixin", m.method3(0, 1));
+ expect("Mixin", m.method4(0, 1));
+}
+
+void expect(expected, actual) {
+ if (expected != actual) throw 'Expected $expected, actual $actual';
+}
+
+void throws(void Function() f) {
+ try {
+ f();
+ } catch (_) {
+ return;
+ }
+ throw 'Expected exception';
+}
diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.outline.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.outline.expect
new file mode 100644
index 0000000..a0757dd
--- /dev/null
+++ b/pkg/front_end/testcases/none/mixin_covariant.dart.outline.expect
@@ -0,0 +1,48 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Superclass extends core::Object {
+ synthetic constructor •() → self::Superclass
+ ;
+ method method1(core::num argument1, core::num argument2) → core::String
+ ;
+ method method2(core::num argument1, core::num argument2) → core::String
+ ;
+ method method3(core::num argument1, covariant core::int argument2) → core::String
+ ;
+ method method4(core::num argument1, covariant core::num argument2) → core::String
+ ;
+}
+class Mixin extends core::Object {
+ synthetic constructor •() → self::Mixin
+ ;
+ method method1(core::num argument1, core::num argument2) → core::String
+ ;
+ method method2(covariant core::int argument1, core::num argument2) → core::String
+ ;
+ method method3(core::num argument1, core::num argument2) → core::String
+ ;
+ method method4(covariant core::int argument1, core::int argument2) → core::String
+ ;
+}
+abstract class _Class&Superclass&Mixin = self::Superclass with self::Mixin /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_Class&Superclass&Mixin
+ : super self::Superclass::•()
+ ;
+ abstract forwarding-stub method method2(covariant core::num argument1, core::num argument2) → core::String;
+ forwarding-stub method method3(core::num argument1, covariant core::num argument2) → core::String
+ return super.{self::Superclass::method3}(argument1, argument2);
+ forwarding-stub method method4(covariant core::num argument1, covariant core::num argument2) → core::String
+ return super.{self::Superclass::method4}(argument1, argument2);
+}
+class Class extends self::_Class&Superclass&Mixin {
+ synthetic constructor •() → self::Class
+ ;
+}
+static method main() → dynamic
+ ;
+static method expect(dynamic expected, dynamic actual) → void
+ ;
+static method throws(() → void f) → void
+ ;
diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.strong.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.strong.expect
new file mode 100644
index 0000000..412bbf0
--- /dev/null
+++ b/pkg/front_end/testcases/none/mixin_covariant.dart.strong.expect
@@ -0,0 +1,76 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Superclass extends core::Object {
+ synthetic constructor •() → self::Superclass
+ : super core::Object::•()
+ ;
+ method method1(core::num argument1, core::num argument2) → core::String
+ return "Superclass";
+ method method2(core::num argument1, core::num argument2) → core::String
+ return "Superclass";
+ method method3(core::num argument1, covariant core::int argument2) → core::String
+ return "Superclass";
+ method method4(core::num argument1, covariant core::num argument2) → core::String
+ return "Superclass";
+}
+class Mixin extends core::Object {
+ synthetic constructor •() → self::Mixin
+ : super core::Object::•()
+ ;
+ method method1(core::num argument1, core::num argument2) → core::String
+ return "Mixin";
+ method method2(covariant core::int argument1, core::num argument2) → core::String
+ return "Mixin";
+ method method3(core::num argument1, core::num argument2) → core::String
+ return "Mixin";
+ method method4(covariant core::int argument1, core::int argument2) → core::String
+ return "Mixin";
+}
+abstract class _Class&Superclass&Mixin = self::Superclass with self::Mixin /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_Class&Superclass&Mixin
+ : super self::Superclass::•()
+ ;
+ abstract forwarding-stub method method2(covariant core::num argument1, core::num argument2) → core::String;
+ forwarding-stub method method3(core::num argument1, covariant core::num argument2) → core::String
+ return super.{self::Superclass::method3}(argument1, argument2);
+ forwarding-stub method method4(covariant core::num argument1, covariant core::num argument2) → core::String
+ return super.{self::Superclass::method4}(argument1, argument2);
+}
+class Class extends self::_Class&Superclass&Mixin {
+ synthetic constructor •() → self::Class
+ : super self::_Class&Superclass&Mixin::•()
+ ;
+}
+static method main() → dynamic {
+ self::Class c = new self::Class::•();
+ self::expect("Mixin", c.{self::Mixin::method1}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method2}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method3}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method4}(0, 1));
+ self::Superclass s = c;
+ self::expect("Mixin", s.{self::Superclass::method1}(0.5, 1.5));
+ self::throws(() → void => s.{self::Superclass::method2}(0.5, 1.5));
+ self::expect("Mixin", s.{self::Superclass::method3}(0.5, 1));
+ self::throws(() → void => s.{self::Superclass::method4}(0.5, 1));
+ self::expect("Mixin", s.{self::Superclass::method4}(1, 0.5));
+ self::Mixin m = c;
+ self::expect("Mixin", m.{self::Mixin::method1}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method2}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method3}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method4}(0, 1));
+}
+static method expect(dynamic expected, dynamic actual) → void {
+ if(!expected.{core::Object::==}(actual))
+ throw "Expected ${expected}, actual ${actual}";
+}
+static method throws(() → void f) → void {
+ try {
+ f.call();
+ }
+ on core::Object catch(final core::Object _) {
+ return;
+ }
+ throw "Expected exception";
+}
diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline.expect
new file mode 100644
index 0000000..6f22d96
--- /dev/null
+++ b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline.expect
@@ -0,0 +1,19 @@
+class Superclass {
+ String method1(num argument1, num argument2) => "Superclass";
+ String method2(num argument1, num argument2) => "Superclass";
+ String method3(num argument1, covariant int argument2) => "Superclass";
+ String method4(num argument1, covariant num argument2) => "Superclass";
+}
+
+class Mixin {
+ String method1(num argument1, num argument2) => "Mixin";
+ String method2(covariant int argument1, num argument2) => "Mixin";
+ String method3(num argument1, num argument2) => "Mixin";
+ String method4(covariant int argument1, int argument2) => "Mixin";
+}
+
+class Class extends Superclass with Mixin {}
+
+main() {}
+void expect(expected, actual) {}
+void throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..9f3d0b4
--- /dev/null
+++ b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline_modelled.expect
@@ -0,0 +1,19 @@
+class Class extends Superclass with Mixin {}
+
+class Mixin {
+ String method1(num argument1, num argument2) => "Mixin";
+ String method2(covariant int argument1, num argument2) => "Mixin";
+ String method3(num argument1, num argument2) => "Mixin";
+ String method4(covariant int argument1, int argument2) => "Mixin";
+}
+
+class Superclass {
+ String method1(num argument1, num argument2) => "Superclass";
+ String method2(num argument1, num argument2) => "Superclass";
+ String method3(num argument1, covariant int argument2) => "Superclass";
+ String method4(num argument1, covariant num argument2) => "Superclass";
+}
+
+main() {}
+void expect(expected, actual) {}
+void throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.expect
new file mode 100644
index 0000000..412bbf0
--- /dev/null
+++ b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.expect
@@ -0,0 +1,76 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Superclass extends core::Object {
+ synthetic constructor •() → self::Superclass
+ : super core::Object::•()
+ ;
+ method method1(core::num argument1, core::num argument2) → core::String
+ return "Superclass";
+ method method2(core::num argument1, core::num argument2) → core::String
+ return "Superclass";
+ method method3(core::num argument1, covariant core::int argument2) → core::String
+ return "Superclass";
+ method method4(core::num argument1, covariant core::num argument2) → core::String
+ return "Superclass";
+}
+class Mixin extends core::Object {
+ synthetic constructor •() → self::Mixin
+ : super core::Object::•()
+ ;
+ method method1(core::num argument1, core::num argument2) → core::String
+ return "Mixin";
+ method method2(covariant core::int argument1, core::num argument2) → core::String
+ return "Mixin";
+ method method3(core::num argument1, core::num argument2) → core::String
+ return "Mixin";
+ method method4(covariant core::int argument1, core::int argument2) → core::String
+ return "Mixin";
+}
+abstract class _Class&Superclass&Mixin = self::Superclass with self::Mixin /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_Class&Superclass&Mixin
+ : super self::Superclass::•()
+ ;
+ abstract forwarding-stub method method2(covariant core::num argument1, core::num argument2) → core::String;
+ forwarding-stub method method3(core::num argument1, covariant core::num argument2) → core::String
+ return super.{self::Superclass::method3}(argument1, argument2);
+ forwarding-stub method method4(covariant core::num argument1, covariant core::num argument2) → core::String
+ return super.{self::Superclass::method4}(argument1, argument2);
+}
+class Class extends self::_Class&Superclass&Mixin {
+ synthetic constructor •() → self::Class
+ : super self::_Class&Superclass&Mixin::•()
+ ;
+}
+static method main() → dynamic {
+ self::Class c = new self::Class::•();
+ self::expect("Mixin", c.{self::Mixin::method1}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method2}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method3}(0, 1));
+ self::expect("Mixin", c.{self::_Class&Superclass&Mixin::method4}(0, 1));
+ self::Superclass s = c;
+ self::expect("Mixin", s.{self::Superclass::method1}(0.5, 1.5));
+ self::throws(() → void => s.{self::Superclass::method2}(0.5, 1.5));
+ self::expect("Mixin", s.{self::Superclass::method3}(0.5, 1));
+ self::throws(() → void => s.{self::Superclass::method4}(0.5, 1));
+ self::expect("Mixin", s.{self::Superclass::method4}(1, 0.5));
+ self::Mixin m = c;
+ self::expect("Mixin", m.{self::Mixin::method1}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method2}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method3}(0, 1));
+ self::expect("Mixin", m.{self::Mixin::method4}(0, 1));
+}
+static method expect(dynamic expected, dynamic actual) → void {
+ if(!expected.{core::Object::==}(actual))
+ throw "Expected ${expected}, actual ${actual}";
+}
+static method throws(() → void f) → void {
+ try {
+ f.call();
+ }
+ on core::Object catch(final core::Object _) {
+ return;
+ }
+ throw "Expected exception";
+}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.expect
index d9547c4..4cacf98 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.expect
@@ -2,12 +2,12 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
// - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
// FutureOr<AAlias> foLegacyNonNullable = null; // error
// ^
//
-// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
// - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
// FutureOr<AAliasNonNullable> foNonNullable = null; // error
// ^
@@ -21,12 +21,12 @@
typedef AAliasNonNullable = opt::A;
typedef AAliasNullable = opt::A?;
static method test() → dynamic {
- FutureOr<opt::A>foLegacyNonNullable = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+ FutureOr<opt::A>foLegacyNonNullable = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
- 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
FutureOr<AAlias> foLegacyNonNullable = null; // error
^" in null as{TypeError,ForNonNullableByDefault} FutureOr<opt::A>;
FutureOr<opt::A?>foLegacyNullable = null;
- FutureOr<opt::A>foNonNullable = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+ FutureOr<opt::A>foNonNullable = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
- 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
FutureOr<AAliasNonNullable> foNonNullable = null; // error
^" in null as{TypeError,ForNonNullableByDefault} FutureOr<opt::A>;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.transformed.expect
index d3ace70..704fde7 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.weak.transformed.expect
@@ -2,12 +2,12 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
// - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
// FutureOr<AAlias> foLegacyNonNullable = null; // error
// ^
//
-// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+// pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
// - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
// FutureOr<AAliasNonNullable> foNonNullable = null; // error
// ^
@@ -21,12 +21,12 @@
typedef AAliasNonNullable = opt::A;
typedef AAliasNullable = opt::A?;
static method test() → dynamic {
- FutureOr<opt::A>foLegacyNonNullable = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+ FutureOr<opt::A>foLegacyNonNullable = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
- 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
FutureOr<AAlias> foLegacyNonNullable = null; // error
^" in null;
FutureOr<opt::A?>foLegacyNullable = null;
- FutureOr<opt::A>foNonNullable = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'A' isn't.
+ FutureOr<opt::A>foNonNullable = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: A value of type 'Null' can't be assigned to a variable of type 'FutureOr<A>' because 'Null' is nullable and 'FutureOr<A>' isn't.
- 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
FutureOr<AAliasNonNullable> foNonNullable = null; // error
^" in null;
diff --git a/pkg/front_end/testcases/outline.status b/pkg/front_end/testcases/outline.status
index 532869a..8ddb02d 100644
--- a/pkg/front_end/testcases/outline.status
+++ b/pkg/front_end/testcases/outline.status
@@ -23,6 +23,7 @@
general/issue41210a: TypeCheckError
general/issue41210b/issue41210: TypeCheckError
general/mixin_application_override: TypeCheckError
+general/mixin_covariant2: TypeCheckError
general/override_check_accessor_after_inference: TypeCheckError
general/override_check_accessor_basic: TypeCheckError
general/override_check_accessor_with_covariant_modifier: TypeCheckError
@@ -47,6 +48,7 @@
nnbd/covariant_late_field: TypeCheckError
nnbd/getter_vs_setter_type: TypeCheckError
nnbd/issue42603: TypeCheckError
+none/mixin_covariant: TypeCheckError
rasta/native_is_illegal: Pass # Issue 29763
runtime_checks_new/mixin_forwarding_stub_field: TypeCheckError
runtime_checks_new/mixin_forwarding_stub_setter: TypeCheckError
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.strong.expect
index 2130845..bfd2076 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {
- function f() → core::Null? {
+ function f() → Null {
core::print("hello");
}
f.call();
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.strong.transformed.expect
index 2130845..bfd2076 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {
- function f() → core::Null? {
+ function f() → Null {
core::print("hello");
}
f.call();
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect
index 9fbd201..9e77b8e 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect
@@ -11,7 +11,7 @@
constructor empty() → self::A<self::A::N*, self::A::S*, self::A::U*>*
;
const constructor c(self::A::U* u, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
- : self::A::field = const <core::Null?>[null], super core::Object::•()
+ : self::A::field = const <Null>[null], super core::Object::•()
;
static factory f<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic>(self::A::f::S* s) → self::A<self::A::f::N*, self::A::f::S*, self::A::f::U*>*
;
@@ -53,5 +53,5 @@
Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///issue_000070.dart:22:33 -> ListConstant(const <Null?>[null])
+Evaluated: ListLiteral @ org-dartlang-testcase:///issue_000070.dart:22:33 -> ListConstant(const <Null>[null])
Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect
index 98c4bca..2d43401 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect
@@ -66,6 +66,6 @@
constants {
#C1 = null
- #C2 = <core::Null?>[#C1]
+ #C2 = <Null>[#C1]
#C3 = self::A<core::int*, core::int*, core::List<dynamic>*> {field:#C2}
}
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
index e4737bd..b0d7301 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
@@ -66,6 +66,6 @@
constants {
#C1 = null
- #C2 = <core::Null?>[#C1]
+ #C2 = <Null>[#C1]
#C3 = self::A<core::int*, core::int*, core::List<dynamic>*> {field:#C2}
}
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.strong.expect
index bf1076a..a132ec8 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.strong.expect
@@ -30,6 +30,6 @@
}
static method main() → dynamic {
core::print(new self::Sub::•().{self::Sub::hashCode});
- core::List<core::Null?>* l = <core::Null?>[null];
- let final core::List<core::Null?>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3).{core::Object::==}(null) ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} core::Null?) : null;
+ core::List<Null>* l = <Null>[null];
+ let final core::List<Null>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3).{core::Object::==}(null) ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} Null) : null;
}
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect
index 8b6d4d8..501253f 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect
@@ -30,8 +30,8 @@
}
static method main() → dynamic {
core::print(new self::Sub::•().{self::Sub::hashCode});
- core::List<core::Null?>* l = <core::Null?>[null];
- let final core::List<core::Null?>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3).{core::Object::==}(null) ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} core::Null?) : null;
+ core::List<Null>* l = <Null>[null];
+ let final core::List<Null>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3).{core::Object::==}(null) ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} Null) : null;
}
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.strong.expect b/pkg/front_end/testcases/regress/issue_29937.dart.strong.expect
index c6c6d4d..07a6b9a7 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.strong.expect
@@ -7,8 +7,7 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method main() → dynamic {
- <() →* core::Null?>[let final () →* core::Null? f = () → core::Null? {} in f];
+ <() →* Null>[let final () →* Null f = () → Null {} in f];
}
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect
index c6c6d4d..07a6b9a7 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect
@@ -7,8 +7,7 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method main() → dynamic {
- <() →* core::Null?>[let final () →* core::Null? f = () → core::Null? {} in f];
+ <() →* Null>[let final () →* Null f = () → Null {} in f];
}
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect b/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
index a052ac0..f545925 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
@@ -12,8 +12,7 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method main() → dynamic {}
static method f() → dynamic
- return let final () →* core::Null? h = () → core::Null? => null in h;
+ return let final () →* Null h = () → Null => null in h;
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_29942.dart.strong.transformed.expect
index a052ac0..f545925 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.strong.transformed.expect
@@ -12,8 +12,7 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method main() → dynamic {}
static method f() → dynamic
- return let final () →* core::Null? h = () → core::Null? => null in h;
+ return let final () →* Null h = () → Null => null in h;
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.strong.expect b/pkg/front_end/testcases/regress/issue_29978.dart.strong.expect
index 86dc966..a166dcf 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.strong.expect
@@ -7,10 +7,9 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method foo(dynamic a, dynamic b) → dynamic
return null;
static method main() → dynamic {
- self::foo(null, let final () →* core::Null? f = () → core::Null? {} in f);
+ self::foo(null, let final () →* Null f = () → Null {} in f);
}
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_29978.dart.strong.transformed.expect
index 86dc966..a166dcf 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.strong.transformed.expect
@@ -7,10 +7,9 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method foo(dynamic a, dynamic b) → dynamic
return null;
static method main() → dynamic {
- self::foo(null, let final () →* core::Null? f = () → core::Null? {} in f);
+ self::foo(null, let final () →* Null f = () → Null {} in f);
}
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart.strong.expect b/pkg/front_end/testcases/regress/issue_29979.dart.strong.expect
index df04eff..aee80bb 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.dart.strong.expect
@@ -7,8 +7,7 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method main() → dynamic {
- (let final () →* core::Null? f = () → core::Null? {} in f).call();
+ (let final () →* Null f = () → Null {} in f).call();
}
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_29979.dart.strong.transformed.expect
index df04eff..aee80bb 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.dart.strong.transformed.expect
@@ -7,8 +7,7 @@
// ^
//
import self as self;
-import "dart:core" as core;
static method main() → dynamic {
- (let final () →* core::Null? f = () → core::Null? {} in f).call();
+ (let final () →* Null f = () → Null {} in f).call();
}
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.strong.expect b/pkg/front_end/testcases/regress/issue_31766.dart.strong.expect
index 00428db..84f19bf 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.strong.expect
@@ -24,7 +24,7 @@
core::print("t.foo()=${t.{self::A::foo}()}");
}
bar.call<self::A*>(new self::A::•());
- (<S extends self::A* = self::A*>(S* s) → core::Null? {
+ (<S extends self::A* = self::A*>(S* s) → Null {
core::print("s.foo()=${s.{self::A::foo}()}");
}).call<self::A*>(new self::A::•());
}
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_31766.dart.strong.transformed.expect
index 00428db..84f19bf 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
core::print("t.foo()=${t.{self::A::foo}()}");
}
bar.call<self::A*>(new self::A::•());
- (<S extends self::A* = self::A*>(S* s) → core::Null? {
+ (<S extends self::A* = self::A*>(S* s) → Null {
core::print("s.foo()=${s.{self::A::foo}()}");
}).call<self::A*>(new self::A::•());
}
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.strong.expect b/pkg/front_end/testcases/regress/issue_31846.dart.strong.expect
index a9152eb..46e374c 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.strong.expect
@@ -8,7 +8,7 @@
core::print((<T extends core::num* = core::num*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
- core::print((<T extends (T*) →* dynamic = (core::Null?) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType});
+ core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::List<core::List<T*>*>* = core::List<core::List<dynamic>*>*>(T* x) → T* => x).{core::Object::runtimeType});
}
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_31846.dart.strong.transformed.expect
index 14ec668..27bf019 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.strong.transformed.expect
@@ -8,7 +8,7 @@
core::print((<T extends core::num* = core::num*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
- core::print((<T extends (T*) →* dynamic = (core::Null?) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType});
+ core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::List<core::List<T*>*>* = core::List<core::List<dynamic>*>*>(T* x) → T* => x).{core::Object::runtimeType});
}
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.strong.expect b/pkg/front_end/testcases/regress/issue_39040.dart.strong.expect
index 828cbd5..ccb6dec 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.strong.expect
@@ -17,7 +17,7 @@
#L3:
case #C2:
{
- (() → core::Null? {
+ (() → Null {
switch(inner) {
#L4:
case #C1:
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect
index 828cbd5..ccb6dec 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect
@@ -17,7 +17,7 @@
#L3:
case #C2:
{
- (() → core::Null? {
+ (() → Null {
switch(inner) {
#L4:
case #C1:
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.strong.expect b/pkg/front_end/testcases/regress/issue_42423.dart.strong.expect
index d0a3c7c..4f27b66 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.strong.expect
@@ -42,14 +42,14 @@
}
static method main() → dynamic {
dynamic stringList = <core::String*>["string"];
- exp::Expect::throwsTypeError(() → core::Null? {
+ exp::Expect::throwsTypeError(() → Null {
self::test1(stringList);
});
- exp::Expect::throwsTypeError(() → core::Null? {
+ exp::Expect::throwsTypeError(() → Null {
self::test2(stringList);
});
dynamic stringMap = <core::String*, core::String*>{"a": "b"};
- exp::Expect::throwsTypeError(() → core::Null? {
+ exp::Expect::throwsTypeError(() → Null {
self::test3(stringMap);
});
}
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect
index 68f6106..c5501c9 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect
@@ -57,14 +57,14 @@
}
static method main() → dynamic {
dynamic stringList = <core::String*>["string"];
- exp::Expect::throwsTypeError(() → core::Null? {
+ exp::Expect::throwsTypeError(() → Null {
self::test1(stringList);
});
- exp::Expect::throwsTypeError(() → core::Null? {
+ exp::Expect::throwsTypeError(() → Null {
self::test2(stringList);
});
dynamic stringMap = <core::String*, core::String*>{"a": "b"};
- exp::Expect::throwsTypeError(() → core::Null? {
+ exp::Expect::throwsTypeError(() → Null {
self::test3(stringMap);
});
}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.expect
index 051b376..86eda63 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.expect
@@ -20,7 +20,7 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method g(self::C<core::num*>* c) → void {
- c.{self::C::f}<(core::Object*) →* void>((core::Object* o) → core::Null? {});
+ c.{self::C::f}<(core::Object*) →* void>((core::Object* o) → Null {});
}
static method test() → void {
self::g(new self::C::•<core::int*>());
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.transformed.expect
index 051b376..86eda63 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.strong.transformed.expect
@@ -20,7 +20,7 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method g(self::C<core::num*>* c) → void {
- c.{self::C::f}<(core::Object*) →* void>((core::Object* o) → core::Null? {});
+ c.{self::C::f}<(core::Object*) →* void>((core::Object* o) → Null {});
}
static method test() → void {
self::g(new self::C::•<core::int*>());
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect
index bec3c2e..fcd72a0 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = (core::Null?) →* void> extends core::Object {
+class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::B<self::B::T*, self::B::U*>*
;
operator +(dynamic other) → self::B<self::B::T*, (self::B::T*) →* void>*
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.expect
index 9b11bf0c..3bb4b53 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = (core::Null?) →* void> extends core::Object {
+class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::B<self::B::T*, self::B::U*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.transformed.expect
index 4656a41..f94a84b 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = (core::Null?) →* void> extends core::Object {
+class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::B<self::B::T*, self::B::U*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.expect
index 408ea27..e5ff096 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.expect
@@ -85,7 +85,7 @@
^" in (#t1.{self::D::value}.{self::C::+}(1) as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
self::expect(let final self::D* #t3 = d in let final core::int* #t4 = 0 in #t3.{self::D::setValue}.call(#t4), 1);
d = new self::D::•(new self::C::•<core::num*>(#C2));
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
let final self::D* #t5 = d in #t5.{self::D::value} = let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
d.value /*@ checkReturn=(num*) ->* num* */ += 1;
^" in (#t5.{self::D::value}.{self::C::+}(1) as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.transformed.expect
index 7907879..909cbfa 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.strong.transformed.expect
@@ -85,7 +85,7 @@
^" in (#t1.{self::D::value}.{self::C::+}(1) as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
self::expect(let final self::D* #t3 = d in let final core::int* #t4 = 0 in #t3.{self::D::setValue}.call(#t4), 1);
d = new self::D::•(new self::C::•<core::num*>(#C2));
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
let final self::D* #t5 = d in #t5.{self::D::value} = let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
d.value /*@ checkReturn=(num*) ->* num* */ += 1;
^" in (#t5.{self::D::value}.{self::C::+}(1) as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect
index 4f7989a..6b59110 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect
@@ -102,12 +102,12 @@
}
}
static method test(self::I<core::Object*>* i) → void {
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
i.{self::I::x} = "hello";
});
i.{self::I::x} = 1;
self::expect(i.{self::I::x}, 1);
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
i.{self::I::y} = "hello";
});
i.{self::I::y} = 2;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect
index b8a30d8..48bd4ce 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect
@@ -111,12 +111,12 @@
}
}
static method test(self::I<core::Object*>* i) → void {
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
i.{self::I::x} = "hello";
});
i.{self::I::x} = 2;
self::expect(i.{self::I::x}, 1);
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
i.{self::I::y} = "hello";
});
i.{self::I::y} = 4;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.expect
index e26385d..ac79e6e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.expect
@@ -61,11 +61,11 @@
c.{self::C::f}("hello");
}
static method test(self::C* c, self::I* i) → void {
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
i.{self::I::f}("hello");
});
self::expect(i.{self::I::f}(1), 2);
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
c.{self::C::f}("hello");
});
self::expect(c.{self::C::f}(1), 2);
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.transformed.expect
index e26385d..ac79e6e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.strong.transformed.expect
@@ -61,11 +61,11 @@
c.{self::C::f}("hello");
}
static method test(self::C* c, self::I* i) → void {
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
i.{self::I::f}("hello");
});
self::expect(i.{self::I::f}(1), 2);
- self::expectTypeError(() → core::Null? {
+ self::expectTypeError(() → Null {
c.{self::C::f}("hello");
});
self::expect(c.{self::C::f}(1), 2);
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index 674fd31..8df4cda 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -78,6 +78,7 @@
general/mixin_application_override: ExpectationFileMismatch # Too many errors.
general/mixin_application_override: TypeCheckError
general/mixin_constructors_with_default_values: RuntimeError # Expected
+general/mixin_covariant2: TypeCheckError
general/operator_method_not_found: RuntimeError # Expected
general/optional: TypeCheckError
general/override_check_accessor_after_inference: TypeCheckError # Issue #31620
@@ -174,6 +175,7 @@
nnbd/nullable_object_access: TypeCheckError
nnbd/nullable_receiver: TypeCheckError
nnbd/potentially_nullable_access: TypeCheckError
+none/mixin_covariant: TypeCheckError
rasta/abstract_constructor: RuntimeError
rasta/bad_constructor_redirection: RuntimeError
rasta/bad_continue: RuntimeError
diff --git a/pkg/front_end/testcases/text_serialization.status b/pkg/front_end/testcases/text_serialization.status
index 3605015..20825b3 100644
--- a/pkg/front_end/testcases/text_serialization.status
+++ b/pkg/front_end/testcases/text_serialization.status
@@ -81,6 +81,7 @@
general/micro: RuntimeError
general/mixin_application_override: TypeCheckError
general/mixin_constructors_with_default_values: RuntimeError
+general/mixin_covariant2: TypeCheckError
general/operator_method_not_found: RuntimeError
general/optional: TypeCheckError
general/override_check_accessor_after_inference: TypeCheckError # Issue #31620
@@ -176,6 +177,7 @@
nnbd/nullable_object_access: TypeCheckError
nnbd/nullable_receiver: TypeCheckError
nnbd/potentially_nullable_access: TypeCheckError
+none/mixin_covariant: TypeCheckError
rasta/abstract_constructor: RuntimeError
rasta/bad_constructor_redirection: RuntimeError
rasta/bad_continue: RuntimeError
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.outline.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.outline.expect
index 3d8af13..a46c9ef 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.outline.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.outline.expect
@@ -36,12 +36,12 @@
static field core::Map<dynamic, core::int*>* map10;
static field core::Map<dynamic, core::int*>* map11;
static field core::Map<core::int*, core::int*>* map12;
-static field core::Map<dynamic, core::Null?>* error4;
-static field core::Map<dynamic, core::Null?>* error5;
+static field core::Map<dynamic, Null>* error4;
+static field core::Map<dynamic, Null>* error5;
static field dynamic error6;
static field dynamic error7;
-static field core::Map<dynamic, core::Null?>* error8;
-static field core::Map<dynamic, core::Null?>* error9;
+static field core::Map<dynamic, Null>* error8;
+static field core::Map<dynamic, Null>* error9;
static field dynamic error10;
static field dynamic error11;
static field dynamic error12;
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.expect
index 6852242..9a51fe1 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.expect
@@ -146,10 +146,10 @@
for (final core::MapEntry<core::int*, core::int*>* #t21 in <core::int*, core::int*>{0: 1}.{core::Map::entries})
#t20.{core::Map::[]=}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
} =>#t20;
-static field core::Map<dynamic, core::Null?>* error4 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error4 = {if (b) 0: 1 else for (var a in list) a};
^": null};
-static field core::Map<dynamic, core::Null?>* error5 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error5 = {if (b) for (var a in list) a else 0: 1};
^": null};
static field dynamic error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
@@ -158,10 +158,10 @@
static field dynamic error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error7 = {
^";
-static field core::Map<dynamic, core::Null?>* error8 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
^": null};
-static field core::Map<dynamic, core::Null?>* error9 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
^": null};
static field dynamic error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.transformed.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.transformed.expect
index 819c6c1..dd3b4fe 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.transformed.expect
@@ -200,10 +200,10 @@
}
}
} =>#t20;
-static field core::Map<dynamic, core::Null?>* error4 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error4 = {if (b) 0: 1 else for (var a in list) a};
^": null};
-static field core::Map<dynamic, core::Null?>* error5 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error5 = {if (b) for (var a in list) a else 0: 1};
^": null};
static field dynamic error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
@@ -212,10 +212,10 @@
static field dynamic error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error7 = {
^";
-static field core::Map<dynamic, core::Null?>* error8 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
^": null};
-static field core::Map<dynamic, core::Null?>* error9 = <dynamic, core::Null?>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
^": null};
static field dynamic error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
diff --git a/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.expect b/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.expect
index 183b9bb..4b64468 100644
--- a/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.expect
+++ b/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.expect
@@ -167,7 +167,7 @@
static method main() → dynamic {
self::A<core::int*, core::num*, core::String*>* a = new self::A::•<core::int*, core::num*, core::String*>();
self::expect(null, a.{self::A::field});
- a.{self::A::method}(3, (core::num* num) → core::Null? {}, "test");
+ a.{self::A::method}(3, (core::num* num) → Null {}, "test");
a.{self::A::method2}(3);
a.{self::A::x} = 3;
core::Map<core::num*, self::Contravariant<core::String*>*>* mapContra = a.{self::A::mapContra} as{TypeError,CovarianceCheck} core::Map<core::num*, self::Contravariant<core::String*>*>*;
@@ -183,7 +183,7 @@
self::expect(null, c.{self::C::field});
c.{self::C::method}(3, 2);
c.{self::C::x} = 3;
- self::D<core::Object*>* d = new self::F::•<core::String*>((core::String* s) → core::Null? {});
+ self::D<core::Object*>* d = new self::F::•<core::String*>((core::String* s) → Null {});
d.{self::D::method}("test");
self::NoSuchMethod<core::num*>* nsm = new self::NoSuchMethod::•<core::num*>();
self::expect(3, nsm.{self::B::method}(3));
diff --git a/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect b/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect
index 183b9bb..4b64468 100644
--- a/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect
@@ -167,7 +167,7 @@
static method main() → dynamic {
self::A<core::int*, core::num*, core::String*>* a = new self::A::•<core::int*, core::num*, core::String*>();
self::expect(null, a.{self::A::field});
- a.{self::A::method}(3, (core::num* num) → core::Null? {}, "test");
+ a.{self::A::method}(3, (core::num* num) → Null {}, "test");
a.{self::A::method2}(3);
a.{self::A::x} = 3;
core::Map<core::num*, self::Contravariant<core::String*>*>* mapContra = a.{self::A::mapContra} as{TypeError,CovarianceCheck} core::Map<core::num*, self::Contravariant<core::String*>*>*;
@@ -183,7 +183,7 @@
self::expect(null, c.{self::C::field});
c.{self::C::method}(3, 2);
c.{self::C::x} = 3;
- self::D<core::Object*>* d = new self::F::•<core::String*>((core::String* s) → core::Null? {});
+ self::D<core::Object*>* d = new self::F::•<core::String*>((core::String* s) → Null {});
d.{self::D::method}("test");
self::NoSuchMethod<core::num*>* nsm = new self::NoSuchMethod::•<core::num*>();
self::expect(3, nsm.{self::B::method}(3));
diff --git a/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.expect b/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.expect
index fcc030b..d9a2571 100644
--- a/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.expect
@@ -53,8 +53,8 @@
static method main() → dynamic {
self::Covariant<dynamic>* cov = new self::Covariant::•<dynamic>();
self::covariantListInfer<dynamic>(new self::Covariant::•<core::List<dynamic>*>());
- self::Contravariant<core::Null?>* contra = new self::Contravariant::•<core::Null?>();
- self::contravariantListInfer<core::Null?>(new self::Contravariant::•<core::List<core::Null?>*>());
+ self::Contravariant<Null>* contra = new self::Contravariant::•<Null>();
+ self::contravariantListInfer<Null>(new self::Contravariant::•<core::List<Null>*>());
self::Invariant<dynamic>* inv = new self::Invariant::•<dynamic>();
- self::invariantListInfer<core::Null?>(new self::Invariant::•<core::List<core::Null?>*>());
+ self::invariantListInfer<Null>(new self::Invariant::•<core::List<Null>*>());
}
diff --git a/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.transformed.expect
index fcc030b..d9a2571 100644
--- a/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/variance/unconstrained_inference.dart.strong.transformed.expect
@@ -53,8 +53,8 @@
static method main() → dynamic {
self::Covariant<dynamic>* cov = new self::Covariant::•<dynamic>();
self::covariantListInfer<dynamic>(new self::Covariant::•<core::List<dynamic>*>());
- self::Contravariant<core::Null?>* contra = new self::Contravariant::•<core::Null?>();
- self::contravariantListInfer<core::Null?>(new self::Contravariant::•<core::List<core::Null?>*>());
+ self::Contravariant<Null>* contra = new self::Contravariant::•<Null>();
+ self::contravariantListInfer<Null>(new self::Contravariant::•<core::List<Null>*>());
self::Invariant<dynamic>* inv = new self::Invariant::•<dynamic>();
- self::invariantListInfer<core::Null?>(new self::Invariant::•<core::List<core::Null?>*>());
+ self::invariantListInfer<Null>(new self::Invariant::•<core::List<Null>*>());
}
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index 21b2c44..23bbcca 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -72,6 +72,7 @@
nnbd_mixed/messages_with_types_opt_out: TypeCheckError
nnbd_mixed/super_access/main: Crash # Issue 43864
nnbd_mixed/super_access/main.no_link: Crash # Issue 43864
+none/mixin_covariant: TypeCheckError
value_class/simple: RuntimeError # Expected
value_class/value_extends_non_value: RuntimeError # Expected
value_class/value_implements_non_value: RuntimeError # Expected
diff --git a/pkg/front_end/tool/_fasta/bench_maker.dart b/pkg/front_end/tool/_fasta/bench_maker.dart
index 581b5a9..6623d7a 100644
--- a/pkg/front_end/tool/_fasta/bench_maker.dart
+++ b/pkg/front_end/tool/_fasta/bench_maker.dart
@@ -253,6 +253,11 @@
}
@override
+ void visitNullType(NullType node, StringBuffer sb) {
+ sb.write("Null");
+ }
+
+ @override
void visitInterfaceType(InterfaceType node, StringBuffer sb) {
Class cls = node.classNode;
sb.write(computeName(cls));
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 7ce8cba..7df2713 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -3068,7 +3068,7 @@
type =
typeParameterType.promotedBound ?? typeParameterType.parameter.bound;
}
- if (type == context.typeEnvironment.nullType) {
+ if (type is NullType) {
return context.typeEnvironment.coreTypes
.bottomInterfaceType(superclass, context.nullable);
} else if (type is NeverType) {
@@ -4970,7 +4970,7 @@
DartType getStaticTypeInternal(StaticTypeContext context) {
DartType operandType = operand.getStaticType(context);
- return operandType == context.typeEnvironment.nullType
+ return operandType is NullType
? const NeverType(Nullability.nonNullable)
: operandType.withDeclaredNullability(Nullability.nonNullable);
}
@@ -5132,8 +5132,7 @@
getStaticTypeInternal(context);
@override
- DartType getStaticTypeInternal(StaticTypeContext context) =>
- context.typeEnvironment.nullType;
+ DartType getStaticTypeInternal(StaticTypeContext context) => const NullType();
R accept<R>(ExpressionVisitor<R> v) => v.visitNullLiteral(this);
R accept1<R, A>(ExpressionVisitor1<R, A> v, A arg) =>
@@ -7609,6 +7608,49 @@
}
}
+class NullType extends DartType {
+ @override
+ final int hashCode = 415324;
+
+ const NullType();
+
+ @override
+ R accept<R>(DartTypeVisitor<R> v) => v.visitNullType(this);
+
+ @override
+ R accept1<R, A>(DartTypeVisitor1<R, A> v, A arg) {
+ return v.visitNullType(this, arg);
+ }
+
+ @override
+ void visitChildren(Visitor v) {}
+
+ @override
+ bool operator ==(Object other) => equals(other, null);
+
+ @override
+ bool equals(Object other, Assumptions assumptions) => other is NullType;
+
+ @override
+ Nullability get declaredNullability => Nullability.nullable;
+
+ @override
+ Nullability get nullability => Nullability.nullable;
+
+ @override
+ DartType withDeclaredNullability(Nullability nullability) => this;
+
+ @override
+ String toString() {
+ return "NullType(${toStringInternal()})";
+ }
+
+ @override
+ void toTextInternal(AstPrinter printer) {
+ printer.write("Null");
+ }
+}
+
class InterfaceType extends DartType {
Reference className;
@@ -8964,8 +9006,7 @@
R accept<R>(ConstantVisitor<R> v) => v.visitNullConstant(this);
R acceptReference<R>(Visitor<R> v) => v.visitNullConstantReference(this);
- DartType getType(StaticTypeContext context) =>
- context.typeEnvironment.nullType;
+ DartType getType(StaticTypeContext context) => const NullType();
@override
String toString() => 'NullConstant(${toStringInternal()})';
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index 2c79146..97bda78 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -2119,7 +2119,7 @@
}
Supertype readSupertype() {
- InterfaceType type = readDartType();
+ InterfaceType type = readDartType(forSupertype: true);
assert(
type.nullability == _currentLibrary.nonNullable,
"In serialized form supertypes should have Nullability.legacy if they "
@@ -2174,7 +2174,7 @@
return readAndCheckOptionTag() ? readDartType() : null;
}
- DartType readDartType() {
+ DartType readDartType({bool forSupertype: false}) {
int tag = readByte();
switch (tag) {
case Tag.TypedefType:
@@ -2211,7 +2211,18 @@
reference, Nullability.values[nullabilityIndex], typeArguments);
case Tag.SimpleInterfaceType:
int nullabilityIndex = readByte();
- return new InterfaceType.byReference(readClassReference(),
+ Reference classReference = readClassReference();
+ {
+ CanonicalName canonicalName = classReference.canonicalName;
+ if (canonicalName != null &&
+ !forSupertype &&
+ canonicalName.name == "Null" &&
+ canonicalName.parent?.name == "dart:core" &&
+ (canonicalName.parent?.parent?.isRoot ?? false)) {
+ return const NullType();
+ }
+ }
+ return new InterfaceType.byReference(classReference,
Nullability.values[nullabilityIndex], const <DartType>[]);
case Tag.FunctionType:
int typeParameterStackHeight = typeParameterStack.length;
@@ -2455,9 +2466,9 @@
}
@override
- DartType readDartType() {
+ DartType readDartType({bool forSupertype = false}) {
final nodeOffset = _byteOffset;
- final result = super.readDartType();
+ final result = super.readDartType(forSupertype: forSupertype);
return _associateMetadata(result, nodeOffset);
}
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart
index 3ac762a..a0940ff 100644
--- a/pkg/kernel/lib/binary/ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -2103,6 +2103,24 @@
}
@override
+ void visitNullType(NullType node) {
+ // TODO(dmitryas): Remove special treatment of Null when the VM supports the
+ // new encoding: just write the tag.
+ assert(_knownCanonicalNameNonRootTops != null &&
+ _knownCanonicalNameNonRootTops.isNotEmpty);
+ CanonicalName root = _knownCanonicalNameNonRootTops.first;
+ while (!root.isRoot) {
+ root = root.parent;
+ }
+ CanonicalName canonicalNameOfNull =
+ root.getChild("dart:core").getChild("Null");
+ writeByte(Tag.SimpleInterfaceType);
+ writeByte(node.declaredNullability.index);
+ checkCanonicalName(canonicalNameOfNull);
+ writeUInt30(canonicalNameOfNull.index + 1);
+ }
+
+ @override
void visitSupertype(Supertype node) {
// Writing nullability below is only necessary because
// BinaryBuilder.readSupertype reads the supertype as an InterfaceType and
diff --git a/pkg/kernel/lib/class_hierarchy.dart b/pkg/kernel/lib/class_hierarchy.dart
index 710baf7..cb03a01 100644
--- a/pkg/kernel/lib/class_hierarchy.dart
+++ b/pkg/kernel/lib/class_hierarchy.dart
@@ -29,8 +29,8 @@
/// Returns the instantiation of [superclass] that is implemented by [type],
/// or `null` if [type] does not implement [superclass] at all.
- InterfaceType getTypeAsInstanceOf(InterfaceType type, Class superclass,
- Library clientLibrary, CoreTypes coreTypes);
+ InterfaceType getTypeAsInstanceOf(
+ InterfaceType type, Class superclass, Library clientLibrary);
/// Returns the type arguments of the instantiation of [superclass] that is
/// implemented by [type], or `null` if [type] does not implement [superclass]
@@ -613,8 +613,8 @@
// LLUB(Null, List<dynamic>*) = List<dynamic>*. In opt-in libraries the
// rules imply that LLUB(Null, List<dynamic>*) = List<dynamic>?.
if (!clientLibrary.isNonNullableByDefault) {
- if (type1 == coreTypes.nullType) return type2;
- if (type2 == coreTypes.nullType) return type1;
+ if (type1 is NullType) return type2;
+ if (type2 is NullType) return type1;
}
_ClassInfo info1 = infoFor(type1.classNode);
@@ -722,16 +722,15 @@
}
@override
- InterfaceType getTypeAsInstanceOf(InterfaceType type, Class superclass,
- Library clientLibrary, CoreTypes coreTypes) {
+ InterfaceType getTypeAsInstanceOf(
+ InterfaceType type, Class superclass, Library clientLibrary) {
List<DartType> typeArguments =
getTypeArgumentsAsInstanceOf(type, superclass);
if (typeArguments == null) return null;
// The return value should be a legacy type if it's computed for an
// opted-out library, unless the return value is Null? which is always
// nullable.
- Nullability nullability = superclass == coreTypes.nullClass ||
- clientLibrary.isNonNullableByDefault
+ Nullability nullability = clientLibrary.isNonNullableByDefault
? type.nullability
: Nullability.legacy;
return new InterfaceType(superclass, nullability, typeArguments);
diff --git a/pkg/kernel/lib/core_types.dart b/pkg/kernel/lib/core_types.dart
index 2b9c480..24f0250 100644
--- a/pkg/kernel/lib/core_types.dart
+++ b/pkg/kernel/lib/core_types.dart
@@ -44,7 +44,7 @@
Library _coreLibrary;
Class _objectClass;
- Class _nullClass;
+ Class _deprecatedNullClass;
Class _boolClass;
Class _intClass;
Class _numClass;
@@ -113,7 +113,7 @@
InterfaceType _objectLegacyRawType;
InterfaceType _objectNullableRawType;
InterfaceType _objectNonNullableRawType;
- InterfaceType _nullType;
+ InterfaceType _deprecatedNullType;
InterfaceType _boolLegacyRawType;
InterfaceType _boolNullableRawType;
InterfaceType _boolNonNullableRawType;
@@ -384,8 +384,8 @@
index.getMember('dart:core', 'NoSuchMethodError', 'withInvocation');
}
- Class get nullClass {
- return _nullClass ??= index.getClass('dart:core', 'Null');
+ Class get deprecatedNullClass {
+ return _deprecatedNullClass ??= index.getClass('dart:core', 'Null');
}
Class get numClass {
@@ -531,9 +531,10 @@
}
/// Null is always nullable, so there's only one raw type for that class.
- InterfaceType get nullType {
- return _nullType ??= _nullableRawTypes[nullClass] ??=
- new InterfaceType(nullClass, Nullability.nullable, const <DartType>[]);
+ InterfaceType get deprecatedNullType {
+ return _deprecatedNullType ??= _nullableRawTypes[deprecatedNullClass] ??=
+ new InterfaceType(
+ deprecatedNullClass, Nullability.nullable, const <DartType>[]);
}
InterfaceType get boolLegacyRawType {
@@ -1357,7 +1358,7 @@
if (type is InvalidType) return false;
// NULL(Null) is true.
- if (type == nullType) return true;
+ if (type is NullType) return true;
// NULL(T?) is true iff NULL(T) or BOTTOM(T).
// NULL(T*) is true iff NULL(T) or BOTTOM(T).
diff --git a/pkg/kernel/lib/src/bounds_checks.dart b/pkg/kernel/lib/src/bounds_checks.dart
index 3bbef8a..7c5ee41 100644
--- a/pkg/kernel/lib/src/bounds_checks.dart
+++ b/pkg/kernel/lib/src/bounds_checks.dart
@@ -15,6 +15,7 @@
Library,
NamedType,
NeverType,
+ NullType,
Nullability,
TypeParameter,
TypeParameterType,
@@ -267,7 +268,7 @@
DartType bottomType,
{bool allowSuperBounded = false}) {
assert(bottomType == const NeverType(Nullability.nonNullable) ||
- bottomType == typeEnvironment.nullType);
+ bottomType is NullType);
List<TypeParameter> variables;
List<DartType> arguments;
List<TypeArgumentIssue> typedefRhsResult;
@@ -435,7 +436,7 @@
{Map<FunctionType, List<DartType>> typedefInstantiations}) {
assert(arguments.length == parameters.length);
assert(bottomType == const NeverType(Nullability.nonNullable) ||
- bottomType == typeEnvironment.nullType);
+ bottomType is NullType);
List<TypeArgumentIssue> result;
var substitutionMap = <TypeParameter, DartType>{};
for (int i = 0; i < arguments.length; ++i) {
@@ -688,6 +689,12 @@
}
@override
+ int visitNullType(
+ NullType node, Map<TypeParameter, Map<DartType, int>> computedVariances) {
+ return Variance.unrelated;
+ }
+
+ @override
int visitVoidType(
VoidType node, Map<TypeParameter, Map<DartType, int>> computedVariances) {
return Variance.unrelated;
diff --git a/pkg/kernel/lib/src/dart_type_equivalence.dart b/pkg/kernel/lib/src/dart_type_equivalence.dart
index 35def49..35eeff4 100644
--- a/pkg/kernel/lib/src/dart_type_equivalence.dart
+++ b/pkg/kernel/lib/src/dart_type_equivalence.dart
@@ -8,6 +8,7 @@
class DartTypeEquivalence implements DartTypeVisitor1<bool, DartType> {
final CoreTypes coreTypes;
+ // TODO(dmitryas): Implement also equateBottomTypes.
final bool equateTopTypes;
final bool ignoreAllNullabilities;
final bool ignoreTopLevelNullability;
@@ -198,6 +199,11 @@
}
@override
+ bool visitNullType(NullType node, DartType other) {
+ return other is NullType;
+ }
+
+ @override
bool visitNeverType(NeverType node, DartType other) {
if (other is NeverType) {
return _checkAndRegisterNullabilities(
diff --git a/pkg/kernel/lib/src/future_value_type.dart b/pkg/kernel/lib/src/future_value_type.dart
index 939bb69..e3fd270 100644
--- a/pkg/kernel/lib/src/future_value_type.dart
+++ b/pkg/kernel/lib/src/future_value_type.dart
@@ -82,6 +82,12 @@
}
@override
+ DartType visitNullType(DartType node, CoreTypes coreTypes) {
+ // Otherwise, for all S, futureValueType(S) = Object?.
+ return coreTypes.objectNullableRawType;
+ }
+
+ @override
DartType visitTypeParameterType(DartType node, CoreTypes coreTypes) {
// Otherwise, for all S, futureValueType(S) = Object?.
return coreTypes.objectNullableRawType;
diff --git a/pkg/kernel/lib/src/hierarchy_based_type_environment.dart b/pkg/kernel/lib/src/hierarchy_based_type_environment.dart
index eadc8fa..9474496 100644
--- a/pkg/kernel/lib/src/hierarchy_based_type_environment.dart
+++ b/pkg/kernel/lib/src/hierarchy_based_type_environment.dart
@@ -21,20 +21,13 @@
@override
InterfaceType getTypeAsInstanceOf(InterfaceType type, Class superclass,
Library clientLibrary, CoreTypes coreTypes) {
- return hierarchy.getTypeAsInstanceOf(
- type, superclass, clientLibrary, coreTypes);
+ return hierarchy.getTypeAsInstanceOf(type, superclass, clientLibrary);
}
@override
List<DartType> getTypeArgumentsAsInstanceOf(
InterfaceType type, Class superclass) {
- Class typeClass = type.classNode;
- if (typeClass == superclass) return type.typeArguments;
- if (typeClass == coreTypes.nullClass) {
- if (superclass.typeParameters.isEmpty) return const <DartType>[];
- return new List<DartType>.filled(
- superclass.typeParameters.length, coreTypes.nullType);
- }
+ if (type.classNode == superclass) return type.typeArguments;
return hierarchy.getTypeArgumentsAsInstanceOf(type, superclass);
}
diff --git a/pkg/kernel/lib/src/legacy_erasure.dart b/pkg/kernel/lib/src/legacy_erasure.dart
index 44a5d3a..83c32ce 100644
--- a/pkg/kernel/lib/src/legacy_erasure.dart
+++ b/pkg/kernel/lib/src/legacy_erasure.dart
@@ -71,11 +71,5 @@
}
@override
- DartType visitInterfaceType(InterfaceType node) {
- if (node.classNode == coreTypes.nullClass) return null;
- return super.visitInterfaceType(node);
- }
-
- @override
- DartType visitNeverType(NeverType node) => coreTypes.nullType;
+ DartType visitNeverType(NeverType node) => const NullType();
}
diff --git a/pkg/kernel/lib/src/merge_visitor.dart b/pkg/kernel/lib/src/merge_visitor.dart
index 275b7d88..4b1e68b 100644
--- a/pkg/kernel/lib/src/merge_visitor.dart
+++ b/pkg/kernel/lib/src/merge_visitor.dart
@@ -208,6 +208,14 @@
}
@override
+ DartType visitNullType(NullType a, DartType b) {
+ if (b is NullType) {
+ return a;
+ }
+ return null;
+ }
+
+ @override
DartType visitInvalidType(InvalidType a, DartType b) => null;
@override
diff --git a/pkg/kernel/lib/src/nnbd_top_merge.dart b/pkg/kernel/lib/src/nnbd_top_merge.dart
index f0c5b4e..5b3634a 100644
--- a/pkg/kernel/lib/src/nnbd_top_merge.dart
+++ b/pkg/kernel/lib/src/nnbd_top_merge.dart
@@ -69,11 +69,6 @@
// NNBD_TOP_MERGE(Object*, void) = Object?
return coreTypes.objectNullableRawType;
}
- } else if (a == coreTypes.nullType &&
- b is NeverType &&
- b.nullability == Nullability.legacy) {
- // NNBD_TOP_MERGE(Null, Never*) = Null
- return coreTypes.nullType;
}
return super.visitInterfaceType(a, b);
}
@@ -116,10 +111,19 @@
@override
DartType visitNeverType(NeverType a, DartType b) {
- if (a.nullability == Nullability.legacy && b == coreTypes.nullType) {
+ if (a.nullability == Nullability.legacy && b is NullType) {
// NNBD_TOP_MERGE(Never*, Null) = Null
- return coreTypes.nullType;
+ return const NullType();
}
return super.visitNeverType(a, b);
}
+
+ @override
+ DartType visitNullType(NullType a, DartType b) {
+ if (b is NeverType && b.nullability == Nullability.legacy) {
+ // NNBD_TOP_MERGE(Null, Never*) = Null
+ return const NullType();
+ }
+ return super.visitNullType(a, b);
+ }
}
diff --git a/pkg/kernel/lib/src/non_null.dart b/pkg/kernel/lib/src/non_null.dart
index 2e28022..14e0c01 100644
--- a/pkg/kernel/lib/src/non_null.dart
+++ b/pkg/kernel/lib/src/non_null.dart
@@ -3,34 +3,33 @@
// BSD-style license that can be found in the LICENSE.md file.
import '../ast.dart';
-import '../core_types.dart';
/// Returns the type defines as `NonNull(type)` in the nnbd specification.
-DartType computeNonNull(CoreTypes coreTypes, DartType type) {
- return type.accept1(const _NonNullVisitor(), coreTypes) ?? type;
+DartType computeNonNull(DartType type) {
+ return type.accept(const _NonNullVisitor()) ?? type;
}
/// Visitor that computes the `NonNull` function defined in the nnbd
/// specification.
///
/// The visitor returns `null` if `NonNull(T) = T`.
-class _NonNullVisitor implements DartTypeVisitor1<DartType, CoreTypes> {
+class _NonNullVisitor implements DartTypeVisitor<DartType> {
const _NonNullVisitor();
@override
- DartType defaultDartType(DartType node, CoreTypes coreTypes) {
+ DartType defaultDartType(DartType node) {
throw new UnsupportedError(
"Unexpected DartType ${node} (${node.runtimeType})");
}
@override
- DartType visitBottomType(BottomType node, CoreTypes coreTypes) => null;
+ DartType visitBottomType(BottomType node) => null;
@override
- DartType visitDynamicType(DynamicType node, CoreTypes coreTypes) => null;
+ DartType visitDynamicType(DynamicType node) => null;
@override
- DartType visitFunctionType(FunctionType node, CoreTypes coreTypes) {
+ DartType visitFunctionType(FunctionType node) {
if (node.declaredNullability == Nullability.nonNullable) {
return null;
}
@@ -38,8 +37,8 @@
}
@override
- DartType visitFutureOrType(FutureOrType node, CoreTypes coreTypes) {
- DartType typeArgument = node.typeArgument.accept1(this, coreTypes);
+ DartType visitFutureOrType(FutureOrType node) {
+ DartType typeArgument = node.typeArgument.accept(this);
if (node.declaredNullability == Nullability.nonNullable &&
typeArgument == null) {
return null;
@@ -49,10 +48,7 @@
}
@override
- DartType visitInterfaceType(InterfaceType node, CoreTypes coreTypes) {
- if (node == coreTypes.nullType) {
- return const NeverType(Nullability.nonNullable);
- }
+ DartType visitInterfaceType(InterfaceType node) {
if (node.declaredNullability == Nullability.nonNullable) {
return null;
}
@@ -60,10 +56,10 @@
}
@override
- DartType visitInvalidType(InvalidType node, CoreTypes coreTypes) => null;
+ DartType visitInvalidType(InvalidType node) => null;
@override
- DartType visitNeverType(NeverType node, CoreTypes coreTypes) {
+ DartType visitNeverType(NeverType node) {
if (node.declaredNullability == Nullability.nonNullable) {
return null;
}
@@ -71,7 +67,12 @@
}
@override
- DartType visitTypeParameterType(TypeParameterType node, CoreTypes coreTypes) {
+ DartType visitNullType(NullType node) {
+ return const NeverType(Nullability.nonNullable);
+ }
+
+ @override
+ DartType visitTypeParameterType(TypeParameterType node) {
if (node.nullability == Nullability.nonNullable) {
return null;
}
@@ -81,7 +82,7 @@
// nullability to non-nullable.
return node.withDeclaredNullability(Nullability.nonNullable);
}
- DartType promotedBound = node.promotedBound.accept1(this, coreTypes);
+ DartType promotedBound = node.promotedBound.accept(this);
if (promotedBound == null) {
// The promoted bound could not be made non-nullable so we set the
// declared nullability to undetermined.
@@ -107,7 +108,7 @@
// to non-nullable.
return node.withDeclaredNullability(Nullability.nonNullable);
}
- DartType bound = node.bound.accept1(this, coreTypes);
+ DartType bound = node.bound.accept(this);
if (bound == null) {
// The bound could not be made non-nullable so we set the declared
// nullability to undetermined.
@@ -127,7 +128,7 @@
}
@override
- DartType visitTypedefType(TypedefType node, CoreTypes coreTypes) {
+ DartType visitTypedefType(TypedefType node) {
if (node.declaredNullability == Nullability.nonNullable) {
return null;
}
@@ -135,5 +136,5 @@
}
@override
- DartType visitVoidType(VoidType node, CoreTypes coreTypes) => null;
+ DartType visitVoidType(VoidType node) => null;
}
diff --git a/pkg/kernel/lib/src/norm.dart b/pkg/kernel/lib/src/norm.dart
index ac209fb..c8d0f71 100644
--- a/pkg/kernel/lib/src/norm.dart
+++ b/pkg/kernel/lib/src/norm.dart
@@ -132,7 +132,7 @@
@override
DartType visitNeverType(NeverType node) {
- if (node.nullability == Nullability.nullable) return coreTypes.nullType;
+ if (node.nullability == Nullability.nullable) return const NullType();
return null;
}
diff --git a/pkg/kernel/lib/src/replacement_visitor.dart b/pkg/kernel/lib/src/replacement_visitor.dart
index 72ddff6..5aea426 100644
--- a/pkg/kernel/lib/src/replacement_visitor.dart
+++ b/pkg/kernel/lib/src/replacement_visitor.dart
@@ -146,11 +146,6 @@
// No nullability or type arguments needed to be substituted.
return null;
} else {
- if (node.classNode.name == 'Null' &&
- node.classNode.enclosingLibrary.importUri.scheme == 'dart' &&
- node.classNode.enclosingLibrary.importUri.path == 'core') {
- return null;
- }
return new InterfaceType(
node.classNode,
newNullability ?? node.nullability,
@@ -195,6 +190,9 @@
}
@override
+ DartType visitNullType(NullType node) => null;
+
+ @override
DartType visitInvalidType(InvalidType node) => null;
@override
diff --git a/pkg/kernel/lib/src/standard_bounds.dart b/pkg/kernel/lib/src/standard_bounds.dart
index f94edc0..64a1755 100644
--- a/pkg/kernel/lib/src/standard_bounds.dart
+++ b/pkg/kernel/lib/src/standard_bounds.dart
@@ -17,6 +17,7 @@
Library,
NamedType,
NeverType,
+ NullType,
Nullability,
TypeParameter,
TypeParameterType,
@@ -160,12 +161,12 @@
}
// MOREBOTTOM(Null, T) = true.
- if (s == coreTypes.nullType) {
+ if (s is NullType) {
return true;
}
// MOREBOTTOM(S, Null) = false.
- if (t == coreTypes.nullType) {
+ if (t is NullType) {
return false;
}
@@ -358,7 +359,7 @@
if (type2.nullability == Nullability.nonNullable) {
return type2;
}
- type2 = computeNonNull(coreTypes, type2);
+ type2 = computeNonNull(type2);
if (type2.nullability == Nullability.nonNullable) {
return type2;
}
@@ -367,7 +368,7 @@
if (type1.nullability == Nullability.nonNullable) {
return type1;
}
- type1 = computeNonNull(coreTypes, type1);
+ type1 = computeNonNull(type1);
if (type1.nullability == Nullability.nonNullable) {
return type1;
}
@@ -398,11 +399,9 @@
// [intersectNullabilities] to compute the resulting type if the subtype
// relation is established.
DartType typeWithoutNullabilityMarker1 =
- computeTypeWithoutNullabilityMarker(type1, clientLibrary,
- nullType: coreTypes.nullType);
+ computeTypeWithoutNullabilityMarker(type1, clientLibrary);
DartType typeWithoutNullabilityMarker2 =
- computeTypeWithoutNullabilityMarker(type2, clientLibrary,
- nullType: coreTypes.nullType);
+ computeTypeWithoutNullabilityMarker(type2, clientLibrary);
if (isSubtypeOf(typeWithoutNullabilityMarker1,
typeWithoutNullabilityMarker2, SubtypeCheckMode.withNullabilities)) {
return type1.withDeclaredNullability(intersectNullabilities(
@@ -466,10 +465,10 @@
DartType type1, DartType type2, Library clientLibrary) {
// Do legacy erasure on the argument, so that the result types that are
// computed from arguments are legacy.
- type1 = type1 == coreTypes.nullType
+ type1 = type1 is NullType
? type1
: type1.withDeclaredNullability(Nullability.legacy);
- type2 = type2 == coreTypes.nullType
+ type2 = type2 is NullType
? type2
: type2.withDeclaredNullability(Nullability.legacy);
@@ -514,8 +513,8 @@
// SLB(bottom, T) = SLB(T, bottom) = bottom.
if (type1 is BottomType) return type1;
if (type2 is BottomType) return type2;
- if (type1 == coreTypes.nullType) return type1;
- if (type2 == coreTypes.nullType) return type2;
+ if (type1 is NullType) return type1;
+ if (type2 is NullType) return type2;
// Function types have structural lower bounds.
if (type1 is FunctionType && type2 is FunctionType) {
@@ -774,11 +773,9 @@
// uses [uniteNullabilities] to compute the resulting type if the subtype
// relation is established.
InterfaceType typeWithoutNullabilityMarker1 =
- computeTypeWithoutNullabilityMarker(type1, clientLibrary,
- nullType: coreTypes.nullType);
+ computeTypeWithoutNullabilityMarker(type1, clientLibrary);
InterfaceType typeWithoutNullabilityMarker2 =
- computeTypeWithoutNullabilityMarker(type2, clientLibrary,
- nullType: coreTypes.nullType);
+ computeTypeWithoutNullabilityMarker(type2, clientLibrary);
if (isSubtypeOf(typeWithoutNullabilityMarker1,
typeWithoutNullabilityMarker2, SubtypeCheckMode.withNullabilities)) {
@@ -1277,8 +1274,8 @@
// SUB(bottom, T) = SUB(T, bottom) = T.
if (type1 is BottomType) return type2;
if (type2 is BottomType) return type1;
- if (type1 == coreTypes.nullType) return type2;
- if (type2 == coreTypes.nullType) return type1;
+ if (type1 is NullType) return type2;
+ if (type2 is NullType) return type1;
if (type1 is TypeParameterType || type2 is TypeParameterType) {
return _getNullabilityObliviousTypeParameterStandardUpperBound(
diff --git a/pkg/kernel/lib/src/types.dart b/pkg/kernel/lib/src/types.dart
index 326062f..02a4933 100644
--- a/pkg/kernel/lib/src/types.dart
+++ b/pkg/kernel/lib/src/types.dart
@@ -15,6 +15,7 @@
Library,
NamedType,
NeverType,
+ NullType,
Nullability,
TypeParameter,
TypeParameterType,
@@ -110,6 +111,10 @@
if (s is NeverType) {
return new IsSubtypeOf.basedSolelyOnNullabilities(s, t);
}
+ if (s is NullType) {
+ // Rule 4.
+ return new IsSubtypeOf.basedSolelyOnNullabilities(s, t);
+ }
if (t is InterfaceType) {
Class cls = t.classNode;
@@ -233,6 +238,25 @@
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
}
+ } else if (t is NullType) {
+ const IsNullTypeSubtypeOf relation = const IsNullTypeSubtypeOf();
+ if (s is DynamicType) {
+ return relation.isDynamicRelated(s, t, this);
+ } else if (s is VoidType) {
+ return relation.isVoidRelated(s, t, this);
+ } else if (s is InterfaceType) {
+ return relation.isInterfaceRelated(s, t, this);
+ } else if (s is FunctionType) {
+ return relation.isFunctionRelated(s, t, this);
+ } else if (s is TypeParameterType) {
+ return s.promotedBound == null
+ ? relation.isTypeParameterRelated(s, t, this)
+ : relation.isIntersectionRelated(s, t, this);
+ } else if (s is TypedefType) {
+ return relation.isTypedefRelated(s, t, this);
+ } else if (s is FutureOrType) {
+ return relation.isFutureOrRelated(s, t, this);
+ }
} else if (t is NeverType) {
const IsNeverTypeSubtypeOf relation = const IsNeverTypeSubtypeOf();
if (s is DynamicType) {
@@ -293,8 +317,7 @@
InterfaceType getTypeAsInstanceOf(InterfaceType type, Class superclass,
Library clientLibrary, CoreTypes coreTypes) {
- return hierarchy.getTypeAsInstanceOf(
- type, superclass, clientLibrary, coreTypes);
+ return hierarchy.getTypeAsInstanceOf(type, superclass, clientLibrary);
}
List<DartType> getTypeArgumentsAsInstanceOf(
@@ -343,11 +366,6 @@
@override
IsSubtypeOf isInterfaceRelated(
InterfaceType s, InterfaceType t, Types types) {
- if (s.classNode == types.hierarchy.coreTypes.nullClass) {
- // This is an optimization, to avoid instantiating unnecessary type
- // arguments in getKernelTypeAsInstanceOf.
- return new IsSubtypeOf.basedSolelyOnNullabilities(s, t);
- }
List<DartType> asSupertypeArguments =
types.hierarchy.getTypeArgumentsAsInstanceOf(s, t.classNode);
if (asSupertypeArguments == null) {
@@ -546,10 +564,6 @@
@override
IsSubtypeOf isInterfaceRelated(InterfaceType s, FunctionType t, Types types) {
- if (s.classNode == types.hierarchy.coreTypes.nullClass) {
- // Rule 4.
- return new IsSubtypeOf.basedSolelyOnNullabilities(s, t);
- }
return const IsSubtypeOf.never();
}
@@ -639,10 +653,6 @@
@override
IsSubtypeOf isInterfaceRelated(
InterfaceType s, TypeParameterType t, Types types) {
- if (s.classNode == types.hierarchy.coreTypes.nullClass) {
- // Rule 4.
- return new IsSubtypeOf.basedSolelyOnNullabilities(s, t);
- }
return const IsSubtypeOf.never();
}
@@ -873,10 +883,6 @@
@override
IsSubtypeOf isInterfaceRelated(
InterfaceType s, TypeParameterType intersection, Types types) {
- if (s.classNode == types.hierarchy.coreTypes.nullClass) {
- // Rule 4.
- return new IsSubtypeOf.basedSolelyOnNullabilities(s, intersection);
- }
return const IsSubtypeOf.never();
}
@@ -912,6 +918,48 @@
}
}
+class IsNullTypeSubtypeOf implements TypeRelation<NullType> {
+ const IsNullTypeSubtypeOf();
+
+ IsSubtypeOf isDynamicRelated(DynamicType s, NullType t, Types types) {
+ return const IsSubtypeOf.never();
+ }
+
+ IsSubtypeOf isVoidRelated(VoidType s, NullType t, Types types) {
+ return const IsSubtypeOf.never();
+ }
+
+ IsSubtypeOf isInterfaceRelated(InterfaceType s, NullType t, Types types) {
+ return const IsSubtypeOf.never();
+ }
+
+ IsSubtypeOf isIntersectionRelated(
+ TypeParameterType intersection, NullType t, Types types) {
+ return types.performNullabilityAwareMutualSubtypesCheck(
+ intersection.promotedBound, t);
+ }
+
+ IsSubtypeOf isFunctionRelated(FunctionType s, NullType t, Types types) {
+ return const IsSubtypeOf.never();
+ }
+
+ IsSubtypeOf isFutureOrRelated(FutureOrType s, NullType t, Types types) {
+ return const IsSubtypeOf.never();
+ }
+
+ IsSubtypeOf isTypeParameterRelated(
+ TypeParameterType s, NullType t, Types types) {
+ // We don't need to combine the check of the bound against [t] with the
+ // check of the nullability of [s] against the nullability of [t] because
+ // [t] is always nullable.
+ return types.performNullabilityAwareSubtypeCheck(s.bound, t);
+ }
+
+ IsSubtypeOf isTypedefRelated(TypedefType s, NullType t, Types types) {
+ return types.performNullabilityAwareSubtypeCheck(s.unalias, t);
+ }
+}
+
class IsNeverTypeSubtypeOf implements TypeRelation<NeverType> {
const IsNeverTypeSubtypeOf();
@@ -924,18 +972,6 @@
}
IsSubtypeOf isInterfaceRelated(InterfaceType s, NeverType t, Types types) {
- if (s.classNode == types.hierarchy.coreTypes.nullClass) {
- if (t.nullability == Nullability.nullable ||
- t.nullability == Nullability.legacy) {
- return const IsSubtypeOf.always();
- }
- if (t.nullability == Nullability.nonNullable) {
- return new IsSubtypeOf.onlyIfIgnoringNullabilities(
- subtype: s, supertype: t);
- }
- throw new StateError(
- "Unexpected nullability '$t.nullability' of type Never");
- }
return const IsSubtypeOf.never();
}
diff --git a/pkg/kernel/lib/testing/type_parser_environment.dart b/pkg/kernel/lib/testing/type_parser_environment.dart
index 10ffc59f..8989064 100644
--- a/pkg/kernel/lib/testing/type_parser_environment.dart
+++ b/pkg/kernel/lib/testing/type_parser_environment.dart
@@ -16,6 +16,7 @@
NamedType,
NeverType,
Node,
+ NullType,
Nullability,
Supertype,
TreeNode,
@@ -232,6 +233,10 @@
// Don't return a const object to ensure we test implementations that use
// identical.
return new NeverType(interpretParsedNullability(node.parsedNullability));
+ } else if (name == "Null") {
+ // Don't return a const object to ensure we test implementations that use
+ // identical.
+ return new NullType();
}
TreeNode declaration = environment.lookupDeclaration(name);
List<ParsedType> arguments = node.arguments;
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index d13d0c9..1e05d07 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -2167,6 +2167,10 @@
writeNullability(node.nullability);
}
+ visitNullType(NullType node) {
+ writeWord('Null');
+ }
+
visitInterfaceType(InterfaceType node) {
writeClassReferenceFromReference(node.className);
if (node.typeArguments.isNotEmpty) {
diff --git a/pkg/kernel/lib/text/text_serializer.dart b/pkg/kernel/lib/text/text_serializer.dart
index 5d12e73..42b5bda 100644
--- a/pkg/kernel/lib/text/text_serializer.dart
+++ b/pkg/kernel/lib/text/text_serializer.dart
@@ -822,6 +822,7 @@
String visitNeverType(NeverType _) => "never";
String visitTypedefType(TypedefType _) => "typedef";
String visitFutureOrType(FutureOrType _) => "futureor";
+ String visitNullType(NullType _) => "null-type";
}
const TextSerializer<InvalidType> invalidTypeSerializer =
@@ -961,6 +962,13 @@
return new FutureOrType(typeArgument, Nullability.legacy);
}
+TextSerializer<NullType> nullTypeSerializer =
+ new Wrapped(unwrapNullType, wrapNullType, const Nothing());
+
+void unwrapNullType(NullType type) {}
+
+NullType wrapNullType(void ignored) => const NullType();
+
Case<DartType> dartTypeSerializer =
new Case.uninitialized(const DartTypeTagger());
@@ -2065,6 +2073,7 @@
"never": neverTypeSerializer,
"typedef": typedefTypeSerializer,
"futureor": futureOrTypeSerializer,
+ "null-type": nullTypeSerializer,
});
statementSerializer.registerTags({
"expr": expressionStatementSerializer,
diff --git a/pkg/kernel/lib/type_algebra.dart b/pkg/kernel/lib/type_algebra.dart
index dccad1c..b9ca3949 100644
--- a/pkg/kernel/lib/type_algebra.dart
+++ b/pkg/kernel/lib/type_algebra.dart
@@ -503,6 +503,7 @@
DartType visitVoidType(VoidType node) => node;
DartType visitBottomType(BottomType node) => node;
DartType visitNeverType(NeverType node) => node;
+ DartType visitNullType(NullType node) => node;
DartType visitInterfaceType(InterfaceType node) {
if (node.typeArguments.isEmpty) return node;
@@ -839,6 +840,7 @@
bool visitBottomType(BottomType node) => false;
bool visitNeverType(NeverType node) => false;
+ bool visitNullType(NullType node) => false;
bool visitInvalidType(InvalidType node) => false;
bool visitDynamicType(DynamicType node) => false;
bool visitVoidType(VoidType node) => false;
@@ -891,6 +893,7 @@
bool visitBottomType(BottomType node) => false;
bool visitNeverType(NeverType node) => false;
+ bool visitNullType(NullType node) => false;
bool visitInvalidType(InvalidType node) => false;
bool visitDynamicType(DynamicType node) => false;
bool visitVoidType(VoidType node) => false;
@@ -1011,6 +1014,9 @@
bool visitNeverType(NeverType node) => true;
@override
+ bool visitNullType(NullType node) => true;
+
+ @override
bool visitTypeParameterType(TypeParameterType node) {
return node.promotedBound == null;
}
@@ -1067,9 +1073,7 @@
@override
DartType visitInterfaceType(InterfaceType node, CoreTypes coreTypes) {
- return node == coreTypes.nullType
- ? node
- : node.withDeclaredNullability(Nullability.nonNullable);
+ return node.withDeclaredNullability(Nullability.nonNullable);
}
@override
@@ -1081,6 +1085,9 @@
}
@override
+ DartType visitNullType(NullType node, CoreTypes coreTypes) => node;
+
+ @override
DartType visitTypeParameterType(TypeParameterType node, CoreTypes coreTypes) {
if (node.promotedBound != null) {
// Intersection types don't have their own nullabilities.
@@ -1197,9 +1204,7 @@
/// [TypeParameterType]s, the result may be either [Nullability.nonNullable] or
/// [Nullability.undetermined], depending on the bound.
DartType computeTypeWithoutNullabilityMarker(
- DartType type, Library clientLibrary,
- {DartType nullType}) {
- assert(nullType != null);
+ DartType type, Library clientLibrary) {
if (type is TypeParameterType) {
if (type.promotedBound == null) {
// The default nullability for library is used when there are no
@@ -1211,7 +1216,7 @@
// type constructors, so nothing can be peeled off.
return type;
}
- } else if (type == nullType) {
+ } else if (type is NullType) {
return type;
} else {
// For most types, peeling off the nullability constructors means that
@@ -1244,12 +1249,11 @@
/// String?, Object?, and T? where T is a type parameter. Types dynamic, void,
/// and Null are nullable, but aren't considered applications of the nullable
/// type constructor.
-bool isNullableTypeConstructorApplication(DartType type, {DartType nullType}) {
- assert(nullType != null);
+bool isNullableTypeConstructorApplication(DartType type) {
return type.declaredNullability == Nullability.nullable &&
type is! DynamicType &&
type is! VoidType &&
- type != nullType;
+ type is! NullType;
}
/// Returns true if [type] is an application of the legacy type constructor.
diff --git a/pkg/kernel/lib/type_checker.dart b/pkg/kernel/lib/type_checker.dart
index ff94bf8..2106e8e 100644
--- a/pkg/kernel/lib/type_checker.dart
+++ b/pkg/kernel/lib/type_checker.dart
@@ -249,7 +249,7 @@
while (type is TypeParameterType) {
type = (type as TypeParameterType).bound;
}
- if (type is BottomType || type is NeverType || type == coreTypes.nullType) {
+ if (type is BottomType || type is NeverType || type is NullType) {
// The bottom type is a subtype of all types, so it should be allowed.
return Substitution.bottomForClass(superclass);
}
diff --git a/pkg/kernel/lib/type_environment.dart b/pkg/kernel/lib/type_environment.dart
index 8967df1..7e0dedc 100644
--- a/pkg/kernel/lib/type_environment.dart
+++ b/pkg/kernel/lib/type_environment.dart
@@ -36,7 +36,6 @@
InterfaceType get objectLegacyRawType => coreTypes.objectLegacyRawType;
InterfaceType get objectNullableRawType => coreTypes.objectNullableRawType;
- InterfaceType get nullType => coreTypes.nullType;
InterfaceType get functionLegacyRawType => coreTypes.functionLegacyRawType;
/// Returns the type `List<E>` with the given [nullability] and [elementType]
@@ -82,7 +81,7 @@
}
DartType _withDeclaredNullability(DartType type, Nullability nullability) {
- if (type == nullType) return type;
+ if (type is NullType) return type;
return type.withDeclaredNullability(
uniteNullabilities(type.declaredNullability, nullability));
}
diff --git a/pkg/kernel/lib/visitor.dart b/pkg/kernel/lib/visitor.dart
index 5cbe74c..1fec5a3 100644
--- a/pkg/kernel/lib/visitor.dart
+++ b/pkg/kernel/lib/visitor.dart
@@ -273,6 +273,7 @@
R visitTypeParameterType(TypeParameterType node) => defaultDartType(node);
R visitTypedefType(TypedefType node) => defaultDartType(node);
R visitNeverType(NeverType node) => defaultDartType(node);
+ R visitNullType(NullType node) => defaultDartType(node);
}
class DartTypeVisitor1<R, T> {
@@ -289,6 +290,7 @@
defaultDartType(node, arg);
R visitTypedefType(TypedefType node, T arg) => defaultDartType(node, arg);
R visitNeverType(NeverType node, T arg) => defaultDartType(node, arg);
+ R visitNullType(NullType node, T arg) => defaultDartType(node, arg);
}
/// Visitor for [Constant] nodes.
@@ -526,6 +528,7 @@
R visitTypeParameterType(TypeParameterType node) => defaultDartType(node);
R visitTypedefType(TypedefType node) => defaultDartType(node);
R visitNeverType(NeverType node) => defaultDartType(node);
+ R visitNullType(NullType node) => defaultDartType(node);
// Constants
R defaultConstant(Constant node) => defaultNode(node);
diff --git a/pkg/kernel/test/class_hierarchy_test.dart b/pkg/kernel/test/class_hierarchy_test.dart
index 613f5f7..bd0ad7a 100644
--- a/pkg/kernel/test/class_hierarchy_test.dart
+++ b/pkg/kernel/test/class_hierarchy_test.dart
@@ -1216,10 +1216,9 @@
''');
var b_int = new InterfaceType(b, Nullability.legacy, [int]);
- expect(hierarchy.getTypeAsInstanceOf(b_int, a, library, coreTypes),
+ expect(hierarchy.getTypeAsInstanceOf(b_int, a, library),
new InterfaceType(a, Nullability.legacy, [int, bool]));
- expect(
- hierarchy.getTypeAsInstanceOf(b_int, objectClass, library, coreTypes),
+ expect(hierarchy.getTypeAsInstanceOf(b_int, objectClass, library),
new InterfaceType(objectClass, Nullability.legacy));
}
diff --git a/pkg/kernel/test/non_null_test.dart b/pkg/kernel/test/non_null_test.dart
index 1158a4e..77750c8 100644
--- a/pkg/kernel/test/non_null_test.dart
+++ b/pkg/kernel/test/non_null_test.dart
@@ -82,7 +82,7 @@
data.forEach((String input, String output) {
DartType inputType = env.parseType(input);
DartType expectedOutputType = env.parseType(output);
- DartType actualOutputType = computeNonNull(env.coreTypes, inputType);
+ DartType actualOutputType = computeNonNull(inputType);
print('legacyErasure($inputType) = $actualOutputType: $expectedOutputType');
Expect.equals(
expectedOutputType,
diff --git a/pkg/vm/lib/transformations/protobuf_aware_treeshaker/transformer.dart b/pkg/vm/lib/transformations/protobuf_aware_treeshaker/transformer.dart
index 904f915..245d77d 100644
--- a/pkg/vm/lib/transformations/protobuf_aware_treeshaker/transformer.dart
+++ b/pkg/vm/lib/transformations/protobuf_aware_treeshaker/transformer.dart
@@ -243,9 +243,7 @@
NullLiteral(), // valueOf
NullLiteral(), // enumValues
],
- types: <DartType>[
- InterfaceType(coreTypes.nullClass, Nullability.nullable)
- ],
+ types: <DartType>[const NullType()],
),
);
}
diff --git a/pkg/vm/lib/transformations/type_flow/analysis.dart b/pkg/vm/lib/transformations/type_flow/analysis.dart
index d36d3be..36da3b6 100644
--- a/pkg/vm/lib/transformations/type_flow/analysis.dart
+++ b/pkg/vm/lib/transformations/type_flow/analysis.dart
@@ -529,7 +529,8 @@
// TODO(alexmarkov): Consider caching targets for Null type.
void _collectTargetsForNull(Map<Member, _ReceiverTypeBuilder> targets,
TypeFlowAnalysis typeFlowAnalysis) {
- Class nullClass = typeFlowAnalysis.environment.coreTypes.nullClass;
+ Class nullClass =
+ typeFlowAnalysis.environment.coreTypes.deprecatedNullClass;
Member target = typeFlowAnalysis.hierarchyCache.hierarchy
.getDispatchTarget(nullClass, selector.name, setter: selector.isSetter);
diff --git a/pkg/vm/lib/transformations/type_flow/protobuf_handler.dart b/pkg/vm/lib/transformations/type_flow/protobuf_handler.dart
index 334eb84..7643e45 100644
--- a/pkg/vm/lib/transformations/type_flow/protobuf_handler.dart
+++ b/pkg/vm/lib/transformations/type_flow/protobuf_handler.dart
@@ -192,7 +192,7 @@
NullLiteral(), // valueOf
NullLiteral(), // enumValues
],
- types: <DartType>[ph.coreTypes.nullType],
+ types: <DartType>[const NullType()],
),
ph._builderInfoAddMethod)
..fileOffset = node.fileOffset;
diff --git a/pkg/vm/lib/transformations/type_flow/summary_collector.dart b/pkg/vm/lib/transformations/type_flow/summary_collector.dart
index 64170aa..68162e7 100644
--- a/pkg/vm/lib/transformations/type_flow/summary_collector.dart
+++ b/pkg/vm/lib/transformations/type_flow/summary_collector.dart
@@ -587,10 +587,10 @@
assert(_genericInterfacesInfo != null);
constantAllocationCollector = new ConstantAllocationCollector(this);
_nullMethodsAndGetters.addAll(getSelectors(
- _hierarchy, _environment.coreTypes.nullClass,
+ _hierarchy, _environment.coreTypes.deprecatedNullClass,
setters: false));
_nullSetters.addAll(getSelectors(
- _hierarchy, _environment.coreTypes.nullClass,
+ _hierarchy, _environment.coreTypes.deprecatedNullClass,
setters: true));
}
diff --git a/pkg/vm/lib/transformations/type_flow/transformer.dart b/pkg/vm/lib/transformations/type_flow/transformer.dart
index de5576f..68688fd 100644
--- a/pkg/vm/lib/transformations/type_flow/transformer.dart
+++ b/pkg/vm/lib/transformations/type_flow/transformer.dart
@@ -195,7 +195,8 @@
}
if (nullable && type == const EmptyType()) {
- concreteClass = _typeFlowAnalysis.environment.coreTypes.nullClass;
+ concreteClass =
+ _typeFlowAnalysis.environment.coreTypes.deprecatedNullClass;
constantValue = _nullConstant ??= new NullConstant();
} else {
concreteClass = type.getConcreteClass(_typeFlowAnalysis.hierarchyCache);
diff --git a/pkg/vm/lib/transformations/type_flow/types.dart b/pkg/vm/lib/transformations/type_flow/types.dart
index e7e0c1d..c5754ed 100644
--- a/pkg/vm/lib/transformations/type_flow/types.dart
+++ b/pkg/vm/lib/transformations/type_flow/types.dart
@@ -79,12 +79,12 @@
Type result;
if (type is InterfaceType) {
final cls = type.classNode;
- result = (cls == coreTypes.nullClass)
- ? const EmptyType()
- : new ConeType(getTFClass(cls));
+ result = new ConeType(getTFClass(cls));
} else if (type == const DynamicType() || type == const VoidType()) {
result = const AnyType();
- } else if (type == const BottomType() || type is NeverType) {
+ } else if (type == const BottomType() ||
+ type is NeverType ||
+ type is NullType) {
result = const EmptyType();
} else if (type is FunctionType) {
// TODO(alexmarkov): support function types
diff --git a/pkg/vm/test/transformations/type_flow/types_test.dart b/pkg/vm/test/transformations/type_flow/types_test.dart
index 27c288d..326ce81 100644
--- a/pkg/vm/test/transformations/type_flow/types_test.dart
+++ b/pkg/vm/test/transformations/type_flow/types_test.dart
@@ -66,8 +66,7 @@
final InterfaceType t2Raw = new InterfaceType(c2, Nullability.legacy);
final InterfaceType t2Generic =
new InterfaceType(c2, Nullability.legacy, [t1]);
- final InterfaceType t3 =
- new InterfaceType(coreTypes.nullClass, Nullability.nullable);
+ final DartType t3 = const NullType();
final FunctionType f1 =
new FunctionType([t1], const VoidType(), Nullability.legacy);
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/create_test.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/create_test.dart.expect
index ad7ce96..8726004 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/create_test.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/create_test.dart.expect
@@ -18,7 +18,7 @@
} =>#t3);
[@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.aKeep] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pb::FooKeep::aKeep} = 43;
} =>#t1;
- tes::test("retrieving values", () → core::Null? {
+ tes::test("retrieving values", () → Null {
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep.aKeep??] [@vm.inferred-type.metadata=int] [@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.barKeep] [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep?] foo.{pb::FooKeep::barKeep}.{pb::BarKeep::aKeep}, 5);
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep.aKeep??] [@vm.inferred-type.metadata=int] [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep?] [@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.mapKeep] [@vm.inferred-type.metadata=!] foo.{pb::FooKeep::mapKeep}.{core::Map::[]}("foo").{pb::BarKeep::aKeep}, 2);
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.hasHasKeep] [@vm.inferred-type.metadata=dart.core::bool (skip check)] foo.{pb::FooKeep::hasHasKeep}(), false);
@@ -37,9 +37,9 @@
class FooKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t1 = new pro::BuilderInfo::•("FooKeep") in block {
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::BarKeep*>(1, "barKeep", #C1);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.m] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::m}<core::String*, self::BarKeep*>(3, "mapKeep", "FooKeep.MapKeepEntry", #C2, "mapKeep", #C1, #C3);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.a] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::a}<core::int*>(5, "aKeep", #C4);
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::HasKeep*>(6, "hasKeep", #C5);
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::ClearKeep*>(7, "clearKeep", #C6);
@@ -82,7 +82,7 @@
class BarKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t2 = new pro::BuilderInfo::•("BarKeep") in block {
[@vm.direct-call.metadata=protobuf::BuilderInfo.a] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::a}<core::int*>(1, "aKeep", #C4);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t2;
constructor _() → self::BarKeep*
@@ -105,7 +105,7 @@
}
class HasKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t3 = new pro::BuilderInfo::•("HasKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t3;
constructor _() → self::HasKeep*
@@ -119,7 +119,7 @@
}
class ClearKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t4 = new pro::BuilderInfo::•("ClearKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t4;
constructor _() → self::ClearKeep*
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/decode_test.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/decode_test.dart.expect
index a65b51a..f59d5b9 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/decode_test.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/decode_test.dart.expect
@@ -2,8 +2,8 @@
import self as self;
import "generated/foo.pb.dart" as pb;
import "package:test_core/test_core.dart" as tes;
-import "dart:core" as core;
import "package:test_api/src/frontend/expect.dart" as exp;
+import "dart:core" as core;
import "package:test/test.dart";
import "file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart";
@@ -11,7 +11,7 @@
[@vm.inferred-type.metadata=dart.core::_GrowableList?<dart.core::int*>]static field core::List<core::int*>* buffer = <core::int*>[10, 4, 8, 5, 16, 4, 26, 9, 10, 3, 102, 111, 111, 18, 2, 8, 42, 34, 9, 10, 3, 122, 111, 112, 18, 2, 8, 3, 40, 43, 50, 0, 58, 0];
static method main() → dynamic {
pb::FooKeep* foo = [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep] pb::FooKeep::fromBuffer([@vm.inferred-type.metadata=dart.core::_GrowableList?<dart.core::int*>] self::buffer);
- tes::test("Kept values are restored correctly", () → core::Null? {
+ tes::test("Kept values are restored correctly", () → Null {
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep.aKeep??] [@vm.inferred-type.metadata=int] [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep?] [@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.mapKeep] [@vm.inferred-type.metadata=!] foo.{pb::FooKeep::mapKeep}.{core::Map::[]}("foo").{pb::BarKeep::aKeep}, 42);
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep.aKeep??] [@vm.inferred-type.metadata=int] [@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.barKeep] [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep?] foo.{pb::FooKeep::barKeep}.{pb::BarKeep::aKeep}, 5);
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.aKeep] [@vm.inferred-type.metadata=int] foo.{pb::FooKeep::aKeep}, 43);
@@ -30,9 +30,9 @@
class FooKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t1 = new pro::BuilderInfo::•("FooKeep") in block {
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::BarKeep*>(1, "barKeep", #C1);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.m] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::m}<core::String*, self::BarKeep*>(3, "mapKeep", "FooKeep.MapKeepEntry", #C2, "mapKeep", #C1, #C3);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.a] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::a}<core::int*>(5, "aKeep", #C4);
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::HasKeep*>(6, "hasKeep", #C5);
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::ClearKeep*>(7, "clearKeep", #C6);
@@ -75,7 +75,7 @@
class BarKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t4 = new pro::BuilderInfo::•("BarKeep") in block {
[@vm.direct-call.metadata=protobuf::BuilderInfo.a] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::a}<core::int*>(1, "aKeep", #C4);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t4;
constructor _() → self::BarKeep*
@@ -98,7 +98,7 @@
}
class HasKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t6 = new pro::BuilderInfo::•("HasKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t6.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t6.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t6.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t6;
constructor _() → self::HasKeep*
@@ -118,7 +118,7 @@
}
class ClearKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t8 = new pro::BuilderInfo::•("ClearKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t8.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t8.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t8.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t8;
constructor _() → self::ClearKeep*
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/encode_all_fields.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/encode_all_fields.dart.expect
index 22768c2..66a360a 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/encode_all_fields.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/encode_all_fields.dart.expect
@@ -44,7 +44,7 @@
class FooKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t1 = new pro::BuilderInfo::•("FooKeep") in block {
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::BarKeep*>(1, "barKeep", #C1);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.m] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::m}<core::String*, self::BarKeep*>(3, "mapKeep", "FooKeep.MapKeepEntry", #C2, "mapKeep", #C1, #C3);
[@vm.direct-call.metadata=protobuf::BuilderInfo.m] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::m}<core::String*, self::ZopDrop*>(4, "mapDrop", "FooKeep.MapDropEntry", #C2, "mapDrop", #C4, #C3);
[@vm.direct-call.metadata=protobuf::BuilderInfo.a] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::a}<core::int*>(5, "aKeep", #C5);
@@ -112,7 +112,7 @@
}
class HasKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t3 = new pro::BuilderInfo::•("HasKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t3;
constructor _() → self::HasKeep*
@@ -128,7 +128,7 @@
}
class ClearKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t4 = new pro::BuilderInfo::•("ClearKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t4;
constructor _() → self::ClearKeep*
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/freeze_test.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/freeze_test.dart.expect
index 15020be..6423786 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/freeze_test.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/freeze_test.dart.expect
@@ -21,7 +21,7 @@
} =>#t3);
[@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.aKeep] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pb::FooKeep::aKeep} = 43;
} =>#t1;
- tes::test("Freezing a message works", () → core::Null? {
+ tes::test("Freezing a message works", () → Null {
[@vm.direct-call.metadata=protobuf::GeneratedMessage.freeze] [@vm.inferred-type.metadata=!? (skip check)] foo.{pro::GeneratedMessage::freeze}();
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep.aKeep??] [@vm.inferred-type.metadata=int] [@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.barKeep] [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep?] foo.{pb::FooKeep::barKeep}.{pb::BarKeep::aKeep}, 5);
exp::expect([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep.aKeep??] [@vm.inferred-type.metadata=int] [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::BarKeep?] [@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/foo.pb.dart::FooKeep.mapKeep] [@vm.inferred-type.metadata=!] foo.{pb::FooKeep::mapKeep}.{core::Map::[]}("foo").{pb::BarKeep::aKeep}, 2);
@@ -41,9 +41,9 @@
class FooKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t1 = new pro::BuilderInfo::•("FooKeep") in block {
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::BarKeep*>(1, "barKeep", #C1);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.m] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::m}<core::String*, self::BarKeep*>(3, "mapKeep", "FooKeep.MapKeepEntry", #C2, "mapKeep", #C1, #C3);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.a] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::a}<core::int*>(5, "aKeep", #C4);
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::HasKeep*>(6, "hasKeep", #C5);
[@vm.direct-call.metadata=protobuf::BuilderInfo.aOM] [@vm.inferred-type.metadata=!? (skip check)] #t1.{pro::BuilderInfo::aOM}<self::ClearKeep*>(7, "clearKeep", #C6);
@@ -86,7 +86,7 @@
class BarKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t2 = new pro::BuilderInfo::•("BarKeep") in block {
[@vm.direct-call.metadata=protobuf::BuilderInfo.a] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::a}<core::int*>(1, "aKeep", #C4);
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t2.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t2;
constructor _() → self::BarKeep*
@@ -109,7 +109,7 @@
}
class HasKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t3 = new pro::BuilderInfo::•("HasKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t3.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t3;
constructor _() → self::HasKeep*
@@ -123,7 +123,7 @@
}
class ClearKeep extends pro::GeneratedMessage {
[@vm.inferred-type.metadata=protobuf::BuilderInfo?] static final field pro::BuilderInfo* _i = let final pro::BuilderInfo* #t4 = new pro::BuilderInfo::•("ClearKeep") in block {
- [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<core::Null?>(0, null, null, null, null, null, null);
+ [@vm.direct-call.metadata=protobuf::BuilderInfo.add] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::add}<Null>(0, null, null, null, null, null, null);
[@vm.direct-call.metadata=protobuf::BuilderInfo.hasRequiredFields] [@vm.inferred-type.metadata=!? (skip check)] #t4.{pro::BuilderInfo::hasRequiredFields} = false;
} =>#t4;
constructor _() → self::ClearKeep*
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/write_only_field2.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/write_only_field2.dart.expect
index 936781a..c2f2f87 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/write_only_field2.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/write_only_field2.dart.expect
@@ -57,7 +57,7 @@
new self::A::•();
new self::B::•();
self::C<core::num*>* c = new self::D::•();
- exp::Expect::throws<dynamic>(() → core::Null? {
+ exp::Expect::throws<dynamic>(() → Null {
[@vm.call-site-attributes.metadata=receiverType:#lib::C<dart.core::num*>*] [@vm.direct-call.metadata=#lib::D.bar] c.{self::C::bar} = 3.14;
});
self::E* e = new self::F::•();
diff --git a/runtime/vm/compiler/frontend/constant_reader.cc b/runtime/vm/compiler/frontend/constant_reader.cc
index 2bb6f2b..6f66e9c 100644
--- a/runtime/vm/compiler/frontend/constant_reader.cc
+++ b/runtime/vm/compiler/frontend/constant_reader.cc
@@ -19,6 +19,19 @@
script_(helper->script()),
result_(Instance::Handle(zone_)) {}
+InstancePtr ConstantReader::ReadConstantInitializer() {
+ Tag tag = helper_->ReadTag(); // read tag.
+ switch (tag) {
+ case kSomething:
+ return ReadConstantExpression();
+ default:
+ H.ReportError(script_, TokenPosition::kNoSource,
+ "Not a constant expression: unexpected kernel tag %s (%d)",
+ Reader::TagName(tag), tag);
+ }
+ return result_.raw();
+}
+
InstancePtr ConstantReader::ReadConstantExpression() {
Tag tag = helper_->ReadTag(); // read tag.
switch (tag) {
diff --git a/runtime/vm/compiler/frontend/constant_reader.h b/runtime/vm/compiler/frontend/constant_reader.h
index 871b7f0..85f230d 100644
--- a/runtime/vm/compiler/frontend/constant_reader.h
+++ b/runtime/vm/compiler/frontend/constant_reader.h
@@ -23,6 +23,7 @@
virtual ~ConstantReader() {}
+ InstancePtr ReadConstantInitializer();
InstancePtr ReadConstantExpression();
ObjectPtr ReadAnnotations();
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index 6ae6804..75cb4a5 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -33,6 +33,17 @@
FieldHelper field_helper(this);
field_helper.ReadUntilExcluding(FieldHelper::kInitializer);
+ // Constants are directly accessed at use sites of Dart code. In C++ - if
+ // we need to access static constants - we do so directly using the kernel
+ // evaluation instead of invoking the initializer function in Dart code.
+ //
+ // If the field is marked as @pragma('vm:entry-point') then the embedder might
+ // invoke the getter, so we'll generate the initializer function.
+ ASSERT(!field_helper.IsConst() ||
+ Field::Handle(Z, parsed_function()->function().accessor_field())
+ .VerifyEntryPoint(EntryPointPragma::kGetterOnly) ==
+ Error::null());
+
Tag initializer_tag = ReadTag(); // read first part of initializer.
if (initializer_tag != kSomething) {
UNREACHABLE();
@@ -45,14 +56,8 @@
Fragment body(normal_entry);
body += B->CheckStackOverflowInPrologue(field_helper.position_);
- if (field_helper.IsConst()) {
- // This will read the initializer.
- body += Constant(
- Instance::ZoneHandle(Z, constant_reader_.ReadConstantExpression()));
- } else {
- body += SetupCapturedParameters(parsed_function()->function());
- body += BuildExpression(); // read initializer.
- }
+ body += SetupCapturedParameters(parsed_function()->function());
+ body += BuildExpression(); // read initializer.
body += Return(TokenPosition::kNoSource);
PrologueInfo prologue_info(-1, -1);
diff --git a/runtime/vm/kernel.cc b/runtime/vm/kernel.cc
index 23e5ce8..7c53e72 100644
--- a/runtime/vm/kernel.cc
+++ b/runtime/vm/kernel.cc
@@ -347,6 +347,38 @@
script.set_debug_positions(array_object);
}
+ObjectPtr EvaluateStaticConstFieldInitializer(const Field& field) {
+ ASSERT(field.is_static() && field.is_const());
+
+ LongJumpScope jump;
+ if (setjmp(*jump.Set()) == 0) {
+ Thread* thread = Thread::Current();
+ Zone* zone = thread->zone();
+ TranslationHelper helper(thread);
+ Script& script = Script::Handle(zone, field.Script());
+ helper.InitFromScript(script);
+
+ const Class& owner_class = Class::Handle(zone, field.Owner());
+ ActiveClass active_class;
+ ActiveClassScope active_class_scope(&active_class, &owner_class);
+
+ KernelReaderHelper kernel_reader(
+ zone, &helper, script,
+ ExternalTypedData::Handle(zone, field.KernelData()),
+ field.KernelDataProgramOffset());
+ kernel_reader.SetOffset(field.kernel_offset());
+ ConstantReader constant_reader(&kernel_reader, &active_class);
+
+ FieldHelper field_helper(&kernel_reader);
+ field_helper.ReadUntilExcluding(FieldHelper::kInitializer);
+ ASSERT(field_helper.IsConst());
+
+ return constant_reader.ReadConstantInitializer();
+ } else {
+ return Thread::Current()->StealStickyError();
+ }
+}
+
class MetadataEvaluator : public KernelReaderHelper {
public:
MetadataEvaluator(Zone* zone,
diff --git a/runtime/vm/kernel.h b/runtime/vm/kernel.h
index c31b045..9b0d8de 100644
--- a/runtime/vm/kernel.h
+++ b/runtime/vm/kernel.h
@@ -195,6 +195,7 @@
void CollectTokenPositionsFor(const Script& script);
+ObjectPtr EvaluateStaticConstFieldInitializer(const Field& field);
ObjectPtr EvaluateMetadata(const Field& metadata_field,
bool is_annotations_offset);
ObjectPtr BuildParameterDescriptor(const Function& function);
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index ba6d46c..5365462 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -10611,6 +10611,14 @@
ObjectPtr Field::EvaluateInitializer() const {
Thread* const thread = Thread::Current();
ASSERT(thread->IsMutatorThread());
+
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ if (is_static() && is_const()) {
+ ASSERT(!FLAG_precompiled_mode);
+ return kernel::EvaluateStaticConstFieldInitializer(*this);
+ }
+#endif // !defined(DART_PRECOMPILED_RUNTIME)
+
NoOOBMessageScope no_msg_scope(thread);
NoReloadScope no_reload_scope(thread->isolate(), thread);
const Function& initializer = Function::Handle(EnsureInitializerFunction());
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index 9dc2ac5..68448fc 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -1056,9 +1056,9 @@
}
}
-const intptr_t kInitialCallbackIdsReserved = 1024;
+const intptr_t kInitialCallbackIdsReserved = 16;
int32_t Thread::AllocateFfiCallbackId() {
- Zone* Z = isolate()->current_zone();
+ Zone* Z = Thread::Current()->zone();
if (ffi_callback_code_ == GrowableObjectArray::null()) {
ffi_callback_code_ = GrowableObjectArray::New(kInitialCallbackIdsReserved);
}
@@ -1079,7 +1079,7 @@
}
void Thread::SetFfiCallbackCode(int32_t callback_id, const Code& code) {
- Zone* Z = isolate()->current_zone();
+ Zone* Z = Thread::Current()->zone();
/// In AOT the callback ID might have been allocated during compilation but
/// 'ffi_callback_code_' is initialized to empty again when the program
@@ -1093,8 +1093,12 @@
const auto& array = GrowableObjectArray::Handle(Z, ffi_callback_code_);
if (callback_id >= array.Length()) {
- if (callback_id >= array.Capacity()) {
- array.Grow(callback_id + 1);
+ const int32_t capacity = array.Capacity();
+ if (callback_id >= capacity) {
+ // Ensure both that we grow enough and an exponential growth strategy.
+ const int32_t new_capacity =
+ Utils::Maximum(callback_id + 1, capacity * 2);
+ array.Grow(new_capacity);
}
array.SetLength(callback_id + 1);
}
diff --git a/tests/language/language.status b/tests/language/language.status
index 65bbb77..b8da9a3 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -2,9 +2,6 @@
# 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.
-[ $compiler == dart2analyzer ]
-nonfunction_type_aliases/*: Skip # github.com/dart-lang/language/issues/115
-
[ $compiler != dart2analyzer ]
switch/case_warn_test: Skip # Analyzer only, see language_analyzer2.status
diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status
index c2b53ebb..4322081 100644
--- a/tests/language_2/language_2.status
+++ b/tests/language_2/language_2.status
@@ -2,9 +2,6 @@
# 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.
-[ $compiler == dart2analyzer ]
-nonfunction_type_aliases/*: Skip # github.com/dart-lang/language/issues/115
-
[ $compiler != dart2analyzer ]
switch/case_warn_test: Skip # Analyzer only, see language_analyzer2.status
diff --git a/tools/VERSION b/tools/VERSION
index 47a9824..453aadb2 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 12
PATCH 0
-PRERELEASE 26
+PRERELEASE 27
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/abiversions/.gitignore b/tools/abiversions/.gitignore
deleted file mode 100644
index d36db5c..0000000
--- a/tools/abiversions/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-# This directory is populated by gclient sync. But we still need the directory
-# to be checked in, and git doesn't track empty directories, hence this file.
-*
-!.gitignore
-!README.md
diff --git a/tools/abiversions/README.md b/tools/abiversions/README.md
deleted file mode 100644
index 7d0aab6..0000000
--- a/tools/abiversions/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-The files in this directory are auto-generated by the dart-sdk-linux-be bot
-when the ABI_VERSION in tools/VERSION is incremented.
\ No newline at end of file
diff --git a/tools/bots/android.py b/tools/bots/android.py
deleted file mode 100644
index 9ee7d81..0000000
--- a/tools/bots/android.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2012, 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.
-"""
-Android buildbot steps.
-"""
-
-import os
-import os.path
-import re
-import sys
-
-import bot
-
-ANDROID_BUILDER = r'vm-android-(linux|mac|win)'
-
-
-def AndroidConfig(name, is_buildbot):
- """Returns info for the current buildbot based on the name of the builder.
-
- Currently, this is just:
- - mode: always "release" (for now)
- - system: "linux", "mac", or "win"
- """
- android_pattern = re.match(ANDROID_BUILDER, name)
- if not android_pattern:
- return None
-
- system = android_pattern.group(1)
- if system == 'win': system = 'windows'
-
- return bot.BuildInfo('none', 'vm', 'release', system, checked=True)
-
-
-def AndroidSteps(build_info):
- # TODO(efortuna): Here's where we'll run tests.
- #bot.RunTest('android', build_info, ['android'])
- pass
-
-
-def BuildAndroid(build_info):
- """
- Builds the android target.
-
- - build_info: the buildInfo object, containing information about what sort of
- build and test to be run.
- """
- with bot.BuildStep('Build Android'):
- # TODO(vsm): A temporary hack until we figure out why incremental builds are
- # broken on Android.
- if os.path.exists('./out/lastHooksTargetOS.txt'):
- os.remove('./out/lastHooksTargetOS.txt')
- targets = ['runtime']
- args = [
- sys.executable, './tools/build.py', '--arch=' + build_info.arch,
- '--mode=' + build_info.mode, '--os=android'
- ] + targets
- print 'Building Android: %s' % (' '.join(args))
- bot.RunProcess(args)
-
-
-if __name__ == '__main__':
- bot.RunBot(AndroidConfig, AndroidSteps, build_step=BuildAndroid)
diff --git a/tools/bots/bot.py b/tools/bots/bot.py
deleted file mode 100644
index 74aa8e2..0000000
--- a/tools/bots/bot.py
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2012, 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.
-"""
-Shared code for use in the buildbot scripts.
-"""
-
-import optparse
-import os
-from os.path import abspath
-from os.path import dirname
-import subprocess
-import sys
-
-import bot_utils
-
-utils = bot_utils.GetUtils()
-
-BUILD_OS = utils.GuessOS()
-
-BUILDER_NAME = 'BUILDBOT_BUILDERNAME'
-BUILDER_CLOBBER = 'BUILDBOT_CLOBBER'
-
-
-class BuildInfo(object):
- """
- Encapsulation of build information.
-
- - compiler: None or 'dart2js'
- - runtime: 'd8', 'ie', 'ff', 'safari', 'chrome', 'opera', or None.
- - mode: 'debug' or 'release'.
- - system: 'linux', 'mac', or 'win7'.
- - checked: True if we should run in checked mode, otherwise False.
- - host_checked: True if we should run in host checked mode, otherwise False.
- - minified: True if we should minify the code, otherwise False
- - shard_index: The shard we are running, None when not specified.
- - total_shards: The total number of shards, None when not specified.
- - is_buildbot: True if we are on a buildbot (or emulating it).
- - test_set: Specification of a non standard test set or None.
- - csp: This is using csp when running
- - arch: The architecture to build on.
- - dart2js_full: Boolean indicating whether this builder will run dart2js
- on several different runtimes.
- - builder_tag: A tag indicating a special builder setup.
- """
-
- def __init__(self,
- compiler,
- runtime,
- mode,
- system,
- checked=False,
- host_checked=False,
- minified=False,
- shard_index=None,
- total_shards=None,
- is_buildbot=False,
- test_set=None,
- csp=None,
- arch=None,
- dart2js_full=False,
- builder_tag=None,
- batch=False):
- self.compiler = compiler
- self.runtime = runtime
- self.mode = mode
- self.system = system
- self.checked = checked
- self.host_checked = host_checked
- self.minified = minified
- self.shard_index = shard_index
- self.total_shards = total_shards
- self.is_buildbot = is_buildbot
- self.test_set = test_set
- self.csp = csp
- self.dart2js_full = dart2js_full
- self.builder_tag = builder_tag
- self.batch = batch
- if (arch == None):
- self.arch = 'ia32'
- else:
- self.arch = arch
-
- def PrintBuildInfo(self):
- shard_description = ""
- if self.shard_index:
- shard_description = " shard %s of %s" % (self.shard_index,
- self.total_shards)
- print("compiler: %s, runtime: %s mode: %s, system: %s,"
- " checked: %s, host-checked: %s, minified: %s, test-set: %s"
- " arch: %s%s") % (self.compiler, self.runtime, self.mode,
- self.system, self.checked, self.host_checked,
- self.minified, self.test_set, self.arch,
- shard_description)
-
-
-class BuildStep(object):
- """
- A context manager for handling build steps.
-
- When the context manager is entered, it prints the "@@@BUILD_STEP __@@@"
- message. If it exits from an error being raised it displays the
- "@@@STEP_FAILURE@@@" message.
-
- If swallow_error is True, then this will catch and discard any OSError that
- is thrown. This lets you run later BuildSteps if the current one fails.
- """
-
- def __init__(self, name, swallow_error=False):
- self.name = name
- self.swallow_error = swallow_error
-
- def __enter__(self):
- print '@@@BUILD_STEP %s@@@' % self.name
- sys.stdout.flush()
-
- def __exit__(self, type, value, traceback):
- if value:
- print '@@@STEP_FAILURE@@@'
- sys.stdout.flush()
- if self.swallow_error and isinstance(value, OSError):
- return True
-
-
-def BuildSDK(build_info):
- """
- Builds the SDK.
-
- - build_info: the buildInfo object, containing information about what sort of
- build and test to be run.
- """
- with BuildStep('Build SDK'):
- args = [
- sys.executable, './tools/build.py', '--mode=' + build_info.mode,
- '--arch=' + build_info.arch, 'create_sdk'
- ]
- print 'Building SDK: %s' % (' '.join(args))
- RunProcess(args)
-
-
-def RunBot(parse_name, custom_steps, build_step=BuildSDK):
- """
- The main function for running a buildbot.
-
- A buildbot script should invoke this once. The parse_name function will be
- called with the name of the buildbot and should return an instance of
- BuildInfo. This function will then set up the bot, build the SDK etc. When
- that's done, it will call custom_steps, passing in the BuildInfo object.
-
- In that, you can perform any bot-specific build steps.
-
- This function will not return. It will call sys.exit() with an appropriate
- exit code.
- """
- if len(sys.argv) == 0:
- print 'Script pathname not known, giving up.'
- sys.exit(1)
-
- name, is_buildbot = GetBotName()
- build_info = parse_name(name, is_buildbot)
- if not build_info:
- print 'Could not handle unfamiliar bot name "%s".' % name
- sys.exit(1)
-
- # Print out the buildinfo for easy debugging.
- build_info.PrintBuildInfo()
-
- # Make sure we are in the dart directory
- os.chdir(bot_utils.DART_DIR)
-
- try:
- Clobber()
- if build_step:
- build_step(build_info)
-
- custom_steps(build_info)
- except OSError as e:
- sys.exit(e.errno)
-
- sys.exit(0)
-
-
-def GetBotName():
- """
- Gets the name of the current buildbot.
-
- Returns a tuple of the buildbot name and a flag to indicate if we are actually
- a buildbot (True), or just a user pretending to be one (False).
- """
- # For testing the bot locally, allow the user to pass in a buildbot name.
- parser = optparse.OptionParser()
- parser.add_option(
- '-n',
- '--name',
- dest='name',
- help='The name of the build'
- 'bot you would like to emulate (ex: vm-mac-debug)',
- default=None)
- args, _ = parser.parse_args()
-
- if args.name:
- return args.name, False
-
- name = os.environ.get(BUILDER_NAME)
- if not name:
- print 'Use -n $BUILDBOT_NAME for the bot you would like to emulate.'
- sys.exit(1)
-
- return name, True
-
-
-def Clobber(force=None):
- """
- Clobbers the builder before we do the build, if appropriate.
-
- - mode: either 'debug' or 'release'
- """
- if os.environ.get(BUILDER_CLOBBER) != "1" and not force:
- return
- clobber_string = 'Clobber'
- if force:
- clobber_string = 'Clobber(always)'
-
- with BuildStep(clobber_string):
- cmd = [sys.executable, './tools/clean_output_directory.py']
- print 'Clobbering %s' % (' '.join(cmd))
- RunProcess(cmd)
-
-
-def RunTest(name, build_info, targets, flags=None, swallow_error=False):
- """
- Runs test.py with the given settings.
- """
- if not flags:
- flags = []
-
- step_name = GetStepName(name, flags)
- with BuildStep(step_name, swallow_error=swallow_error):
- sys.stdout.flush()
-
- cmd = [
- sys.executable,
- os.path.join(os.curdir, 'tools',
- 'test.py'), '--step_name=' + step_name,
- '--mode=' + build_info.mode, '--compiler=' + build_info.compiler,
- '--runtime=' + build_info.runtime, '--arch=' + build_info.arch,
- '--progress=buildbot', '--write-result-log', '-v', '--time',
- '--use-sdk', '--report'
- ]
-
- if build_info.checked:
- cmd.append('--checked')
-
- cmd.extend(flags)
- cmd.extend(targets)
-
- print 'Running: %s' % (' '.join(map(lambda arg: '"%s"' % arg, cmd)))
- sys.stdout.flush()
- RunProcess(cmd)
-
-
-def RunTestRunner(build_info, path):
- """
- Runs the test package's runner on the package at 'path'.
- """
-
- sdk_bin = os.path.join(
- bot_utils.DART_DIR,
- utils.GetBuildSdkBin(BUILD_OS, build_info.mode, build_info.arch))
-
- build_root = utils.GetBuildRoot(BUILD_OS, build_info.mode, build_info.arch)
-
- dart_name = 'dart.exe' if build_info.system == 'windows' else 'dart'
- dart_bin = os.path.join(sdk_bin, dart_name)
-
- test_bin = os.path.abspath(
- os.path.join('third_party', 'pkg', 'test', 'bin', 'test.dart'))
-
- with utils.ChangedWorkingDirectory(path):
- args = [dart_bin, test_bin, '--reporter', 'expanded', '--no-color']
- print("Running %s" % ' '.join(args))
- RunProcess(args)
-
-
-def RunProcess(command, env=None):
- """
- Runs command.
-
- If a non-zero exit code is returned, raises an OSError with errno as the exit
- code.
- """
- if env is None:
- no_color_env = dict(os.environ)
- else:
- no_color_env = env
- no_color_env['TERM'] = 'nocolor'
-
- exit_code = subprocess.call(command, env=no_color_env)
- if exit_code != 0:
- raise OSError(exit_code)
-
-
-def GetStepName(name, flags):
- """
- Filters out flags with '=' as this breaks the /stats feature of the buildbot.
- """
- flags = [x for x in flags if not '=' in x]
- return ('%s tests %s' % (name, ' '.join(flags))).strip()
diff --git a/tools/bots/browsers/README b/tools/bots/browsers/README
deleted file mode 100644
index 91d325c..0000000
--- a/tools/bots/browsers/README
+++ /dev/null
@@ -1,20 +0,0 @@
-This directory contains the hashes of tar.gz files uploaded to cloud storage.
-Steps in the test.py script run "download_from_google_storage"
-to download these tarfiles and unpack them, if the browser cache directory exists.
-These tar files contain browser installations on the different platforms.
-We currently download Chrome.
-
-The downloads use the --auto-platform feature, so that only the browsers for the
-current platform (linux, macos, or windows) is downloaded. This requires
-the subdirectories to have the special names "linux", "win", and "mac", which
-the download_from_google_storage script in depot_tools is hardcoded to
-recognize.
-
-The download is intended to run on bots from the swarming pools, and they
-download to a named cache directory called "browsers" on those swarming bots.
-
-To upload new versions of these tar files, use the "upload_to_google_storage"
-tool in depot_tools, after replacing the existing downloaded browser in-place
-with the new version.
-
-Currently, we only have the Chrome browser for Linux uploaded.
\ No newline at end of file
diff --git a/tools/bots/browsers/chrome/linux/chrome.tar.gz.sha1 b/tools/bots/browsers/chrome/linux/chrome.tar.gz.sha1
deleted file mode 100644
index ef2e989..0000000
--- a/tools/bots/browsers/chrome/linux/chrome.tar.gz.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3d7ff2d8ee18bdb06f84b381795b53351437138b
\ No newline at end of file
diff --git a/tools/bots/dart2js_dump_info.py b/tools/bots/dart2js_dump_info.py
deleted file mode 100644
index e6e7115..0000000
--- a/tools/bots/dart2js_dump_info.py
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2014, 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.
-"""
-Buildbot steps for testing dart2js with --dump-info turned on
-"""
-import os
-import shutil
-import sys
-import bot
-import bot_utils
-
-utils = bot_utils.GetUtils()
-HOST_OS = utils.GuessOS()
-
-
-def DumpConfig(name, is_buildbot):
- """Returns info for the current buildbot.
- We only run this bot on linux, so all of this is just hard coded.
- """
- return bot.BuildInfo('none', 'none', 'release', 'linux')
-
-
-def Run(args):
- print "Running: %s" % ' '.join(args)
- sys.stdout.flush()
- bot.RunProcess(args)
-
-
-def DumpSteps(build_info):
- build_root = utils.GetBuildRoot(HOST_OS, mode='release', arch='ia32')
- compilations_dir = os.path.join(bot_utils.DART_DIR, build_root,
- 'generated_compilations')
- tests = ['html', 'samples']
-
- with bot.BuildStep('Cleaning out old compilations'):
- print "Cleaning out %s" % compilations_dir
- shutil.rmtree(compilations_dir, ignore_errors=True)
-
- with utils.TempDir() as temp_dir:
- normal_compilations = os.path.join(temp_dir, 'normal')
- dump_compilations = os.path.join(temp_dir, 'dump')
- normal_compilation_command = [
- sys.executable, './tools/test.py', '--arch=ia32',
- '--mode=%s' % build_info.mode, '-cdart2js', '-rnone', '--time',
- '--use-sdk', '--report', '--progress=buildbot', '-v'
- ] + tests
- with bot.BuildStep('Compiling without dump info'):
- Run(normal_compilation_command)
- pass
-
- with bot.BuildStep('Store normal compilation artifacts'):
- args = ['mv', compilations_dir, normal_compilations]
- Run(args)
-
- with bot.BuildStep('Compiling with dump info'):
- args = normal_compilation_command + [
- '--dart2js-options=--dump-info'
- ]
- Run(args)
-
- with bot.BuildStep('Store normal compilation artifacts'):
- args = ['mv', compilations_dir, dump_compilations]
- Run(args)
-
- with bot.BuildStep('Compare outputs'):
- args = [
- 'diff', '-rq', '-x', '*\.json', normal_compilations,
- dump_compilations
- ]
- # Diff will return non zero and we will throw if there are any differences
- Run(args)
-
- with bot.BuildStep('Validate dump files'):
- # Do whatever you like :-), files are in dump_compilations
- pass
-
-
-if __name__ == '__main__':
- bot.RunBot(DumpConfig, DumpSteps)
diff --git a/tools/bots/dart_sdk.py b/tools/bots/dart_sdk.py
index 09dd144..8e7f6f9 100755
--- a/tools/bots/dart_sdk.py
+++ b/tools/bots/dart_sdk.py
@@ -10,16 +10,14 @@
import sys
import subprocess
-import bot
import bot_utils
utils = bot_utils.GetUtils()
BUILD_OS = utils.GuessOS()
BUILD_ARCHITECTURE = utils.GuessArchitecture()
-
-(bot_name, _) = bot.GetBotName()
-CHANNEL = bot_utils.GetChannelFromName(bot_name)
+BUILDER_NAME = os.environ.get('BUILDBOT_BUILDERNAME')
+CHANNEL = bot_utils.GetChannelFromName(BUILDER_NAME)
def BuildArchitectures():
@@ -46,12 +44,12 @@
footer_file = os.path.join(bot_utils.DART_DIR, 'tools', 'bots',
'dartdoc_footer.html')
url = 'https://api.dartlang.org/stable'
- with bot.BuildStep('Build API docs by dartdoc'):
- bot_utils.run([
- dart_exe, dartdoc_dart, '--sdk-docs', '--output', dirname,
- '--footer-text', footer_text_file, '--footer', footer_file,
- '--rel-canonical-prefix=' + url
- ])
+ print('Build API docs by dartdoc')
+ bot_utils.run([
+ dart_exe, dartdoc_dart, '--sdk-docs', '--output', dirname,
+ '--footer-text', footer_text_file, '--footer', footer_file,
+ '--rel-canonical-prefix=' + url
+ ])
def CreateUploadVersionFile():
@@ -237,7 +235,10 @@
def Run(command, env=None):
print "Running %s" % ' '.join(command)
print "Environment %s" % env
- return bot.RunProcess(command, env=env)
+ sys.stdout.flush()
+ exit_code = subprocess.call(command)
+ if exit_code != 0:
+ raise OSError(exit_code)
if __name__ == '__main__':
@@ -247,8 +248,8 @@
elif CHANNEL != bot_utils.Channel.TRY:
for arch in BuildArchitectures():
sdk_path = BuildRootPath('dart-sdk', arch=arch)
- with bot.BuildStep('Create and upload sdk zip for ' + arch):
- CreateAndUploadSDKZip(arch, sdk_path)
+ print('Create and upload sdk zip for ' + arch)
+ CreateAndUploadSDKZip(arch, sdk_path)
DartArchiveUnstrippedBinaries()
if BUILD_OS == 'linux':
CreateUploadVersionFile()
diff --git a/tools/bots/ddc_tests.py b/tools/bots/ddc_tests.py
deleted file mode 100644
index ad7a131..0000000
--- a/tools/bots/ddc_tests.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2016, 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 os
-import os.path
-import shutil
-import sys
-import subprocess
-
-import bot
-import bot_utils
-
-TARGETS = ['language_2', 'corelib_2', 'lib_2']
-
-FLAGS = ['--strong']
-
-if __name__ == '__main__':
- with bot.BuildStep('Build SDK and dartdevc test packages'):
- bot.RunProcess([
- sys.executable, './tools/build.py', '--mode=release', '--arch=x64',
- 'dartdevc_test'
- ])
-
- with bot.BuildStep('Run tests'):
- (bot_name, _) = bot.GetBotName()
- system = bot_utils.GetSystemFromName(bot_name)
- if system == 'linux':
- bot.RunProcess([
- 'xvfb-run', sys.executable, './tools/test.py', '--strong',
- '-mrelease', '-cdartdevc', '-rchrome', '-ax64', '--report',
- '--time', '--checked', '--progress=buildbot',
- '--write-result-log'
- ] + TARGETS)
- else:
- info = bot.BuildInfo(
- 'dartdevc',
- 'chrome',
- 'release',
- system,
- arch='x64',
- checked=True)
- bot.RunTest('dartdevc', info, TARGETS, flags=FLAGS)
diff --git a/tools/bots/linux_distribution_support.py b/tools/bots/linux_distribution_support.py
index e0f05bf..789fce8 100644
--- a/tools/bots/linux_distribution_support.py
+++ b/tools/bots/linux_distribution_support.py
@@ -12,29 +12,14 @@
import os
import re
+import subprocess
import sys
-import bot
import bot_utils
utils = bot_utils.GetUtils()
HOST_OS = utils.GuessOS()
-SRC_BUILDER = r'debianpackage-linux'
-
-
-def SrcConfig(name, is_buildbot):
- """Returns info for the current buildbot based on the name of the builder.
-
- Currently, since we only run this on linux, this is just:
- - mode: always "release"
- - system: always "linux"
- """
- src_pattern = re.match(SRC_BUILDER, name)
- if not src_pattern:
- return None
- return bot.BuildInfo('none', 'none', 'release', 'linux')
-
def InstallFromDep(builddir):
for entry in os.listdir(builddir):
@@ -57,10 +42,14 @@
return filename
-def Run(args):
- print "Running: %s" % ' '.join(args)
+def Run(command):
+ print "Running: %s" % ' '.join(command)
sys.stdout.flush()
- bot.RunProcess(args)
+ no_color_env = dict(os.environ)
+ no_color_env['TERM'] = 'nocolor'
+ exit_code = subprocess.call(command, env=no_color_env)
+ if exit_code != 0:
+ raise OSError(exit_code)
def TestInstallation(assume_installed=True):
@@ -78,11 +67,7 @@
sys.exit(1)
-def SrcSteps(build_info):
- # We always clobber the bot, to not leave old tarballs and packages
- # floating around the out dir.
- bot.Clobber(force=True)
-
+def SrcSteps():
version = utils.GetVersion()
builddir = os.path.join(bot_utils.DART_DIR, utils.GetBuildDir(HOST_OS),
'src_and_installation')
@@ -92,64 +77,57 @@
tarfilename = 'dart-%s.tar.gz' % version
tarfile = os.path.join(builddir, tarfilename)
- with bot.BuildStep('Validating linux system'):
- print 'Validating that we are on debian jessie'
- args = ['cat', '/etc/os-release']
- (stdout, stderr, exitcode) = bot_utils.run(args)
- if exitcode != 0:
- print "Could not find linux system, exiting"
- sys.exit(1)
- if not "jessie" in stdout:
- print "Trying to build debian bits but not on debian Jessie"
- print "You can't fix this, please contact dart-engprod@"
- sys.exit(1)
+ print 'Validating that we are on debian jessie'
+ args = ['cat', '/etc/os-release']
+ (stdout, stderr, exitcode) = bot_utils.run(args)
+ if exitcode != 0:
+ print "Could not find linux system, exiting"
+ sys.exit(1)
+ if not "jessie" in stdout:
+ print "Trying to build debian bits but not on debian Jessie"
+ print "You can't fix this, please contact dart-engprod@"
+ sys.exit(1)
- with bot.BuildStep('Create src tarball'):
- print 'Building src tarball'
- Run([
- sys.executable, './tools/create_tarball.py', '--tar_filename',
- tarfile
- ])
+ print 'Building src tarball'
+ Run([
+ sys.executable, './tools/create_tarball.py', '--tar_filename', tarfile
+ ])
- print 'Building Debian packages'
- Run([
- sys.executable, './tools/create_debian_packages.py',
- '--tar_filename', tarfile, '--out_dir', builddir
- ])
+ print 'Building Debian packages'
+ Run([
+ sys.executable, './tools/create_debian_packages.py', '--tar_filename',
+ tarfile, '--out_dir', builddir
+ ])
- with bot.BuildStep('Sanity check installation'):
- if os.path.exists('/usr/bin/dart') or os.path.exists(
- '/usr/lib/dart/bin/dart2js'):
- print "Dart already installed, removing"
- UninstallDart()
- TestInstallation(assume_installed=False)
-
- InstallFromDep(builddir)
- TestInstallation(assume_installed=True)
-
- # We build the runtime target to get everything we need to test the
- # standalone target.
- Run([
- sys.executable, './tools/build.py', '-mrelease', '-ax64', 'runtime'
- ])
- # Copy in the installed binary to avoid poluting /usr/bin (and having to
- # run as root)
- Run(['cp', '/usr/bin/dart', 'out/ReleaseX64/dart'])
-
- # Sanity check dart2js and the analyzer against a hello world program
- with utils.TempDir() as temp_dir:
- test_file = CreateDartTestFile(temp_dir)
- Run(['/usr/lib/dart/bin/dart2js', test_file])
- Run(['/usr/lib/dart/bin/dartanalyzer', test_file])
- Run(['/usr/lib/dart/bin/dart', test_file])
-
- # Sanity check that pub can start up and print the version
- Run(['/usr/lib/dart/bin/pub', '--version'])
-
+ if os.path.exists('/usr/bin/dart') or os.path.exists(
+ '/usr/lib/dart/bin/dart2js'):
+ print "Dart already installed, removing"
UninstallDart()
- TestInstallation(assume_installed=False)
+ TestInstallation(assume_installed=False)
+
+ InstallFromDep(builddir)
+ TestInstallation(assume_installed=True)
+
+ # We build the runtime target to get everything we need to test the
+ # standalone target.
+ Run([sys.executable, './tools/build.py', '-mrelease', '-ax64', 'runtime'])
+ # Copy in the installed binary to avoid poluting /usr/bin (and having to
+ # run as root)
+ Run(['cp', '/usr/bin/dart', 'out/ReleaseX64/dart'])
+
+ # Sanity check dart2js and the analyzer against a hello world program
+ with utils.TempDir() as temp_dir:
+ test_file = CreateDartTestFile(temp_dir)
+ Run(['/usr/lib/dart/bin/dart2js', test_file])
+ Run(['/usr/lib/dart/bin/dartanalyzer', test_file])
+ Run(['/usr/lib/dart/bin/dart', test_file])
+
+ # Sanity check that pub can start up and print the version
+ Run(['/usr/lib/dart/bin/pub', '--version'])
+
+ UninstallDart()
+ TestInstallation(assume_installed=False)
if __name__ == '__main__':
- # We pass in None for build_step to avoid building the sdk.
- bot.RunBot(SrcConfig, SrcSteps, build_step=None)
+ SrcSteps()
diff --git a/tools/bots/pub.py b/tools/bots/pub.py
deleted file mode 100755
index 7eda4b8..0000000
--- a/tools/bots/pub.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2012, 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.
-"""
-Pub buildbot steps.
-
-Runs tests for pub and the pub packages that are hosted in the main Dart repo.
-"""
-
-import os
-import re
-
-import bot
-
-PUB_BUILDER = r'pub-(linux|mac|win)'
-
-
-def PubConfig(name, is_buildbot):
- """Returns info for the current buildbot based on the name of the builder.
-
- Currently, this is just:
- - mode: always release, we don't run pub in debug mode
- - system: "linux", "mac", or "win"
- - checked: always true
- """
- pub_pattern = re.match(PUB_BUILDER, name)
- if not pub_pattern:
- return None
-
- system = pub_pattern.group(1)
- mode = 'release'
- if system == 'win': system = 'windows'
-
- return bot.BuildInfo('none', 'vm', mode, system, checked=True, arch='x64')
-
-
-def PubSteps(build_info):
- pub_location = os.path.join('third_party', 'pkg', 'pub')
- with bot.BuildStep('Running pub tests'):
- bot.RunTestRunner(build_info, pub_location)
-
- dartdoc_location = os.path.join('third_party', 'pkg', 'dartdoc')
- with bot.BuildStep('Running dartdoc tests'):
- bot.RunTestRunner(build_info, dartdoc_location)
-
-
-if __name__ == '__main__':
- bot.RunBot(PubConfig, PubSteps)
diff --git a/tools/bots/run_android_tests.sh b/tools/bots/run_android_tests.sh
deleted file mode 100755
index 617b17e..0000000
--- a/tools/bots/run_android_tests.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2014, 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.
-
-# This script is meant to be run inside the src directory of a Dartium
-# (or Chromium) checkout, with android_tools installed in third_party.
-# It expects ContentShell to have been built for ARM android, using the
-# ninja build system.
-# It expects one or more android devices to be connected by USB to the machine.
-set -v
-set -x
-cd src
-ninja -C out/Release forwarder2
-export PATH=$PATH:third_party/android_tools/sdk/platform-tools/\
-:third_party/android_tools/sdk/tools/
-
-./build/android/adb_reverse_forwarder.py --all-devices \
- 8081 8081 8082 8082 8083 8083 8084 8084 &
-FORWARDER_PID=$!
-sleep 15
-./dart/tools/test.py -m release -a arm --progress=line --report --time \
- --write-debug-log --local_ip=localhost \
- --test_server_port=8083 --test_server_cross_origin_port=8084 \
- --test_driver_port=8081 --test_driver_error_port=8082 \
- -r ContentShellOnAndroid --drt=$1
-EXIT_CODE=$?
-kill -9 $FORWARDER_PID
-exit $EXIT_CODE
diff --git a/tools/bots/upload_debian_packages.py b/tools/bots/upload_debian_packages.py
index 83a3056..4ee7642 100755
--- a/tools/bots/upload_debian_packages.py
+++ b/tools/bots/upload_debian_packages.py
@@ -6,7 +6,6 @@
import os
-import bot
import bot_utils
utils = bot_utils.GetUtils()
@@ -35,7 +34,7 @@
if __name__ == '__main__':
- bot_name, _ = bot.GetBotName()
+ bot_name = os.environ.get('BUILDBOT_BUILDERNAME')
channel = bot_utils.GetChannelFromName(bot_name)
if channel != bot_utils.Channel.BLEEDING_EDGE:
builddir = os.path.join(bot_utils.DART_DIR, utils.GetBuildDir(HOST_OS),
diff --git a/tools/bots/version_checker.py b/tools/bots/version_checker.py
deleted file mode 100755
index 89c4cdd..0000000
--- a/tools/bots/version_checker.py
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2014, 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 json
-import re
-import sys
-
-import bot
-import bot_utils
-
-utils = bot_utils.GetUtils()
-
-VERSION_BUILDER = r'versionchecker'
-
-
-def VersionConfig(name, is_buildbot):
- version_pattern = re.match(VERSION_BUILDER, name)
- if not version_pattern:
- return None
- # We don't really use this, but we create it anyway to use the standard
- # bot execution model.
- return bot.BuildInfo('none', 'none', 'release', 'linux')
-
-
-def GetLatestVersionFromGCS(channel):
- namer = bot_utils.GCSNamer(channel=channel)
- gsutil = bot_utils.GSUtil()
- gcs_version_path = namer.version_filepath('latest')
- print 'Getting latest version from: %s' % gcs_version_path
- version_json = gsutil.cat(gcs_version_path)
- version_map = json.loads(version_json)
- return version_map['version']
-
-
-def ValidateChannelVersion(latest_version, channel):
- repo_version = utils.ReadVersionFile()
- assert repo_version.channel == channel
- if channel == bot_utils.Channel.STABLE:
- assert int(repo_version.prerelease) == 0
- assert int(repo_version.prerelease_patch) == 0
-
- version_re = r'(\d+)\.(\d+)\.(\d+)(-dev\.(\d+)\.(\d+))?'
-
- latest_match = re.match(version_re, latest_version)
- latest_major = int(latest_match.group(1))
- latest_minor = int(latest_match.group(2))
- latest_patch = int(latest_match.group(3))
- # We don't use these on stable.
- latest_prerelease = int(latest_match.group(5) or 0)
- latest_prerelease_patch = int(latest_match.group(6) or 0)
-
- if latest_major < int(repo_version.major):
- return True
- if latest_minor < int(repo_version.minor):
- return True
- if latest_patch < int(repo_version.patch):
- return True
- if latest_prerelease < int(repo_version.prerelease):
- return True
- if latest_prerelease_patch < int(repo_version.prerelease_patch):
- return True
- return False
-
-
-def VersionSteps(build_info):
- with bot.BuildStep('Version file sanity checking'):
- bot_name, _ = bot.GetBotName()
- channel = bot_utils.GetChannelFromName(bot_name)
- if channel == bot_utils.Channel.BLEEDING_EDGE:
- print 'No sanity checking on bleeding edge'
- else:
- assert (channel == bot_utils.Channel.STABLE or
- channel == bot_utils.Channel.DEV or
- channel == bot_utils.Channel.BETA)
- latest_version = GetLatestVersionFromGCS(channel)
- version = utils.GetVersion()
- print 'Latests version on GCS: %s' % latest_version
- print 'Version currently building: %s' % version
- if not ValidateChannelVersion(latest_version, channel):
- print "Validation failed"
- sys.exit(1)
- else:
- print 'Version file changed, sanity checks passed'
-
-
-if __name__ == '__main__':
- # We pass in None for build_step to avoid building.
- bot.RunBot(VersionConfig, VersionSteps, build_step=None)