Skip to content

Commit 874709e

Browse files
author
Dart CI
committed
Version 2.11.0-241.0.dev
Merge commit '2ad8fdeebb0de82c8384c0a1dd4ca2109e53f450' into 'dev'
2 parents 86242db + 2ad8fde commit 874709e

File tree

6 files changed

+71
-27
lines changed

6 files changed

+71
-27
lines changed

.dart_tool/package_config.json

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"constraint, update this by running tools/generate_package_config.dart."
1212
],
1313
"configVersion": 2,
14-
"generated": "2020-10-20T09:30:11.069083",
14+
"generated": "2020-10-20T23:33:25.579167",
1515
"generator": "tools/generate_package_config.dart",
1616
"packages": [
1717
{
@@ -254,7 +254,8 @@
254254
{
255255
"name": "ffi",
256256
"rootUri": "../third_party/pkg/ffi",
257-
"packageUri": "lib/"
257+
"packageUri": "lib/",
258+
"languageVersion": "2.10"
258259
},
259260
{
260261
"name": "fixnum",
@@ -520,6 +521,12 @@
520521
"packageUri": "lib/",
521522
"languageVersion": "2.0"
522523
},
524+
{
525+
"name": "scrape",
526+
"rootUri": "../pkg/scrape",
527+
"packageUri": "lib/",
528+
"languageVersion": "2.10"
529+
},
523530
{
524531
"name": "sdk_library_metadata",
525532
"rootUri": "../sdk/lib/_internal/sdk_library_metadata",
@@ -766,4 +773,4 @@
766773
"languageVersion": "2.4"
767774
}
768775
]
769-
}
776+
}

DEPS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ vars = {
9898

9999
"chromedriver_tag": "83.0.4103.39",
100100
"dartdoc_rev" : "8f5f30e58bbc0f11f104888ee87f11cbd6b82cc7",
101-
"ffi_rev": "454ab0f9ea6bd06942a983238d8a6818b1357edb",
101+
"ffi_rev": "a90bd424116fb6f416337db67425171f2dc4c98f",
102102
"fixnum_rev": "16d3890c6dc82ca629659da1934e412292508bba",
103103
"glob_rev": "e9f4e6b7ae8abe5071461cf8f47191bb19cf7ef6",
104104
"html_rev": "22f17e97fedeacaa1e945cf84d8016284eed33a6",

pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ import 'package:analysis_server/src/services/linter/lint_names.dart';
6464
import 'package:analyzer/dart/analysis/analysis_context.dart';
6565
import 'package:analyzer/dart/analysis/results.dart';
6666
import 'package:analyzer/error/error.dart';
67+
import 'package:analyzer/exception/exception.dart';
6768
import 'package:analyzer/source/error_processor.dart';
6869
import 'package:analyzer/src/error/codes.dart';
6970
import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine;
@@ -123,7 +124,9 @@ class BulkFixProcessor {
123124
LintNames.empty_statements: [
124125
RemoveEmptyStatement.newInstance,
125126
],
126-
LintNames.hash_and_equals: [CreateMethod.equalsOrHashCode],
127+
LintNames.hash_and_equals: [
128+
CreateMethod.equalsOrHashCode,
129+
],
127130
LintNames.no_duplicate_case_values: [
128131
RemoveDuplicateCase.newInstance,
129132
],
@@ -412,28 +415,35 @@ class BulkFixProcessor {
412415
}
413416

414417
var errorCode = diagnostic.errorCode;
415-
if (errorCode is LintCode) {
416-
var generators = lintProducerMap[errorCode.name];
417-
if (generators != null) {
418-
for (var generator in generators) {
418+
try {
419+
if (errorCode is LintCode) {
420+
var generators = lintProducerMap[errorCode.name];
421+
if (generators != null) {
422+
for (var generator in generators) {
423+
await compute(generator());
424+
}
425+
}
426+
} else {
427+
var generator = nonLintProducerMap[errorCode];
428+
if (generator != null) {
419429
await compute(generator());
420430
}
421-
}
422-
} else {
423-
var generator = nonLintProducerMap[errorCode];
424-
if (generator != null) {
425-
await compute(generator());
426-
}
427-
var multiGenerators = nonLintMultiProducerMap[errorCode];
428-
if (multiGenerators != null) {
429-
for (var multiGenerator in multiGenerators) {
430-
var multiProducer = multiGenerator();
431-
multiProducer.configure(context);
432-
for (var producer in multiProducer.producers) {
433-
await compute(producer);
431+
var multiGenerators = nonLintMultiProducerMap[errorCode];
432+
if (multiGenerators != null) {
433+
for (var multiGenerator in multiGenerators) {
434+
var multiProducer = multiGenerator();
435+
multiProducer.configure(context);
436+
for (var producer in multiProducer.producers) {
437+
await compute(producer);
438+
}
434439
}
435440
}
436441
}
442+
} catch (e, s) {
443+
throw CaughtException.withMessage(
444+
'Exception generating fix for ${errorCode.name} in ${result.path}',
445+
e,
446+
s);
437447
}
438448
}
439449
}

pkg/analysis_server/lib/src/services/correction/dart/create_method.dart

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,18 @@ class CreateMethod extends CorrectionProducer {
3636
}
3737

3838
Future<void> createEqualsOrHashCode(ChangeBuilder builder) async {
39-
final methodDecl = node.thisOrAncestorOfType<MethodDeclaration>();
40-
final classDecl = methodDecl.thisOrAncestorOfType<ClassDeclaration>();
41-
if (methodDecl != null && classDecl != null) {
39+
final memberDecl = node.thisOrAncestorOfType<ClassMember>();
40+
if (memberDecl == null) {
41+
return;
42+
}
43+
final classDecl = memberDecl.thisOrAncestorOfType<ClassDeclaration>();
44+
if (classDecl != null) {
4245
final classElement = classDecl.declaredElement;
4346

47+
var missingEquals = memberDecl is FieldDeclaration ||
48+
(memberDecl as MethodDeclaration).name.name == 'hashCode';
4449
ExecutableElement element;
45-
if (methodDecl.name.name == 'hashCode') {
50+
if (missingEquals) {
4651
_memberName = '==';
4752
element = classElement.lookUpInheritedMethod(
4853
_memberName, classElement.library);

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,28 @@ class C {
4747
''');
4848
}
4949

50+
/// See: https://github.com/dart-lang/sdk/issues/43867
51+
Future<void> test_equals_fieldHashCode() async {
52+
await resolveTestUnit('''
53+
class C {
54+
@override
55+
int hashCode = 13;
56+
}
57+
''');
58+
await assertHasFix('''
59+
class C {
60+
@override
61+
int hashCode = 13;
62+
63+
@override
64+
bool operator ==(Object other) {
65+
// TODO: implement ==
66+
return super == other;
67+
}
68+
}
69+
''');
70+
}
71+
5072
Future<void> test_hashCode() async {
5173
await resolveTestUnit('''
5274
class C {

tools/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ CHANNEL dev
2727
MAJOR 2
2828
MINOR 11
2929
PATCH 0
30-
PRERELEASE 240
30+
PRERELEASE 241
3131
PRERELEASE_PATCH 0

0 commit comments

Comments
 (0)