Skip to content

Commit 1bdb83b

Browse files
author
Dart CI
committed
Version 2.18.0-122.0.dev
Merge commit '6ebd2633cd7bb68efb53d190780be377aeecdcc6' into 'dev'
2 parents f3bf902 + 6ebd263 commit 1bdb83b

File tree

63 files changed

+1159
-558
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1159
-558
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
- Add `connectionState` attribute and `connectionstatechange` listener to
88
`RtcPeerConnection`.
99

10+
#### `dart:js_util`
11+
12+
- Added `dartify` and a number of minor helper functions.
13+
1014
### Tools
1115

1216
#### Linter

DEPS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ vars = {
8080
"async_rev": "f3ed5f690e2ec9dbe1bfc5184705575b4f6480e5",
8181
"bazel_worker_rev": "ceeba0982d4ff40d32371c9d35f3d2dc1868de20",
8282
"benchmark_harness_rev": "0530da692a5d689f4b5450a7c8d1a8abe3e2d555",
83-
"boolean_selector_rev": "437e7f06c7e416bed91e16ae1df453555897e945",
83+
"boolean_selector_rev": "1d3565e2651d16566bb556955b96ea75018cbd0c",
8484
"boringssl_gen_rev": "ced85ef0a00bbca77ce5a91261a5f2ae61b1e62f",
8585
"boringssl_rev": "87f316d7748268eb56f2dc147bd593254ae93198",
8686
"browser-compat-data_tag": "ac8cae697014da1ff7124fba33b0b4245cc6cd1b", # v1.0.22
@@ -165,7 +165,7 @@ vars = {
165165
"WebCore_rev": "bcb10901266c884e7b3740abc597ab95373ab55c",
166166
"webdev_rev": "8c814f9d89915418d8abe354ff9befec8f2906b2",
167167
"webdriver_rev": "ff5ccb1522edf4bed578ead4d65e0cbc1f2c4f02",
168-
"webkit_inspection_protocol_rev": "dd6fb5d8b536e19cedb384d0bbf1f5631923f1e8",
168+
"webkit_inspection_protocol_rev": "e4965778e2837adc62354eec3a19123402997897",
169169
"yaml_edit_rev": "0b74d85fac10b4fbf7d1a347debcf16c8f7b0e9c",
170170
"yaml_rev": "0971c06490b9670add644ed62182acd6a5536946",
171171
"zlib_rev": "27c2f474b71d0d20764f86f60ef8b00da1a16cda",

pkg/_js_interop_checks/pubspec.yaml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,4 @@ environment:
77

88
dependencies:
99
_fe_analyzer_shared: any
10-
kernel:
11-
path: ../kernel
12-
13-
dependency_overrides:
14-
_fe_analyzer_shared:
15-
path: ../_fe_analyzer_shared
10+
kernel: any

pkg/analysis_server/lib/src/services/completion/yaml/analysis_options_generator.dart

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import 'package:analysis_server/src/protocol_server.dart';
66
import 'package:analysis_server/src/services/completion/yaml/producer.dart';
77
import 'package:analysis_server/src/services/completion/yaml/yaml_completion_generator.dart';
8+
import 'package:analyzer/error/error.dart';
89
import 'package:analyzer/file_system/file_system.dart';
10+
import 'package:analyzer/src/dart/analysis/experiments.dart';
911
import 'package:analyzer/src/lint/registry.dart';
1012
import 'package:analyzer/src/task/options.dart';
1113

@@ -17,10 +19,10 @@ class AnalysisOptionsGenerator extends YamlCompletionGenerator {
1719
// TODO(brianwilkerson) We need to support multiple valid formats.
1820
// For example, the lint rules can either be a list or a map, but we only
1921
// suggest list items.
20-
static const MapProducer analysisOptionsProducer = MapProducer({
22+
static MapProducer analysisOptionsProducer = MapProducer({
2123
AnalyzerOptions.analyzer: MapProducer({
22-
AnalyzerOptions.enableExperiment: EmptyProducer(),
23-
AnalyzerOptions.errors: EmptyProducer(),
24+
AnalyzerOptions.enableExperiment: ListProducer(_ExperimentProducer()),
25+
AnalyzerOptions.errors: _ErrorProducer(),
2426
AnalyzerOptions.exclude: EmptyProducer(),
2527
AnalyzerOptions.language: MapProducer({
2628
AnalyzerOptions.strictCasts: EmptyProducer(),
@@ -45,7 +47,7 @@ class AnalysisOptionsGenerator extends YamlCompletionGenerator {
4547
AnalyzerOptions.include: EmptyProducer(),
4648
// TODO(brianwilkerson) Create constants for 'linter' and 'rules'.
4749
'linter': MapProducer({
48-
'rules': ListProducer(LintRuleProducer()),
50+
'rules': ListProducer(_LintRuleProducer()),
4951
}),
5052
});
5153

@@ -58,10 +60,49 @@ class AnalysisOptionsGenerator extends YamlCompletionGenerator {
5860
Producer get topLevelProducer => analysisOptionsProducer;
5961
}
6062

61-
class LintRuleProducer extends Producer {
63+
class _ErrorProducer extends KeyValueProducer {
64+
static const enumProducer = EnumProducer([
65+
'ignore',
66+
'info',
67+
'warning',
68+
'error',
69+
]);
70+
71+
@override
72+
Producer? producerForKey(String key) => enumProducer;
73+
74+
@override
75+
Iterable<CompletionSuggestion> suggestions(
76+
YamlCompletionRequest request) sync* {
77+
for (var error in errorCodeValues) {
78+
yield identifier('${error.name.toLowerCase()}: ');
79+
}
80+
for (var rule in Registry.ruleRegistry.rules) {
81+
yield identifier('${rule.name}: ');
82+
}
83+
}
84+
}
85+
86+
class _ExperimentProducer extends Producer {
87+
/// Initialize a location whose valid values are the names of the known
88+
/// experimental features.
89+
const _ExperimentProducer();
90+
91+
@override
92+
Iterable<CompletionSuggestion> suggestions(
93+
YamlCompletionRequest request) sync* {
94+
for (var feature in ExperimentStatus.knownFeatures.values) {
95+
if (!feature.isEnabledByDefault) {
96+
yield identifier(feature.enableString);
97+
}
98+
}
99+
}
100+
}
101+
102+
class _LintRuleProducer extends Producer {
62103
/// Initialize a location whose valid values are the names of the registered
63104
/// lint rules.
64-
const LintRuleProducer();
105+
const _LintRuleProducer();
65106

66107
@override
67108
Iterable<CompletionSuggestion> suggestions(

pkg/analysis_server/pubspec.yaml

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,29 @@ environment:
66
sdk: '>=2.17.0 <3.0.0'
77

88
dependencies:
9-
_fe_analyzer_shared:
10-
path: ../_fe_analyzer_shared
11-
analyzer:
12-
path: ../analyzer
13-
analyzer_plugin:
14-
path: ../analyzer_plugin
9+
_fe_analyzer_shared: any
10+
analyzer: any
11+
analyzer_plugin: any
1512
args: any
1613
collection: any
1714
convert: any
1815
crypto: any
1916
dart_style: any
20-
http: any
2117
html: any
18+
http: any
2219
linter: any
23-
meta:
24-
path: ../meta
20+
meta: any
21+
path: any
2522
stream_channel: any
26-
telemetry:
27-
path: ../telemetry
23+
telemetry: any
2824
test: any
29-
path: any
3025
watcher: any
3126
yaml: any
3227

3328
dev_dependencies:
34-
analyzer_utilities:
35-
path: ../analyzer_utilities
29+
analyzer_utilities: any
3630
cli_util: any
37-
lints: ^2.0.0
31+
lints: any
3832
logging: any
3933
matcher: any
4034
test_reflective_loader: any
41-
42-
dependency_overrides:
43-
_fe_analyzer_shared:
44-
path: ../_fe_analyzer_shared
45-
analyzer:
46-
path: ../analyzer
47-
meta:
48-
path: ../meta

pkg/analysis_server/test/src/services/completion/yaml/analysis_options_generator_test.dart

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,62 @@ class AnalysisOptionsGeneratorTest extends YamlGeneratorTest {
2929
analyzer:
3030
^
3131
''');
32-
assertSuggestion('${AnalyzerOptions.enableExperiment}: ');
32+
assertSuggestion('${AnalyzerOptions.enableExperiment}:');
33+
}
34+
35+
void test_analyzer_enableExperiment() {
36+
registerLintRules();
37+
getCompletions('''
38+
analyzer:
39+
enable-experiment:
40+
^
41+
''');
42+
assertSuggestion('macros');
43+
assertNoSuggestion('super-parameters');
44+
}
45+
46+
void test_analyzer_enableExperiment_nonDuplicate() {
47+
registerLintRules();
48+
getCompletions('''
49+
analyzer:
50+
enable-experiment:
51+
- macros
52+
^
53+
''');
54+
assertNoSuggestion('macros');
55+
}
56+
57+
void test_analyzer_errors() {
58+
getCompletions('''
59+
analyzer:
60+
errors:
61+
^
62+
''');
63+
assertSuggestion('dead_code: ');
64+
assertSuggestion('invalid_assignment: ');
65+
assertSuggestion('annotate_overrides: ');
66+
}
67+
68+
void test_analyzer_errors_nonDuplicate() {
69+
getCompletions('''
70+
analyzer:
71+
errors:
72+
dead_code: info
73+
^
74+
''');
75+
assertNoSuggestion('dead_code');
76+
}
77+
78+
void test_analyzer_errors_severity() {
79+
getCompletions('''
80+
analyzer:
81+
errors:
82+
dead_code: ^
83+
''');
84+
assertSuggestion('ignore');
85+
assertSuggestion('info');
86+
assertSuggestion('warning');
87+
assertSuggestion('error');
3388
}
3489

3590
void test_codeStyle() {

pkg/analyzer/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* Deprecated `ResourceProviderMixin.newAnalysisOptionsYamlFile2`, use `newAnalysisOptionsYamlFile` instead.
55
* Deprecated `DartType.resolveToBound`, use `TypeSystem.resolveToBound` instead.
66
* Deprecated `LibraryElement.getImportsWithPrefix`, use `PrefixElement.imports` instead.
7+
* Fix for `AnalysisSession.getFile()` to return stale content even after `applyPendingFileChanges`.
78

89
## 4.0.0
910
* Removed deprecated `UriKind` and `Source.uriKind`.

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ import 'package:meta/meta.dart';
8484
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
8585
class AnalysisDriver implements AnalysisDriverGeneric {
8686
/// The version of data format, should be incremented on every format change.
87-
static const int DATA_VERSION = 218;
87+
static const int DATA_VERSION = 219;
8888

8989
/// The number of exception contexts allowed to write. Once this field is
9090
/// zero, we stop writing any new exception contexts in this process.
@@ -1041,10 +1041,6 @@ class AnalysisDriver implements AnalysisDriverGeneric {
10411041

10421042
@override
10431043
Future<void> performWork() async {
1044-
if (_fileTracker.verifyChangedFilesIfNeeded()) {
1045-
return;
1046-
}
1047-
10481044
if (!_hasDartCoreDiscovered) {
10491045
_hasDartCoreDiscovered = true;
10501046
_discoverDartCore();
@@ -1370,6 +1366,9 @@ class AnalysisDriver implements AnalysisDriverGeneric {
13701366
}
13711367
_pendingFileChanges.clear();
13721368

1369+
// Read files, so that synchronous methods also see new content.
1370+
while (_fileTracker.verifyChangedFilesIfNeeded()) {}
1371+
13731372
if (_pendingFileChangesCompleters.isNotEmpty) {
13741373
var completers = _pendingFileChangesCompleters.toList();
13751374
_pendingFileChangesCompleters.clear();

0 commit comments

Comments
 (0)