Skip to content

Commit c9884cc

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Analyze SDK with non-nullable experiment enabled, update MockSdk.
Initial: https://dart-review.googlesource.com/c/sdk/+/134401 Reverted: https://dart-review.googlesource.com/c/sdk/+/134802 Internal presubmit is green. https://test.corp.google.com/ui#id=OCL:294345942:BASE:297377939:1582738004318:fb4ae9fe Change-Id: I25e6445bd0241a89850dff3d88ece0edd768053a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135241 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 12d610e commit c9884cc

File tree

7 files changed

+171
-122
lines changed

7 files changed

+171
-122
lines changed

pkg/analysis_server/test/src/services/correction/fix/remove_method_declaration_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ class B extends A {
120120
''');
121121
}
122122

123-
/// TODO(scheglov) This test will fail with NNBD SDK.
123+
@FailingTest(issue: 'https://github.com/dart-lang/linter/issues/1997')
124124
Future<void> test_method_toString() async {
125125
await resolveTestUnit('''
126126
class A {

pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,11 @@ import 'package:analyzer/file_system/file_system.dart';
77
import 'package:analyzer/src/context/packages.dart';
88
import 'package:analyzer/src/generated/source.dart';
99
import 'package:meta/meta.dart';
10-
import 'package:pub_semver/pub_semver.dart';
1110

1211
class FeatureSetProvider {
1312
/// This flag will be turned to `true` and inlined when we un-fork SDK,
1413
/// so that the only SDK is the Null Safe SDK.
15-
static const isNullSafetySdk = false;
16-
17-
static final _preNonNullableVersion = Version(2, 7, 0);
14+
static const isNullSafetySdk = true;
1815

1916
final FeatureSet _sdkFeatureSet;
2017
final Packages _packages;
@@ -58,11 +55,7 @@ class FeatureSetProvider {
5855
@required FeatureSet packageDefaultFeatureSet,
5956
@required FeatureSet nonPackageDefaultFeatureSet,
6057
}) {
61-
var sdkFeatureSet = _determineSdkFeatureSet(
62-
resourceProvider,
63-
sourceFactory,
64-
packageDefaultFeatureSet,
65-
);
58+
var sdkFeatureSet = FeatureSet.fromEnableFlags(['non-nullable']);
6659

6760
return FeatureSetProvider._(
6861
sdkFeatureSet: sdkFeatureSet,
@@ -71,32 +64,4 @@ class FeatureSetProvider {
7164
nonPackageDefaultFeatureSet: nonPackageDefaultFeatureSet,
7265
);
7366
}
74-
75-
/// Read `dart:core` file and determine if SDK in non-nullable by default.
76-
///
77-
/// If it is, use the [defaultFeatureSet], which might have enabled
78-
/// [Feature.non_nullable], so SDK will be parsed and resolved as
79-
/// non-nullable.
80-
///
81-
/// Otherwise, restrict the SDK language to the maximum known now.
82-
static FeatureSet _determineSdkFeatureSet(
83-
ResourceProvider resourceProvider,
84-
SourceFactory sourceFactory,
85-
FeatureSet defaultFeatureSet,
86-
) {
87-
var objectSource = sourceFactory.forUri('dart:core/object.dart');
88-
if (objectSource == null) {
89-
objectSource = sourceFactory.forUri('dart:core');
90-
}
91-
92-
try {
93-
var objectFile = resourceProvider.getFile(objectSource.fullName);
94-
var objectContent = objectFile.readAsStringSync();
95-
if (!objectContent.contains('bool operator ==(Object other)')) {
96-
return defaultFeatureSet.restrictToVersion(_preNonNullableVersion);
97-
}
98-
} catch (_) {}
99-
100-
return defaultFeatureSet;
101-
}
10267
}

0 commit comments

Comments
 (0)