Skip to content

Commit c45ae8d

Browse files
authored
Merge pull request #696 from Workiva/fix-analyzer-plugin-stable
Fix analyzer plugin build in Dart stable
2 parents 5afffb4 + 1861f36 commit c45ae8d

File tree

15 files changed

+760
-44
lines changed

15 files changed

+760
-44
lines changed

.github/workflows/dart_ci.yml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ jobs:
7979

8080
analyzer_plugin:
8181
runs-on: ubuntu-latest
82+
defaults:
83+
run:
84+
working-directory: ./tools/analyzer_plugin
8285
strategy:
8386
fail-fast: false
8487
matrix:
@@ -92,13 +95,23 @@ jobs:
9295
- name: Print Dart SDK version
9396
run: dart --version
9497

98+
- id: link
99+
name: Override over_react dependency with local path
100+
run: cd ../.. && pub get && dart tool/travis_link_plugin_deps.dart
101+
95102
- id: install
96103
name: Install dependencies
97104
run: pub get
105+
if: always() && steps.link.outcome == 'success'
98106

99-
- name: Run analyzer_plugin checks
100-
run: |
101-
dart tool/travis_link_plugin_deps.dart
102-
cd ./tools/analyzer_plugin
103-
./tool/travis.sh
107+
- name: Validate dependencies
108+
run: pub run dependency_validator --no-fatal-pins -i analyzer,build_runner,build_web_compilers,built_value_generator
109+
if: always() && steps.install.outcome == 'success'
110+
111+
- name: Verify formatting
112+
run: pub run dart_dev format --check
113+
if: always() && matrix.sdk == '2.7.2' && steps.install.outcome == 'success'
114+
115+
- name: Run tests
116+
run: pub run dart_dev test
104117
if: always() && steps.install.outcome == 'success'

tools/analyzer_plugin/lib/src/assist/contributor_base.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import 'package:analyzer/analyzer.dart'; // ignore: deprecated_member_use
21
import 'package:analyzer/dart/analysis/session.dart';
32
import 'package:analyzer/dart/ast/ast.dart';
43
import 'package:analyzer_plugin/utilities/assist/assist.dart';
54
import 'package:meta/meta.dart';
5+
import 'package:over_react_analyzer_plugin/src/util/analyzer_util.dart';
66
import 'package:over_react_analyzer_plugin/src/async_plugin_apis/assist.dart';
77
export 'package:over_react_analyzer_plugin/src/doc_utils/docs_meta_annotation.dart';
88

tools/analyzer_plugin/lib/src/async_plugin_apis/diagnostic.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ class _DiagnosticGenerator {
181181
// but it doesn't do it for plugin errors, so we need to do that here.
182182
final lineInfo = unitResult.unit.lineInfo;
183183
final filteredErrors =
184-
filterIgnores(collector.errors, lineInfo, () => IgnoreInfo.calculateIgnores(unitResult.content, lineInfo));
184+
filterIgnores(collector.errors, lineInfo, () => IgnoreInfo.forDart(unitResult.unit, unitResult.content));
185185

186186
return _GeneratorResult(filteredErrors, notifications);
187187
}

tools/analyzer_plugin/lib/src/diagnostic/bad_key.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,19 +158,19 @@ class BadKeyDiagnostic extends ComponentUsageDiagnosticContributor {
158158
collector.addError(
159159
dynamicOrObjectCode,
160160
result.locationFor(expression),
161-
errorMessageArgs: [type.getDisplayString(), getTypeContextString()],
161+
errorMessageArgs: [type.getDisplayString(withNullability: false), getTypeContextString()],
162162
);
163163
} else if (type.isDartCoreBool || type.isDartCoreNull) {
164164
collector.addError(
165165
lowQualityCode,
166166
result.locationFor(expression),
167-
errorMessageArgs: [type.getDisplayString(), getTypeContextString()],
167+
errorMessageArgs: [type.getDisplayString(withNullability: false), getTypeContextString()],
168168
);
169169
} else if (inheritsToStringImplFromObject(type?.element)) {
170170
collector.addError(
171171
toStringCode,
172172
result.locationFor(expression),
173-
errorMessageArgs: [type.getDisplayString(), getTypeContextString()],
173+
errorMessageArgs: [type.getDisplayString(withNullability: false), getTypeContextString()],
174174
);
175175
}
176176
}

tools/analyzer_plugin/lib/src/diagnostic/invalid_child.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class InvalidChildDiagnostic extends ComponentUsageDiagnosticContributor {
7272
await collector.addErrorWithFix(
7373
code,
7474
location,
75-
errorMessageArgs: [invalidType.getDisplayString(), missingBuilderMessageSuffix],
75+
errorMessageArgs: [invalidType.getDisplayString(withNullability: false), missingBuilderMessageSuffix],
7676
fixKind: addBuilderInvocationFix,
7777
computeFix: () => buildFileEdit(result, (builder) {
7878
buildMissingInvocationEdits(argument, builder);
@@ -81,7 +81,7 @@ class InvalidChildDiagnostic extends ComponentUsageDiagnosticContributor {
8181
} else if (invalidType is FunctionType || invalidType.isDartCoreFunction) {
8282
// Functions can be used as children
8383
} else {
84-
collector.addError(code, location, errorMessageArgs: [invalidType.getDisplayString()]);
84+
collector.addError(code, location, errorMessageArgs: [invalidType.getDisplayString(withNullability: false)]);
8585
}
8686
});
8787
}

tools/analyzer_plugin/lib/src/diagnostic/missing_cascade_parens.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ignore: deprecated_member_use
2-
import 'package:analyzer/analyzer.dart' show NodeLocator;
32
import 'package:analyzer/dart/ast/ast.dart';
3+
import 'package:over_react_analyzer_plugin/src/util/analyzer_util.dart';
44
import 'package:over_react_analyzer_plugin/src/util/react_types.dart';
55
import 'package:analyzer_plugin/protocol/protocol_common.dart';
66
import 'package:over_react_analyzer_plugin/src/diagnostic/analyzer_debug_helper.dart';
@@ -110,7 +110,7 @@ class MissingCascadeParensDiagnostic extends DiagnosticContributor {
110110
continue;
111111
}
112112

113-
debug.log('${invocation.function.staticType?.getDisplayString()}');
113+
debug.log('${invocation.function.staticType?.getDisplayString(withNullability: false)}');
114114

115115
if (isBadFunction && (invocation.function.staticType?.isReactElement ?? false)) {
116116
final expr = invocation.function?.tryCast<InvocationExpression>() ??

tools/analyzer_plugin/lib/src/diagnostic/render_return_value.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,14 @@ class RenderReturnValueDiagnostic extends DiagnosticContributor {
131131
await collector.addErrorWithFix(
132132
code,
133133
location,
134-
errorMessageArgs: [returnType.getDisplayString(), missingBuilderMessageSuffix],
134+
errorMessageArgs: [returnType.getDisplayString(withNullability: false), missingBuilderMessageSuffix],
135135
fixKind: addBuilderInvocationFix,
136136
computeFix: () => buildFileEdit(result, (builder) {
137137
buildMissingInvocationEdits(returnExpression, builder);
138138
}),
139139
);
140140
} else {
141-
collector.addError(code, location, errorMessageArgs: [returnType.getDisplayString()]);
141+
collector.addError(code, location, errorMessageArgs: [returnType.getDisplayString(withNullability: false)]);
142142
}
143143
});
144144

0 commit comments

Comments
 (0)