Enable and fix a number of lints
diff --git a/pkgs/string_scanner/analysis_options.yaml b/pkgs/string_scanner/analysis_options.yaml index 7684be7..60abe63 100644 --- a/pkgs/string_scanner/analysis_options.yaml +++ b/pkgs/string_scanner/analysis_options.yaml
@@ -7,19 +7,21 @@ linter: rules: - avoid_bool_literals_in_conditional_expressions + - avoid_catching_errors - avoid_classes_with_only_static_members - avoid_function_literals_in_foreach_calls + - avoid_private_typedef_functions + - avoid_redundant_argument_values - avoid_renaming_method_parameters - #- avoid_returning_null - avoid_returning_null_for_future - avoid_returning_null_for_void - avoid_returning_this - avoid_single_cascade_in_expression_statements - avoid_unused_constructor_parameters + - avoid_void_async - await_only_futures - camel_case_types - cancel_subscriptions - #- cascade_invocations - comment_references - constant_identifier_names - control_flow_in_finally @@ -31,21 +33,34 @@ - invariant_booleans - iterable_contains_unrelated_type - join_return_with_assignment + - lines_longer_than_80_chars - list_remove_unrelated_type - literal_only_boolean_expressions + - missing_whitespace_between_adjacent_strings - no_adjacent_strings_in_list + - no_runtimeType_toString - non_constant_identifier_names - only_throw_errors - overridden_fields - package_api_docs - package_names - package_prefixed_library_names + - prefer_asserts_in_initializer_lists - prefer_const_constructors - #- prefer_final_locals + - prefer_const_declarations + - prefer_expression_function_bodies + - prefer_final_locals + - prefer_function_declarations_over_variables - prefer_initializing_formals + - prefer_inlined_adds - prefer_interpolation_to_compose_strings + - prefer_is_not_operator - prefer_null_aware_operators + - prefer_relative_imports - prefer_typing_uninitialized_variables + - prefer_void_to_null + - provide_deprecation_message + - sort_pub_dependencies - test_types_in_equals - throw_in_finally - unnecessary_await_in_return @@ -53,6 +68,9 @@ - unnecessary_getters_setters - unnecessary_lambdas - unnecessary_null_aware_assignments + - unnecessary_overrides - unnecessary_parenthesis - unnecessary_statements + - unnecessary_string_interpolations + - use_string_buffers - void_checks
diff --git a/pkgs/string_scanner/example/example.dart b/pkgs/string_scanner/example/example.dart index 0358967..e92677f 100644 --- a/pkgs/string_scanner/example/example.dart +++ b/pkgs/string_scanner/example/example.dart
@@ -12,11 +12,11 @@ num parseNumber(String source) { // Scan a number ("1", "1.5", "-3"). - var scanner = StringScanner(source); + final scanner = StringScanner(source); // [Scanner.scan] tries to consume a [Pattern] and returns whether or not it // succeeded. It will move the scan pointer past the end of the pattern. - var negative = scanner.scan('-'); + final negative = scanner.scan('-'); // [Scanner.expect] consumes a [Pattern] and throws a [FormatError] if it // fails. Like [Scanner.scan], it will move the scan pointer forward. @@ -28,7 +28,7 @@ if (scanner.scan('.')) { scanner.expect(RegExp(r'\d+')); - var decimal = scanner.lastMatch[0]; + final decimal = scanner.lastMatch[0]; number += int.parse(decimal) / math.pow(10, decimal.length); }
diff --git a/pkgs/string_scanner/lib/src/eager_span_scanner.dart b/pkgs/string_scanner/lib/src/eager_span_scanner.dart index d34e4f7..848cb72 100644 --- a/pkgs/string_scanner/lib/src/eager_span_scanner.dart +++ b/pkgs/string_scanner/lib/src/eager_span_scanner.dart
@@ -44,11 +44,11 @@ @override set position(int newPosition) { - var oldPosition = position; + final oldPosition = position; super.position = newPosition; if (newPosition > oldPosition) { - var newlines = _newlinesIn(string.substring(oldPosition, newPosition)); + final newlines = _newlinesIn(string.substring(oldPosition, newPosition)); _line += newlines.length; if (newlines.isEmpty) { _column += newPosition - oldPosition; @@ -56,7 +56,7 @@ _column = newPosition - newlines.last.end; } } else { - var newlines = _newlinesIn(string.substring(newPosition, oldPosition)); + final newlines = _newlinesIn(string.substring(newPosition, oldPosition)); if (_betweenCRLF) newlines.removeLast(); _line -= newlines.length; @@ -81,7 +81,7 @@ @override int readChar() { - var character = super.readChar(); + final character = super.readChar(); _adjustLineAndColumn(character); return character; } @@ -100,7 +100,7 @@ bool scan(Pattern pattern) { if (!super.scan(pattern)) return false; - var newlines = _newlinesIn(lastMatch[0]); + final newlines = _newlinesIn(lastMatch[0]); _line += newlines.length; if (newlines.isEmpty) { _column += lastMatch[0].length; @@ -114,7 +114,7 @@ /// Returns a list of [Match]es describing all the newlines in [text], which /// is assumed to end at [position]. List<Match> _newlinesIn(String text) { - var newlines = _newlineRegExp.allMatches(text).toList(); + final newlines = _newlineRegExp.allMatches(text).toList(); if (_betweenCRLF) newlines.removeLast(); return newlines; }
diff --git a/pkgs/string_scanner/lib/src/line_scanner.dart b/pkgs/string_scanner/lib/src/line_scanner.dart index 180d923..9e7d918 100644 --- a/pkgs/string_scanner/lib/src/line_scanner.dart +++ b/pkgs/string_scanner/lib/src/line_scanner.dart
@@ -48,11 +48,11 @@ @override set position(int newPosition) { - var oldPosition = position; + final oldPosition = position; super.position = newPosition; if (newPosition > oldPosition) { - var newlines = _newlinesIn(string.substring(oldPosition, newPosition)); + final newlines = _newlinesIn(string.substring(oldPosition, newPosition)); _line += newlines.length; if (newlines.isEmpty) { _column += newPosition - oldPosition; @@ -60,7 +60,7 @@ _column = newPosition - newlines.last.end; } } else { - var newlines = _newlinesIn(string.substring(newPosition, oldPosition)); + final newlines = _newlinesIn(string.substring(newPosition, oldPosition)); if (_betweenCRLF) newlines.removeLast(); _line -= newlines.length; @@ -85,7 +85,7 @@ @override int readChar() { - var character = super.readChar(); + final character = super.readChar(); _adjustLineAndColumn(character); return character; } @@ -104,7 +104,7 @@ bool scan(Pattern pattern) { if (!super.scan(pattern)) return false; - var newlines = _newlinesIn(lastMatch[0]); + final newlines = _newlinesIn(lastMatch[0]); _line += newlines.length; if (newlines.isEmpty) { _column += lastMatch[0].length; @@ -118,7 +118,7 @@ /// Returns a list of [Match]es describing all the newlines in [text], which /// is assumed to end at [position]. List<Match> _newlinesIn(String text) { - var newlines = _newlineRegExp.allMatches(text).toList(); + final newlines = _newlineRegExp.allMatches(text).toList(); if (_betweenCRLF) newlines.removeLast(); return newlines; }
diff --git a/pkgs/string_scanner/lib/src/relative_span_scanner.dart b/pkgs/string_scanner/lib/src/relative_span_scanner.dart index 096bee3..a7a035a 100644 --- a/pkgs/string_scanner/lib/src/relative_span_scanner.dart +++ b/pkgs/string_scanner/lib/src/relative_span_scanner.dart
@@ -34,8 +34,8 @@ @override int get column { - var line = _sourceFile.getLine(_startLocation.offset + position); - var column = + final line = _sourceFile.getLine(_startLocation.offset + position); + final column = _sourceFile.getColumn(_startLocation.offset + position, line: line); return line == _startLocation.line ? column - _startLocation.column @@ -74,7 +74,7 @@ @override FileSpan spanFrom(LineScannerState startState, [LineScannerState endState]) { - var endPosition = endState == null ? position : endState.position; + final endPosition = endState == null ? position : endState.position; return _sourceFile.span(_startLocation.offset + startState.position, _startLocation.offset + endPosition); } @@ -99,7 +99,7 @@ position ??= match == null ? this.position : match.start; length ??= match == null ? 1 : match.end - match.start; - var span = _sourceFile.span(_startLocation.offset + position, + final span = _sourceFile.span(_startLocation.offset + position, _startLocation.offset + position + length); throw StringScannerException(message, span, string); }
diff --git a/pkgs/string_scanner/lib/src/span_scanner.dart b/pkgs/string_scanner/lib/src/span_scanner.dart index 732a76f..1a8ca2a 100644 --- a/pkgs/string_scanner/lib/src/span_scanner.dart +++ b/pkgs/string_scanner/lib/src/span_scanner.dart
@@ -82,14 +82,14 @@ /// /// This scans through [span]`.text, but emits new spans from [span]`.file` in /// their appropriate relative positions. The [string] field contains only - /// [span]`.text`, and [position], [line], and [column] are all relative to the - /// span. + /// [span]`.text`, and [position], [line], and [column] are all relative to + /// the span. factory SpanScanner.within(FileSpan span) = RelativeSpanScanner; /// Creates a [FileSpan] representing the source range between [startState] /// and the current position. FileSpan spanFrom(LineScannerState startState, [LineScannerState endState]) { - var endPosition = endState == null ? position : endState.position; + final endPosition = endState == null ? position : endState.position; return _sourceFile.span(startState.position, endPosition); } @@ -112,7 +112,7 @@ position ??= match == null ? this.position : match.start; length ??= match == null ? 0 : match.end - match.start; - var span = _sourceFile.span(position, position + length); + final span = _sourceFile.span(position, position + length); throw StringScannerException(message, span, string); } }
diff --git a/pkgs/string_scanner/lib/src/string_scanner.dart b/pkgs/string_scanner/lib/src/string_scanner.dart index 1739a7c..55ff17d 100644 --- a/pkgs/string_scanner/lib/src/string_scanner.dart +++ b/pkgs/string_scanner/lib/src/string_scanner.dart
@@ -81,7 +81,7 @@ /// affect [lastMatch]. int peekChar([int offset]) { offset ??= 0; - var index = position + offset; + final index = position + offset; if (index < 0 || index >= string.length) return null; return string.codeUnitAt(index); } @@ -123,7 +123,7 @@ /// /// Returns whether or not [pattern] matched. bool scan(Pattern pattern) { - var success = matches(pattern); + final success = matches(pattern); if (success) { _position = _lastMatch.end; _lastMatchPosition = _position; @@ -143,7 +143,7 @@ if (name == null) { if (pattern is RegExp) { - var source = pattern.pattern; + final source = pattern.pattern; name = '/$source/'; } else { name = @@ -201,8 +201,8 @@ position ??= match == null ? this.position : match.start; length ??= match == null ? 0 : match.end - match.start; - var sourceFile = SourceFile.fromString(string, url: sourceUrl); - var span = sourceFile.span(position, position + length); + final sourceFile = SourceFile.fromString(string, url: sourceUrl); + final span = sourceFile.span(position, position + length); throw StringScannerException(message, span, string); }
diff --git a/pkgs/string_scanner/test/error_test.dart b/pkgs/string_scanner/test/error_test.dart index dfa7175..6173040 100644 --- a/pkgs/string_scanner/test/error_test.dart +++ b/pkgs/string_scanner/test/error_test.dart
@@ -9,7 +9,7 @@ void main() { test('defaults to the last match', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); scanner.expect('foo '); scanner.expect('bar'); expect(() => scanner.error('oh no!'), throwsStringScannerException('bar')); @@ -17,39 +17,39 @@ group('with match', () { test('supports an earlier match', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); scanner.expect('foo '); - var match = scanner.lastMatch; + final match = scanner.lastMatch; scanner.expect('bar'); expect(() => scanner.error('oh no!', match: match), throwsStringScannerException('foo ')); }); test('supports a match on a previous line', () { - var scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); + final scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); scanner.expect('foo bar baz\ndo '); scanner.expect('re'); - var match = scanner.lastMatch; + final match = scanner.lastMatch; scanner.expect(' mi\nearth '); expect(() => scanner.error('oh no!', match: match), throwsStringScannerException('re')); }); test('supports a multiline match', () { - var scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); + final scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); scanner.expect('foo bar '); scanner.expect('baz\ndo'); - var match = scanner.lastMatch; + final match = scanner.lastMatch; scanner.expect(' re mi'); expect(() => scanner.error('oh no!', match: match), throwsStringScannerException('baz\ndo')); }); test('supports a match after position', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); scanner.expect('foo '); scanner.expect('bar'); - var match = scanner.lastMatch; + final match = scanner.lastMatch; scanner.position = 0; expect(() => scanner.error('oh no!', match: match), throwsStringScannerException('bar')); @@ -58,48 +58,48 @@ group('with position and/or length', () { test('defaults to length 0', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); scanner.expect('foo '); expect(() => scanner.error('oh no!', position: 1), throwsStringScannerException('')); }); test('defaults to the current position', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); scanner.expect('foo '); expect(() => scanner.error('oh no!', length: 3), throwsStringScannerException('bar')); }); test('supports an earlier position', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); scanner.expect('foo '); expect(() => scanner.error('oh no!', position: 1, length: 2), throwsStringScannerException('oo')); }); test('supports a position on a previous line', () { - var scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); + final scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); scanner.expect('foo bar baz\ndo re mi\nearth'); expect(() => scanner.error('oh no!', position: 15, length: 2), throwsStringScannerException('re')); }); test('supports a multiline length', () { - var scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); + final scanner = StringScanner('foo bar baz\ndo re mi\nearth fire water'); scanner.expect('foo bar baz\ndo re mi\nearth'); expect(() => scanner.error('oh no!', position: 8, length: 8), throwsStringScannerException('baz\ndo r')); }); test('supports a position after the current one', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); expect(() => scanner.error('oh no!', position: 4, length: 3), throwsStringScannerException('bar')); }); test('supports a length of zero', () { - var scanner = StringScanner('foo bar baz'); + final scanner = StringScanner('foo bar baz'); expect(() => scanner.error('oh no!', position: 4, length: 0), throwsStringScannerException('')); });
diff --git a/pkgs/string_scanner/test/line_scanner_test.dart b/pkgs/string_scanner/test/line_scanner_test.dart index dc9b8cf..aafc74a 100644 --- a/pkgs/string_scanner/test/line_scanner_test.dart +++ b/pkgs/string_scanner/test/line_scanner_test.dart
@@ -150,7 +150,7 @@ test('state= restores the line, column, and position', () { scanner.scan('foo\nb'); - var state = scanner.state; + final state = scanner.state; scanner.scan('ar\nba'); scanner.state = state;
diff --git a/pkgs/string_scanner/test/span_scanner_test.dart b/pkgs/string_scanner/test/span_scanner_test.dart index e2570ae..2034d0a 100644 --- a/pkgs/string_scanner/test/span_scanner_test.dart +++ b/pkgs/string_scanner/test/span_scanner_test.dart
@@ -9,21 +9,23 @@ import 'utils.dart'; void main() { - testForImplementation('lazy', ([String string]) { - return SpanScanner(string ?? 'foo\nbar\nbaz', sourceUrl: 'source'); - }); + testForImplementation( + 'lazy', + ([String string]) => + SpanScanner(string ?? 'foo\nbar\nbaz', sourceUrl: 'source')); - testForImplementation('eager', ([String string]) { - return SpanScanner.eager(string ?? 'foo\nbar\nbaz', sourceUrl: 'source'); - }); + testForImplementation( + 'eager', + ([String string]) => + SpanScanner.eager(string ?? 'foo\nbar\nbaz', sourceUrl: 'source')); group('within', () { - var text = 'first\nbefore: foo\nbar\nbaz :after\nlast'; - var startOffset = text.indexOf('foo'); + const text = 'first\nbefore: foo\nbar\nbaz :after\nlast'; + final startOffset = text.indexOf('foo'); SpanScanner scanner; setUp(() { - var file = SourceFile.fromString(text, url: 'source'); + final file = SourceFile.fromString(text, url: 'source'); scanner = SpanScanner.within(file.span(startOffset, text.indexOf(' :after'))); }); @@ -49,7 +51,7 @@ scanner.scan('fo'); scanner.scan('o\nba'); - var span = scanner.lastSpan; + final span = scanner.lastSpan; expect(span.start.offset, equals(startOffset + 2)); expect(span.start.line, equals(1)); expect(span.start.column, equals(10)); @@ -65,18 +67,18 @@ test('.spanFrom() returns a span from a previous state', () { scanner.scan('fo'); - var state = scanner.state; + final state = scanner.state; scanner.scan('o\nba'); scanner.scan('r\nba'); - var span = scanner.spanFrom(state); + final span = scanner.spanFrom(state); expect(span.text, equals('o\nbar\nba')); }); test('.emptySpan returns an empty span at the current location', () { scanner.scan('foo\nba'); - var span = scanner.emptySpan; + final span = scanner.emptySpan; expect(span.start.offset, equals(startOffset + 6)); expect(span.start.line, equals(2)); expect(span.start.column, equals(2)); @@ -113,7 +115,7 @@ scanner.scan('fo'); scanner.scan('o\nba'); - var span = scanner.lastSpan; + final span = scanner.lastSpan; expect(span.start.offset, equals(2)); expect(span.start.line, equals(0)); expect(span.start.column, equals(2)); @@ -129,27 +131,27 @@ test('.spanFrom() returns a span from a previous state', () { scanner.scan('fo'); - var state = scanner.state; + final state = scanner.state; scanner.scan('o\nba'); scanner.scan('r\nba'); - var span = scanner.spanFrom(state); + final span = scanner.spanFrom(state); expect(span.text, equals('o\nbar\nba')); }); test('.spanFrom() handles surrogate pairs correctly', () { scanner = create('fo\u{12345}o'); scanner.scan('fo'); - var state = scanner.state; + final state = scanner.state; scanner.scan('\u{12345}o'); - var span = scanner.spanFrom(state); + final span = scanner.spanFrom(state); expect(span.text, equals('\u{12345}o')); }); test('.emptySpan returns an empty span at the current location', () { scanner.scan('foo\nba'); - var span = scanner.emptySpan; + final span = scanner.emptySpan; expect(span.start.offset, equals(6)); expect(span.start.line, equals(1)); expect(span.start.column, equals(2));
diff --git a/pkgs/string_scanner/test/string_scanner_test.dart b/pkgs/string_scanner/test/string_scanner_test.dart index e1e5b4e..9dee9d1 100644 --- a/pkgs/string_scanner/test/string_scanner_test.dart +++ b/pkgs/string_scanner/test/string_scanner_test.dart
@@ -374,7 +374,7 @@ }); test('setting and resetting position clears lastMatch', () { - var oldPosition = scanner.position; + final oldPosition = scanner.position; scanner.position = 1; scanner.position = oldPosition; expect(scanner.lastMatch, isNull); @@ -395,7 +395,7 @@ group('a scanner constructed with a custom position', () { test('starts scanning from that position', () { - var scanner = StringScanner('foo bar', position: 1); + final scanner = StringScanner('foo bar', position: 1); expect(scanner.position, equals(1)); expect(scanner.rest, equals('oo bar'));