0b3e6bd16c
VM was not performing auto-detection of sound null safety mode if --enable-experiment=non-nullable was not specified on the command line. This change flips that logic to perform auto-detection unless --enable-experiment=no-non-nullable is specified. TEST=Added regression test runtime/tests/vm/dart/regress_44026_test.dart. Fixes https://github.com/dart-lang/sdk/issues/44026 Fixes https://github.com/dart-lang/sdk/issues/44043 Change-Id: Ide8935e90dd3a8bd5a417aeb758605dedbb853eb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170201 Commit-Queue: Alexander Markov <alexmarkov@google.com> Reviewed-by: Siva Annamalai <asiva@google.com>
40 lines
1.4 KiB
Dart
40 lines
1.4 KiB
Dart
// 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:io";
|
|
import "detect_nullsafety_helper.dart";
|
|
|
|
void main() {
|
|
// Create temporary directory.
|
|
var tmpDir = Directory.systemTemp.createTempSync();
|
|
var tmpDirPath = tmpDir.path;
|
|
String sourcePath = "$tmpDirPath/strong.dart";
|
|
String dillPath = "$tmpDirPath/strong.dill";
|
|
String jitPath = "$tmpDirPath/strong.appjit";
|
|
|
|
// Generate code for an isolate to run in strong mode.
|
|
generateIsolateSource(sourcePath, "");
|
|
generateKernel(sourcePath, dillPath);
|
|
generateAppJIT(sourcePath, jitPath);
|
|
|
|
try {
|
|
// Running from Source.
|
|
testNullSafetyMode(sourcePath, 'Strong Mode');
|
|
// Without the enable experiment option it will be in strong mode.
|
|
testNullSafetyMode1(sourcePath, 'Strong Mode');
|
|
|
|
// Running from Kernel File.
|
|
testNullSafetyMode(dillPath, 'Strong Mode');
|
|
// Without the enable experiment option it will be inferred to strong.
|
|
testNullSafetyMode1(dillPath, 'Strong Mode');
|
|
|
|
// Running from app JIT File.
|
|
testNullSafetyMode(jitPath, 'Strong Mode');
|
|
// Without the enable experiment option it will be inferred to strong.
|
|
testNullSafetyMode1(jitPath, 'Strong Mode');
|
|
} finally {
|
|
tmpDir.deleteSync(recursive: true);
|
|
}
|
|
}
|