Skip to content

Fix most current canonical score lints #2496

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Feb 2, 2021
32 changes: 25 additions & 7 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,39 @@ linter:
- avoid_unused_constructor_parameters
- annotate_overrides
- avoid_init_to_null
- avoid_types_as_parameter_names
- camel_case_types
- directives_ordering
- iterable_contains_unrelated_type
- list_remove_unrelated_type
- no_adjacent_strings_in_list
- package_api_docs
- prefer_final_fields
- prefer_generic_function_type_aliases
- prefer_initializing_formals
- prefer_void_to_null
- provide_deprecation_message
- slash_for_doc_comments
- type_annotate_public_apis
- unawaited_futures
# - unnecessary_brace_in_string_interps
# Work in progress canonical score lints
- avoid_empty_else
- avoid_relative_lib_imports
- avoid_shadowing_type_parameters
- await_only_futures
- camel_case_extensions
- camel_case_types
- curly_braces_in_flow_control_structures
- empty_catches
- file_names
- hash_and_equals
- iterable_contains_unrelated_type
- list_remove_unrelated_type
- no_duplicate_case_values
# - non_constant_identifier_names
- package_prefixed_library_names
- prefer_generic_function_type_aliases
- prefer_is_empty
- prefer_is_not_empty
- prefer_iterable_whereType
- prefer_typing_uninitialized_variables
- provide_deprecation_message
- unawaited_futures
- unnecessary_overrides
- unrelated_type_equality_checks
- valid_regexps
- void_checks
34 changes: 31 additions & 3 deletions analysis_options_presubmit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,43 @@ analyzer:
linter:
rules:
- always_declare_return_types
- avoid_single_cascade_in_expression_statements
- avoid_unused_constructor_parameters
- annotate_overrides
- avoid_init_to_null
- avoid_types_as_parameter_names
- directives_ordering
- no_adjacent_strings_in_list
- package_api_docs
- prefer_final_fields
- prefer_generic_function_type_aliases
- prefer_initializing_formals
- prefer_void_to_null
- slash_for_doc_comments
- type_annotate_public_apis
# - unnecessary_brace_in_string_interps
# Work in progress canonical score lints
- avoid_empty_else
- avoid_relative_lib_imports
- avoid_shadowing_type_parameters
- await_only_futures
- camel_case_extensions
- camel_case_types
- curly_braces_in_flow_control_structures
- empty_catches
- file_names
- hash_and_equals
- iterable_contains_unrelated_type
- list_remove_unrelated_type
- no_duplicate_case_values
# - non_constant_identifier_names
- package_prefixed_library_names
- prefer_generic_function_type_aliases
- prefer_is_empty
- prefer_is_not_empty
- prefer_iterable_whereType
- prefer_typing_uninitialized_variables
- provide_deprecation_message
- unawaited_futures
# - unnecessary_brace_in_string_interps
- unnecessary_overrides
- unrelated_type_equality_checks
- valid_regexps
- void_checks
4 changes: 2 additions & 2 deletions lib/dartdoc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -392,8 +392,8 @@ class Dartdoc {
}
}
// Missing from search index
var missing_from_search = visited.difference(found);
for (var s in missing_from_search) {
var missingFromSearch = visited.difference(found);
for (var s in missingFromSearch) {
_warn(packageGraph, PackageWarning.missingFromSearchIndex, s,
path.normalize(origin),
referredFrom: fullPath);
Expand Down
4 changes: 2 additions & 2 deletions lib/src/dartdoc_options.dart
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ class ToolConfiguration {
for (var entry in yamlMap.entries) {
var name = entry.key.toString();
var toolMap = entry.value;
var description;
String description;
List<String> command;
List<String> setupCommand;
if (toolMap is Map) {
Expand Down Expand Up @@ -1130,7 +1130,7 @@ abstract class _DartdocFileOption<T> implements DartdocOption<T> {
yamlData = yamlData[key] ?? {};
}

var returnData;
dynamic returnData;
if (_isListString) {
if (yamlData is YamlList) {
returnData = <String>[];
Expand Down
9 changes: 5 additions & 4 deletions lib/src/generator/dartdoc_generator_backend.dart
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
TemplateData data) {
var content = template.renderString(data);
if (!options.useBaseHref) {
content = content.replaceAll(HTMLBASE_PLACEHOLDER, data.htmlBase);
content = content.replaceAll(htmlBasePlaceholder, data.htmlBase);
}
writer.write(filename, content,
element: data.self is Warnable ? data.self : null);
Expand All @@ -89,7 +89,7 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
var json = generator_util.generateCategoryJson(
categories, options.prettyIndexJson);
if (!options.useBaseHref) {
json = json.replaceAll(HTMLBASE_PLACEHOLDER, '');
json = json.replaceAll(htmlBasePlaceholder, '');
}
writer.write(_pathContext.join('categories.json'), '${json}\n');
}
Expand All @@ -99,7 +99,7 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
var json = generator_util.generateSearchIndexJson(
indexedElements, options.prettyIndexJson);
if (!options.useBaseHref) {
json = json.replaceAll(HTMLBASE_PLACEHOLDER, '');
json = json.replaceAll(htmlBasePlaceholder, '');
}
writer.write(_pathContext.join('index.json'), '${json}\n');
}
Expand Down Expand Up @@ -228,5 +228,6 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
}

@override
void generateAdditionalFiles(FileWriter writer, PackageGraph graph) {}
Future<void> generateAdditionalFiles(
FileWriter writer, PackageGraph graph) async {}
}
2 changes: 1 addition & 1 deletion lib/src/generator/generator_frontend.dart
Original file line number Diff line number Diff line change
Expand Up @@ -329,5 +329,5 @@ abstract class GeneratorBackend {
FileWriter writer, PackageGraph graph, Library library, Typedef typedef);

/// Emit files not specific to a Dart language element.
void generateAdditionalFiles(FileWriter writer, PackageGraph graph);
Future<void> generateAdditionalFiles(FileWriter writer, PackageGraph graph);
}
3 changes: 2 additions & 1 deletion lib/src/generator/html_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ class HtmlGeneratorBackend extends DartdocGeneratorBackend {
}

@override
void generateAdditionalFiles(FileWriter writer, PackageGraph graph) async {
Future<void> generateAdditionalFiles(
FileWriter writer, PackageGraph graph) async {
await _copyResources(writer);
if (options.favicon != null) {
// Allow overwrite of favicon.
Expand Down
2 changes: 1 addition & 1 deletion lib/src/generator/template_data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ abstract class TemplateData<T extends Documentable> {

String get bareHref {
if (self is Indexable) {
return (self as Indexable).href.replaceAll(HTMLBASE_PLACEHOLDER, '');
return (self as Indexable).href.replaceAll(htmlBasePlaceholder, '');
}
return '';
}
Expand Down
2 changes: 1 addition & 1 deletion lib/src/generator/templates.renderers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// To change the contents of this library, make changes to the builder source
// files in the tool/mustachio/ directory.

// ignore_for_file: camel_case_types, unnecessary_cast, unused_element, unused_import
// ignore_for_file: camel_case_types, unnecessary_cast, unused_element, unused_import, non_constant_identifier_names
import 'package:analyzer/file_system/file_system.dart';
import 'package:dartdoc/src/generator/template_data.dart';
import 'package:dartdoc/dartdoc.dart';
Expand Down
12 changes: 6 additions & 6 deletions lib/src/markdown_processor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -163,23 +163,23 @@ final RegExp operatorPrefix = RegExp(r'^operator[ ]*');

final HtmlEscape htmlEscape = const HtmlEscape(HtmlEscapeMode.element);

final List<md.InlineSyntax> _markdown_syntaxes = [
final List<md.InlineSyntax> _markdownSyntaxes = [
_InlineCodeSyntax(),
_AutolinkWithoutScheme(),
md.InlineHtmlSyntax(),
md.StrikethroughSyntax(),
md.AutolinkExtensionSyntax(),
];

final List<md.BlockSyntax> _markdown_block_syntaxes = [
final List<md.BlockSyntax> _markdownBlockSyntaxes = [
const md.FencedCodeBlockSyntax(),
const md.HeaderWithIdSyntax(),
const md.SetextHeaderWithIdSyntax(),
const md.TableSyntax(),
];

// Remove these schemas from the display text for hyperlinks.
final RegExp _hide_schemes = RegExp('^(http|https)://');
final RegExp _hideSchemes = RegExp('^(http|https)://');

class MatchingLinkResult {
final ModelElement element;
Expand Down Expand Up @@ -951,8 +951,8 @@ class MarkdownDocument extends md.Document {
}

return MarkdownDocument(
inlineSyntaxes: _markdown_syntaxes,
blockSyntaxes: _markdown_block_syntaxes,
inlineSyntaxes: _markdownSyntaxes,
blockSyntaxes: _markdownBlockSyntaxes,
linkResolver: linkResolver);
}

Expand Down Expand Up @@ -1020,7 +1020,7 @@ class _AutolinkWithoutScheme extends md.AutolinkSyntax {
@override
bool onMatch(md.InlineParser parser, Match match) {
var url = match[1];
var text = htmlEscape.convert(url).replaceFirst(_hide_schemes, '');
var text = htmlEscape.convert(url).replaceFirst(_hideSchemes, '');
var anchor = md.Element.text('a', text);
anchor.attributes['href'] = url;
parser.addNode(anchor);
Expand Down
9 changes: 1 addition & 8 deletions lib/src/model/class.dart
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ class Class extends Container
var cmap = inheritance.getInheritedConcreteMap2(element);
var imap = inheritance.getInheritedMap2(element);

var inheritanceChainElements;
List<ClassElement> inheritanceChainElements;

var combinedMap = <String, ExecutableElement>{};
for (var nameObj in cmap.keys) {
Expand Down Expand Up @@ -595,11 +595,4 @@ class Class extends Container

@override
Iterable<Field> get constantFields => allFields.where((f) => f.isConst);

@override
bool operator ==(Object o) =>
o is Class &&
name == o.name &&
o.library.name == library.name &&
o.library.package.name == library.package.name;
}
11 changes: 9 additions & 2 deletions lib/src/model/package.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:dartdoc/src/io_utils.dart';
import 'package:dartdoc/src/model/model.dart';
import 'package:dartdoc/src/package_meta.dart';
import 'package:dartdoc/src/warnings.dart';
import 'package:meta/meta.dart';
import 'package:path/path.dart' as path show Context;
import 'package:pub_semver/pub_semver.dart';

Expand All @@ -25,7 +26,13 @@ RegExp get substituteNameVersion => Package._substituteNameVersion;
// TODO: Find an approach that doesn't require doing this.
// Unlikely to be mistaken for an identifier, html tag, or something else that
// might reasonably exist normally.
final String HTMLBASE_PLACEHOLDER = '\%\%__HTMLBASE_dartdoc_internal__\%\%';
@internal
const String htmlBasePlaceholder = '\%\%__HTMLBASE_dartdoc_internal__\%\%';

@Deprecated('Public variable intended to be private; will be removed as early '
'as Dartdoc 1.0.0')
// ignore: non_constant_identifier_names
const String HTMLBASE_PLACEHOLDER = htmlBasePlaceholder;

/// A [LibraryContainer] that contains [Library] objects related to a particular
/// package.
Expand Down Expand Up @@ -233,7 +240,7 @@ class Package extends LibraryContainer
_baseHref = _remoteBaseHref;
if (!_baseHref.endsWith('/')) _baseHref = '${_baseHref}/';
} else {
_baseHref = config.useBaseHref ? '' : HTMLBASE_PLACEHOLDER;
_baseHref = config.useBaseHref ? '' : htmlBasePlaceholder;
}

return _baseHref;
Expand Down
2 changes: 1 addition & 1 deletion lib/src/model/package_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class PubPackageBuilder implements PackageBuilder {

await _calculatePackageMap();

var newGraph = PackageGraph.UninitializedPackageGraph(
var newGraph = PackageGraph.uninitialized(
config,
sdk,
hasEmbedderSdkFiles,
Expand Down
37 changes: 24 additions & 13 deletions lib/src/model/package_graph.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import 'package:dartdoc/src/warnings.dart';
import 'package:dartdoc/src/model_utils.dart' show matchGlobs;

class PackageGraph {
PackageGraph.UninitializedPackageGraph(
PackageGraph.uninitialized(
this.config,
this.sdk,
this.hasEmbedderSdk,
Expand All @@ -36,6 +36,17 @@ class PackageGraph {
Package.fromPackageMeta(packageMeta, this);
}

@Deprecated('Use with [PackageGraph.uninitialized] instead')
// ignore: non_constant_identifier_names
factory PackageGraph.UninitializedPackageGraph(
DartdocOptionContext config,
DartSdk sdk,
bool hasEmbedderSdk,
RendererFactory rendererFactory,
PackageMetaProvider packageMetaProvider) =>
PackageGraph.uninitialized(
config, sdk, hasEmbedderSdk, rendererFactory, packageMetaProvider);

/// Call during initialization to add a library to this [PackageGraph].
///
/// Libraries added in this manner are assumed to be part of documented
Expand Down Expand Up @@ -221,7 +232,7 @@ class PackageGraph {
/// A mapping of the list of classes which implement each class.
final _implementors = LinkedHashMap<Class, List<Class>>(
equals: (Class a, Class b) => a.definingClass == b.definingClass,
hashCode: (Class class_) => class_.definingClass.hashCode);
hashCode: (Class clazz) => clazz.definingClass.hashCode);

/// A list of extensions that exist in the package graph.
final List<Extension> _extensions = [];
Expand Down Expand Up @@ -608,18 +619,18 @@ class PackageGraph {
}
}

void addImplementor(Class class_) {
for (var type in class_.mixedInTypes) {
checkAndAddClass(type.element, class_);
void addImplementor(Class clazz) {
for (var type in clazz.mixedInTypes) {
checkAndAddClass(type.element, clazz);
}
if (class_.supertype != null) {
checkAndAddClass(class_.supertype.element, class_);
if (clazz.supertype != null) {
checkAndAddClass(clazz.supertype.element, clazz);
}
for (var type in class_.interfaces) {
checkAndAddClass(type.element, class_);
for (var type in clazz.interfaces) {
checkAndAddClass(type.element, clazz);
}
for (var type in class_.publicInterfaces) {
checkAndAddClass(type.element, class_);
for (var type in clazz.publicInterfaces) {
checkAndAddClass(type.element, clazz);
}
}

Expand Down Expand Up @@ -688,8 +699,8 @@ class PackageGraph {
Set<Class> get invisibleAnnotations =>
_invisibleAnnotations ??= {specialClasses[SpecialClass.pragma]};

bool isAnnotationVisible(Class class_) =>
!invisibleAnnotations.contains(class_);
bool isAnnotationVisible(Class clazz) =>
!invisibleAnnotations.contains(clazz);

@override
String toString() {
Expand Down
4 changes: 2 additions & 2 deletions lib/src/tool_runner.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class ToolTempFileTracker {
var tempFile = resourceProvider.getFile(resourceProvider.pathContext.join(
resourceProvider.pathContext.absolute(temporaryDirectory.path),
'input_$_temporaryFileCount'));
await tempFile.writeAsStringSync('');
tempFile.writeAsStringSync('');
return tempFile;
}

Expand All @@ -69,7 +69,7 @@ class ToolRunner {

final ToolConfiguration toolConfiguration;

void _runSetup(
Future<void> _runSetup(
String name,
ToolDefinition tool,
Map<String, String> environment,
Expand Down
Loading