Fix NPE in missing_whitespace_between_adjacent_strings . (#2296)
diff --git a/lib/src/rules/missing_whitespace_between_adjacent_strings.dart b/lib/src/rules/missing_whitespace_between_adjacent_strings.dart
index 0ef9f63..65922b1 100644
--- a/lib/src/rules/missing_whitespace_between_adjacent_strings.dart
+++ b/lib/src/rules/missing_whitespace_between_adjacent_strings.dart
@@ -60,10 +60,7 @@
// skip regexp
if (node.parent is ArgumentList) {
final parentParent = node.parent.parent;
- if (parentParent is InstanceCreationExpression &&
- parentParent
- .constructorName.staticElement.enclosingElement.name ==
- 'RegExp' ||
+ if (_isRegExpInstanceCreation(parentParent) ||
parentParent is MethodInvocation &&
parentParent.realTarget == null &&
const ['RegExp', 'matches']
@@ -104,6 +101,15 @@
bool _endsWithWhitespace(String value) => _whitespaces.any(value.endsWith);
bool _startsWithWhitespace(String value) =>
_whitespaces.any(value.startsWith);
+
+ static bool _isRegExpInstanceCreation(AstNode node) {
+ if (node is InstanceCreationExpression) {
+ var constructorElement = node.constructorName.staticElement;
+ return constructorElement != null &&
+ constructorElement.enclosingElement.name == 'RegExp';
+ }
+ return false;
+ }
}
const _whitespaces = [' ', '\n', '\r', '\t'];
diff --git a/test/rules/missing_whitespace_between_adjacent_strings.dart b/test/rules/missing_whitespace_between_adjacent_strings.dart
index 3c2e48a..dd89402 100644
--- a/test/rules/missing_whitespace_between_adjacent_strings.dart
+++ b/test/rules/missing_whitespace_between_adjacent_strings.dart
@@ -18,6 +18,7 @@
f('long line\t' 'is long'); // OK
f(RegExp('(\n)+' '(\n)+' '(\n)+')); // OK
+ new Unresolved('aaa' 'bbb'); // OK
matches('(\n)+' '(\n)+' '(\n)+'); // OK
}