4ff04f641b
Change-Id: Icdcc648f42393b28daf648f752e3b4d61f51aa10 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212043 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
76 lines
2.8 KiB
Dart
76 lines
2.8 KiB
Dart
// Copyright (c) 2019, 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 'utils.dart';
|
|
|
|
/// Test that library flags are serialized and read correctly.
|
|
void main() {
|
|
void setSynthetic(Library lib, bool isSynthetic) {
|
|
lib.isSynthetic = isSynthetic;
|
|
}
|
|
|
|
void verifySynthetic(Library lib, bool isSynthetic) {
|
|
if (lib.isSynthetic != isSynthetic) {
|
|
throw "Serialized and re-read library had change in synthetic flag.";
|
|
}
|
|
}
|
|
|
|
void setNonNullableByDefault(Library lib, bool isNonNullableByDefault) {
|
|
lib.isNonNullableByDefault = isNonNullableByDefault;
|
|
}
|
|
|
|
void verifyNonNullableByDefault(Library lib, bool isNonNullableByDefault) {
|
|
if (lib.isNonNullableByDefault != isNonNullableByDefault) {
|
|
throw "Serialized and re-read library had change in "
|
|
"isNonNullableByDefault flag.";
|
|
}
|
|
}
|
|
|
|
void setNonNullableByDefaultCompiledMode(Library lib,
|
|
NonNullableByDefaultCompiledMode nonNullableByDefaultCompiledMode) {
|
|
lib.nonNullableByDefaultCompiledMode = nonNullableByDefaultCompiledMode;
|
|
}
|
|
|
|
void verifyNonNullableByDefaultCompiledMode(Library lib,
|
|
NonNullableByDefaultCompiledMode nonNullableByDefaultCompiledMode) {
|
|
if (lib.nonNullableByDefaultCompiledMode !=
|
|
nonNullableByDefaultCompiledMode) {
|
|
throw "Serialized and re-read library had change in "
|
|
"nonNullableByDefaultCompiledMode flag.";
|
|
}
|
|
}
|
|
|
|
int combination = 0;
|
|
for (bool isSynthetic in [true, false]) {
|
|
for (bool isNonNullableByDefault in [true, false]) {
|
|
for (NonNullableByDefaultCompiledMode nonNullableByDefaultCompiledMode
|
|
in [
|
|
NonNullableByDefaultCompiledMode.Weak,
|
|
NonNullableByDefaultCompiledMode.Strong,
|
|
NonNullableByDefaultCompiledMode.Agnostic,
|
|
]) {
|
|
combination++;
|
|
print("Checking combination #$combination ("
|
|
"isSynthetic: $isSynthetic; "
|
|
"isNonNullableByDefault: $isNonNullableByDefault; "
|
|
"nonNullableByDefaultCompiledMode:"
|
|
" $nonNullableByDefaultCompiledMode");
|
|
Uri uri = Uri.parse("foo://bar.dart");
|
|
Library lib = new Library(uri, fileUri: uri);
|
|
setSynthetic(lib, isSynthetic);
|
|
setNonNullableByDefault(lib, isNonNullableByDefault);
|
|
setNonNullableByDefaultCompiledMode(
|
|
lib, nonNullableByDefaultCompiledMode);
|
|
Library lib2 = libRoundTrip(lib);
|
|
verifySynthetic(lib2, isSynthetic);
|
|
verifyNonNullableByDefault(lib2, isNonNullableByDefault);
|
|
verifyNonNullableByDefaultCompiledMode(
|
|
lib2, nonNullableByDefaultCompiledMode);
|
|
}
|
|
}
|
|
}
|
|
|
|
print("Done: Everything looks good.");
|
|
}
|