Enable and fix a number of lints
diff --git a/pkgs/pubspec_parse/analysis_options.yaml b/pkgs/pubspec_parse/analysis_options.yaml index ed170c1..b959116 100644 --- a/pkgs/pubspec_parse/analysis_options.yaml +++ b/pkgs/pubspec_parse/analysis_options.yaml
@@ -20,12 +20,13 @@ - avoid_renaming_method_parameters - avoid_return_types_on_setters - avoid_returning_null + - avoid_returning_null_for_future + - avoid_shadowing_type_parameters - avoid_types_as_parameter_names - avoid_unused_constructor_parameters - await_only_futures - camel_case_types - cancel_subscriptions - #- cascade_invocations - comment_references - constant_identifier_names - control_flow_in_finally @@ -44,10 +45,11 @@ - no_adjacent_strings_in_list - no_duplicate_case_values - non_constant_identifier_names + - null_closures - omit_local_variable_types - only_throw_errors - overridden_fields - #- package_api_docs + - package_api_docs - package_names - package_prefixed_library_names - prefer_adjacent_string_concatenation @@ -57,6 +59,7 @@ - prefer_contains - prefer_equal_for_default_values - prefer_final_fields + - prefer_final_locals - prefer_initializing_formals - prefer_interpolation_to_compose_strings - prefer_is_empty @@ -70,14 +73,17 @@ - throw_in_finally - type_init_formals - unawaited_futures + - unnecessary_await_in_return - unnecessary_brace_in_string_interps - unnecessary_const - unnecessary_getters_setters - unnecessary_lambdas - unnecessary_new - unnecessary_null_aware_assignments + - unnecessary_parenthesis - unnecessary_statements - unnecessary_this - unrelated_type_equality_checks + - use_function_type_syntax_for_parameters - use_rethrow_when_possible - valid_regexps
diff --git a/pkgs/pubspec_parse/lib/src/dependency.dart b/pkgs/pubspec_parse/lib/src/dependency.dart index 0fb761c..cba01dc 100644 --- a/pkgs/pubspec_parse/lib/src/dependency.dart +++ b/pkgs/pubspec_parse/lib/src/dependency.dart
@@ -12,7 +12,7 @@ Map<String, Dependency> parseDeps(Map source) => source?.map((k, v) { - var key = k as String; + final key = k as String; Dependency value; try { value = _fromJson(v); @@ -23,7 +23,7 @@ // extract the associated error information. var message = e.message; - var innerError = e.innerError; + final innerError = e.innerError; // json_annotation should handle FormatException... // https://github.com/dart-lang/json_serializable/issues/233 if (innerError is FormatException) { @@ -51,13 +51,13 @@ } if (data is Map) { - var matchedKeys = + final matchedKeys = data.keys.cast<String>().where((key) => key != 'version').toList(); if (data.isEmpty || (matchedKeys.isEmpty && data.containsKey('version'))) { return _$HostedDependencyFromJson(data); } else { - var weirdKey = matchedKeys.firstWhere((k) => !_sourceKeys.contains(k), + final weirdKey = matchedKeys.firstWhere((k) => !_sourceKeys.contains(k), orElse: () => null); if (weirdKey != null) { @@ -69,7 +69,7 @@ 'A dependency may only have one source.'); } - var key = matchedKeys.single; + final key = matchedKeys.single; try { switch (key) { @@ -146,7 +146,7 @@ /// Supports URIs like `[user@]host.xz:path/to/repo.git/` /// See https://git-scm.com/docs/git-clone#_git_urls_a_id_urls_a Uri _tryParseScpUri(String value) { - var colonIndex = value.indexOf(':'); + final colonIndex = value.indexOf(':'); if (colonIndex < 0) { return null; @@ -154,7 +154,7 @@ // If the first colon is part of a scheme, it's not an scp-like URI return null; } - var slashIndex = value.indexOf('/'); + final slashIndex = value.indexOf('/'); if (slashIndex >= 0 && slashIndex < colonIndex) { // Per docs: This syntax is only recognized if there are no slashes before @@ -164,11 +164,11 @@ return null; } - var atIndex = value.indexOf('@'); + final atIndex = value.indexOf('@'); if (colonIndex > atIndex) { - var user = atIndex >= 0 ? value.substring(0, atIndex) : null; - var host = value.substring(atIndex + 1, colonIndex); - var path = value.substring(colonIndex + 1); + final user = atIndex >= 0 ? value.substring(0, atIndex) : null; + final host = value.substring(atIndex + 1, colonIndex); + final path = value.substring(colonIndex + 1); return Uri(scheme: 'ssh', userInfo: user, host: host, path: path); } return null;
diff --git a/pkgs/pubspec_parse/lib/src/errors.dart b/pkgs/pubspec_parse/lib/src/errors.dart index 637c5a8..aba6970 100644 --- a/pkgs/pubspec_parse/lib/src/errors.dart +++ b/pkgs/pubspec_parse/lib/src/errors.dart
@@ -10,13 +10,13 @@ ParsedYamlException parsedYamlExceptionFromError( CheckedFromJsonException error, StackTrace stack) { - var innerError = error.innerError; + final innerError = error.innerError; if (innerError is InvalidKeyException) { - var map = innerError.map; + final map = innerError.map; if (map is YamlMap) { // if the associated key exists, use that as the error node, // otherwise use the map itself - var node = map.nodes.keys.cast<YamlNode>().singleWhere((key) { + final node = map.nodes.keys.cast<YamlNode>().singleWhere((key) { return key.value == innerError.key; }, orElse: () => map); @@ -27,7 +27,7 @@ return innerError; } - var yamlMap = error.map as YamlMap; + final yamlMap = error.map as YamlMap; var yamlNode = yamlMap.nodes[error.key]; String message;
diff --git a/pkgs/pubspec_parse/lib/src/pubspec.dart b/pkgs/pubspec_parse/lib/src/pubspec.dart index a8ef2fe..df71262 100644 --- a/pkgs/pubspec_parse/lib/src/pubspec.dart +++ b/pkgs/pubspec_parse/lib/src/pubspec.dart
@@ -78,7 +78,7 @@ factory Pubspec.fromJson(Map json) => _$PubspecFromJson(json); factory Pubspec.parse(String yaml, {sourceUrl}) { - var item = loadYaml(yaml, sourceUrl: sourceUrl); + final item = loadYaml(yaml, sourceUrl: sourceUrl); if (item == null) { throw ArgumentError.notNull('yaml'); @@ -100,7 +100,7 @@ } static List<String> _normalizeAuthors(String author, List<String> authors) { - var value = Set<String>(); + final value = Set<String>(); if (author != null) { value.add(author); } @@ -115,7 +115,7 @@ Map<String, VersionConstraint> _environmentMap(Map source) => source.map((k, value) { - var key = k as String; + final key = k as String; if (key == 'dart') { // github.com/dart-lang/pub/blob/d84173eeb03c3/lib/src/pubspec.dart#L342 // 'dart' is not allowed as a key!
diff --git a/pkgs/pubspec_parse/test/dependency_test.dart b/pkgs/pubspec_parse/test/dependency_test.dart index 3bc890a..6c7d968 100644 --- a/pkgs/pubspec_parse/test/dependency_test.dart +++ b/pkgs/pubspec_parse/test/dependency_test.dart
@@ -4,8 +4,8 @@ import 'dart:io'; -import 'package:pubspec_parse/pubspec_parse.dart'; import 'package:pub_semver/pub_semver.dart'; +import 'package:pubspec_parse/pubspec_parse.dart'; import 'package:test/test.dart'; import 'test_utils.dart'; @@ -49,20 +49,20 @@ void _hostedDependency() { test('null', () { - var dep = _dependency<HostedDependency>(null); + final dep = _dependency<HostedDependency>(null); expect(dep.version.toString(), 'any'); expect(dep.hosted, isNull); expect(dep.toString(), 'HostedDependency: any'); }); test('empty map', () { - var dep = _dependency<HostedDependency>({}); + final dep = _dependency<HostedDependency>({}); expect(dep.hosted, isNull); expect(dep.toString(), 'HostedDependency: any'); }); test('string version', () { - var dep = _dependency<HostedDependency>('^1.0.0'); + final dep = _dependency<HostedDependency>('^1.0.0'); expect(dep.version.toString(), '^1.0.0'); expect(dep.hosted, isNull); expect(dep.toString(), 'HostedDependency: ^1.0.0'); @@ -76,14 +76,14 @@ }); test('map w/ just version', () { - var dep = _dependency<HostedDependency>({'version': '^1.0.0'}); + final dep = _dependency<HostedDependency>({'version': '^1.0.0'}); expect(dep.version.toString(), '^1.0.0'); expect(dep.hosted, isNull); expect(dep.toString(), 'HostedDependency: ^1.0.0'); }); test('map w/ version and hosted as Map', () { - var dep = _dependency<HostedDependency>({ + final dep = _dependency<HostedDependency>({ 'version': '^1.0.0', 'hosted': {'name': 'hosted_name', 'url': 'hosted_url'} }); @@ -115,7 +115,7 @@ }); test('map w/ version and hosted as String', () { - var dep = _dependency<HostedDependency>( + final dep = _dependency<HostedDependency>( {'version': '^1.0.0', 'hosted': 'hosted_name'}); expect(dep.version.toString(), '^1.0.0'); expect(dep.hosted.name, 'hosted_name'); @@ -124,7 +124,7 @@ }); test('map w/ hosted as String', () { - var dep = _dependency<HostedDependency>({'hosted': 'hosted_name'}); + final dep = _dependency<HostedDependency>({'hosted': 'hosted_name'}); expect(dep.version, VersionConstraint.any); expect(dep.hosted.name, 'hosted_name'); expect(dep.hosted.url, isNull); @@ -139,7 +139,7 @@ }); test('map w/ null version is fine', () { - var dep = _dependency<HostedDependency>({'version': null}); + final dep = _dependency<HostedDependency>({'version': null}); expect(dep.version, VersionConstraint.any); expect(dep.hosted, isNull); expect(dep.toString(), 'HostedDependency: any'); @@ -148,14 +148,14 @@ void _sdkDependency() { test('without version', () { - var dep = _dependency<SdkDependency>({'sdk': 'flutter'}); + final dep = _dependency<SdkDependency>({'sdk': 'flutter'}); expect(dep.sdk, 'flutter'); expect(dep.version, isNull); expect(dep.toString(), 'SdkDependency: flutter'); }); test('with version', () { - var dep = _dependency<SdkDependency>( + final dep = _dependency<SdkDependency>( {'sdk': 'flutter', 'version': '>=1.2.3 <2.0.0'}); expect(dep.sdk, 'flutter'); expect(dep.version.toString(), '>=1.2.3 <2.0.0'); @@ -179,7 +179,7 @@ void _gitDependency() { test('string', () { - var dep = _dependency<GitDependency>({'git': 'url'}); + final dep = _dependency<GitDependency>({'git': 'url'}); expect(dep.url.toString(), 'url'); expect(dep.path, isNull); expect(dep.ref, isNull); @@ -188,7 +188,7 @@ test('string with version key is ignored', () { // Regression test for https://github.com/dart-lang/pubspec_parse/issues/13 - var dep = _dependency<GitDependency>({'git': 'url', 'version': '^1.2.3'}); + final dep = _dependency<GitDependency>({'git': 'url', 'version': '^1.2.3'}); expect(dep.url.toString(), 'url'); expect(dep.path, isNull); expect(dep.ref, isNull); @@ -196,11 +196,11 @@ }); test('string with user@ URL', () { - var skipTryParse = Platform.environment.containsKey('TRAVIS'); + final skipTryParse = Platform.environment.containsKey('TRAVIS'); if (skipTryParse) { print('FYI: not validating git@ URI on travis due to failure'); } - var dep = _dependency<GitDependency>({'git': 'git@localhost:dep.git'}, + final dep = _dependency<GitDependency>({'git': 'git@localhost:dep.git'}, skipTryPub: skipTryParse); expect(dep.url.toString(), 'ssh://git@localhost/dep.git'); expect(dep.path, isNull); @@ -216,7 +216,7 @@ }); test('map', () { - var dep = _dependency<GitDependency>({ + final dep = _dependency<GitDependency>({ 'git': {'url': 'url', 'path': 'path', 'ref': 'ref'} }); expect(dep.url.toString(), 'url'); @@ -267,13 +267,13 @@ void _pathDependency() { test('valid', () { - var dep = _dependency<PathDependency>({'path': '../path'}); + final dep = _dependency<PathDependency>({'path': '../path'}); expect(dep.path, '../path'); expect(dep.toString(), 'PathDependency: path@../path'); }); test('valid with version key is ignored', () { - var dep = + final dep = _dependency<PathDependency>({'path': '../path', 'version': '^1.2.3'}); expect(dep.path, '../path'); expect(dep.toString(), 'PathDependency: path@../path'); @@ -309,14 +309,14 @@ } T _dependency<T extends Dependency>(Object content, {bool skipTryPub = false}) { - var value = parse({ + final value = parse({ 'name': 'sample', 'dependencies': {'dep': content} }, skipTryPub: skipTryPub); expect(value.name, 'sample'); expect(value.dependencies, hasLength(1)); - var entry = value.dependencies.entries.single; + final entry = value.dependencies.entries.single; expect(entry.key, 'dep'); return entry.value as T;
diff --git a/pkgs/pubspec_parse/test/git_uri_test.dart b/pkgs/pubspec_parse/test/git_uri_test.dart index a1cfdf9..36e55a8 100644 --- a/pkgs/pubspec_parse/test/git_uri_test.dart +++ b/pkgs/pubspec_parse/test/git_uri_test.dart
@@ -1,6 +1,5 @@ -import 'package:test/test.dart'; - import 'package:pubspec_parse/src/dependency.dart'; +import 'package:test/test.dart'; void main() { for (var item in { @@ -14,7 +13,7 @@ 'file:///path/to/repo.git/': 'file:///path/to/repo.git/', }.entries) { test(item.key, () { - var uri = parseGitUri(item.key); + final uri = parseGitUri(item.key); printOnFailure( [uri.scheme, uri.userInfo, uri.host, uri.port, uri.path].join('\n'));
diff --git a/pkgs/pubspec_parse/test/parse_test.dart b/pkgs/pubspec_parse/test/parse_test.dart index 3ed73a5..df2475b 100644 --- a/pkgs/pubspec_parse/test/parse_test.dart +++ b/pkgs/pubspec_parse/test/parse_test.dart
@@ -9,7 +9,7 @@ void main() { test('minimal set values', () { - var value = parse({'name': 'sample'}); + final value = parse({'name': 'sample'}); expect(value.name, 'sample'); expect(value.version, isNull); expect(value.description, isNull); @@ -25,9 +25,9 @@ }); test('all fields set', () { - var version = Version.parse('1.2.3'); - var sdkConstraint = VersionConstraint.parse('>=2.0.0-dev.54 <3.0.0'); - var value = parse({ + final version = Version.parse('1.2.3'); + final sdkConstraint = VersionConstraint.parse('>=2.0.0-dev.54 <3.0.0'); + final value = parse({ 'name': 'sample', 'version': version.toString(), 'author': 'name@example.com', @@ -52,7 +52,7 @@ }); test('environment values can be null', () { - var value = parse({ + final value = parse({ 'name': 'sample', 'environment': {'sdk': null} }); @@ -63,14 +63,14 @@ group('author, authors', () { test('one author', () { - var value = parse({'name': 'sample', 'author': 'name@example.com'}); + final value = parse({'name': 'sample', 'author': 'name@example.com'}); // ignore: deprecated_member_use expect(value.author, 'name@example.com'); expect(value.authors, ['name@example.com']); }); test('one author, via authors', () { - var value = parse({ + final value = parse({ 'name': 'sample', 'authors': ['name@example.com'] }); @@ -80,7 +80,7 @@ }); test('many authors', () { - var value = parse({ + final value = parse({ 'name': 'sample', 'authors': ['name@example.com', 'name2@example.com'] }); @@ -90,7 +90,7 @@ }); test('author and authors', () { - var value = parse({ + final value = parse({ 'name': 'sample', 'author': 'name@example.com', 'authors': ['name2@example.com'] @@ -101,7 +101,7 @@ }); test('duplicate author values', () { - var value = parse({ + final value = parse({ 'name': 'sample', 'author': 'name@example.com', 'authors': ['name@example.com', 'name@example.com']
diff --git a/pkgs/pubspec_parse/test/pub_utils.dart b/pkgs/pubspec_parse/test/pub_utils.dart index f9e2f0c..1ebb9c7 100644 --- a/pkgs/pubspec_parse/test/pub_utils.dart +++ b/pkgs/pubspec_parse/test/pub_utils.dart
@@ -13,10 +13,10 @@ Future<ProcResult> tryPub(String content) async { await d.file('pubspec.yaml', content).create(); - var proc = await TestProcess.start(_pubPath, ['get', '--offline'], + final proc = await TestProcess.start(_pubPath, ['get', '--offline'], workingDirectory: d.sandbox); - var result = await ProcResult.fromTestProcess(proc); + final result = await ProcResult.fromTestProcess(proc); printOnFailure([ '-----BEGIN pub output-----', @@ -25,7 +25,7 @@ ].join('\n')); if (result.exitCode == 0) { - var lockContent = + final lockContent = File(p.join(d.sandbox, 'pubspec.lock')).readAsStringSync(); printOnFailure([ @@ -47,9 +47,9 @@ ProcResult(this.exitCode, this.lines); static Future<ProcResult> fromTestProcess(TestProcess proc) async { - var items = <ProcLine>[]; + final items = <ProcLine>[]; - var values = await Future.wait([ + final values = await Future.wait([ proc.exitCode, proc.stdoutStream().forEach((line) => items.add(ProcLine(false, line))), proc.stderrStream().forEach((line) => items.add(ProcLine(true, line))), @@ -60,7 +60,7 @@ @override String toString() { - var buffer = StringBuffer('Exit code: $exitCode'); + final buffer = StringBuffer('Exit code: $exitCode'); for (var line in lines) { buffer.write('\n$line'); } @@ -79,13 +79,13 @@ } /// The path to the root directory of the SDK. -final String _sdkDir = (() { +final String _sdkDir = () { // The Dart executable is in "/path/to/sdk/bin/dart", so two levels up is // "/path/to/sdk". - var aboveExecutable = p.dirname(p.dirname(Platform.resolvedExecutable)); + final aboveExecutable = p.dirname(p.dirname(Platform.resolvedExecutable)); assert(FileSystemEntity.isFileSync(p.join(aboveExecutable, 'version'))); return aboveExecutable; -})(); +}(); final String _pubPath = p.join(_sdkDir, 'bin', Platform.isWindows ? 'pub.bat' : 'pub');
diff --git a/pkgs/pubspec_parse/test/test_utils.dart b/pkgs/pubspec_parse/test/test_utils.dart index d5254db..9750bfa 100644 --- a/pkgs/pubspec_parse/test/test_utils.dart +++ b/pkgs/pubspec_parse/test/test_utils.dart
@@ -17,7 +17,7 @@ Matcher _throwsParsedYamlException(String prettyValue) => throwsA(const TypeMatcher<ParsedYamlException>().having((e) { - var message = e.formattedMessage; + final message = e.formattedMessage; printOnFailure("Actual error format:\nr'''\n$message'''"); _printDebugParsedYamlException(e); return message; @@ -28,7 +28,7 @@ var innerStack = e.innerStack; if (e.innerError is CheckedFromJsonException) { - var cfje = e.innerError as CheckedFromJsonException; + final cfje = e.innerError as CheckedFromJsonException; if (cfje.innerError != null) { innerError = cfje.innerError; innerStack = cfje.innerStack; @@ -36,12 +36,12 @@ } if (innerError != null) { - var items = [innerError]; + final items = [innerError]; if (innerStack != null) { items.add(Trace.format(innerStack, terse: true)); } - var content = + final content = LineSplitter.split(items.join('\n')).map((e) => ' $e').join('\n'); printOnFailure('Inner error details:\n$content'); @@ -53,7 +53,7 @@ quietOnError ??= false; skipTryPub ??= false; - var encoded = _encodeJson(content); + final encoded = _encodeJson(content); ProcResult pubResult; if (!skipTryPub) { @@ -62,7 +62,7 @@ } try { - var value = Pubspec.parse(encoded); + final value = Pubspec.parse(encoded); if (pubResult != null) { addTearDown(() {