mirror of
https://github.com/encounter/flutter.git
synced 2026-03-30 11:10:35 -07:00
Update typedef syntax to use Function notation and turn on lint for old notation. (#18362)
Now that Dart 1 is turned off, reapplying my change to turn on the prefer_generic_function_type_aliases analysis option, and fix all the typedefs to Dart 2 preferred syntax. Also eliminated the unused analysis_options_repo.yaml file and turned on public_member_api_docs in analysys_options.yaml. No logic changes, just changing the typedef syntax for all typedefs, and updating analysis options.
This commit is contained in:
@@ -7,17 +7,17 @@
|
||||
# See the configuration guide for more
|
||||
# https://github.com/dart-lang/sdk/tree/master/pkg/analyzer#configuring-the-analyzer
|
||||
#
|
||||
# There are four similar analysis options files in the flutter repos:
|
||||
# There are four similar analysis options files in the flutter repo:
|
||||
# - analysis_options.yaml (this file)
|
||||
# - packages/flutter/lib/analysis_options_user.yaml
|
||||
# - https://github.com/flutter/plugins/blob/master/analysis_options.yaml
|
||||
# - https://github.com/flutter/engine/blob/master/analysis_options.yaml
|
||||
#
|
||||
# This file contains the analysis options used by Flutter tools, such as IntelliJ,
|
||||
# Android Studio, and the `flutter analyze` command.
|
||||
# This file contains the analysis options used by Flutter tools, such as
|
||||
# IntelliJ, Android Studio, and the 'flutter analyze' command.
|
||||
#
|
||||
# The flutter/plugins repo contains a copy of this file, which should be kept
|
||||
# in sync with this file.
|
||||
# The flutter/plugins and flutter/engine repos contain a copy of this file,
|
||||
# which should be kept in sync with this file.
|
||||
|
||||
analyzer:
|
||||
language:
|
||||
@@ -124,6 +124,7 @@ linter:
|
||||
- prefer_final_locals
|
||||
- prefer_foreach
|
||||
# - prefer_function_declarations_over_variables # not yet tested
|
||||
- prefer_generic_function_type_aliases
|
||||
- prefer_initializing_formals
|
||||
# - prefer_interpolation_to_compose_strings # not yet tested
|
||||
# - prefer_iterable_whereType # https://github.com/dart-lang/sdk/issues/32463
|
||||
@@ -131,6 +132,7 @@ linter:
|
||||
- prefer_is_not_empty
|
||||
- prefer_single_quotes
|
||||
- prefer_typing_uninitialized_variables
|
||||
- public_member_api_docs
|
||||
- recursive_getters
|
||||
- slash_for_doc_comments
|
||||
- sort_constructors_first
|
||||
|
||||
@@ -1,157 +0,0 @@
|
||||
# Specify analysis options.
|
||||
#
|
||||
# Until there are meta linter rules, each desired lint must be explicitly enabled.
|
||||
# See: https://github.com/dart-lang/linter/issues/288
|
||||
#
|
||||
# For a list of lints, see: http://dart-lang.github.io/linter/lints/
|
||||
# See the configuration guide for more
|
||||
# https://github.com/dart-lang/sdk/tree/master/pkg/analyzer#configuring-the-analyzer
|
||||
#
|
||||
# There are three similar analysis options files in the flutter repo:
|
||||
# - analysis_options.yaml
|
||||
# - analysis_options_repo.yaml (this file)
|
||||
# - packages/flutter/lib/analysis_options_user.yaml
|
||||
#
|
||||
# This file contains the analysis options used by 'flutter analyze' when analyzing
|
||||
# the flutter repository. It is very similar to analysis_options.yaml;
|
||||
# the only difference (currently) is the public_member_api_docs option,
|
||||
# which is turned on and programmatically reduced to a single output line
|
||||
# indicating the # of violations for that rule.
|
||||
|
||||
analyzer:
|
||||
language:
|
||||
enableStrictCallChecks: true
|
||||
enableSuperMixins: true
|
||||
strong-mode:
|
||||
implicit-dynamic: false
|
||||
errors:
|
||||
# treat missing required parameters as a warning (not a hint)
|
||||
missing_required_param: warning
|
||||
# treat missing returns as a warning (not a hint)
|
||||
missing_return: warning
|
||||
# allow having TODOs in the code
|
||||
todo: ignore
|
||||
# `flutter analyze` (without `--watch`) just ignores directories
|
||||
# that contain a .dartignore file, and this file does not have any
|
||||
# effect on what files are actually analyzed.
|
||||
|
||||
linter:
|
||||
rules:
|
||||
# these rules are documented on and in the same order as
|
||||
# the Dart Lint rules page to make maintenance easier
|
||||
# https://github.com/dart-lang/linter/blob/master/example/all.yaml
|
||||
- always_declare_return_types
|
||||
- always_put_control_body_on_new_line
|
||||
# - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219
|
||||
- always_require_non_null_named_parameters
|
||||
- always_specify_types
|
||||
- annotate_overrides
|
||||
# - avoid_annotating_with_dynamic # conflicts with always_specify_types
|
||||
- avoid_as
|
||||
# - avoid_bool_literals_in_conditional_expressions # not yet tested
|
||||
# - avoid_catches_without_on_clauses # we do this commonly
|
||||
# - avoid_catching_errors # we do this commonly
|
||||
- avoid_classes_with_only_static_members
|
||||
# - avoid_double_and_int_checks # only useful when targeting JS runtime
|
||||
- avoid_empty_else
|
||||
# - avoid_field_initializers_in_const_classes # not yet tested
|
||||
- avoid_function_literals_in_foreach_calls
|
||||
- avoid_init_to_null
|
||||
# - avoid_js_rounded_ints # only useful when targeting JS runtime
|
||||
- avoid_null_checks_in_equality_operators
|
||||
# - avoid_positional_boolean_parameters # not yet tested
|
||||
# - avoid_private_typedef_functions # we prefer having typedef (discussion in https://github.com/flutter/flutter/pull/16356)
|
||||
- avoid_relative_lib_imports
|
||||
- avoid_renaming_method_parameters
|
||||
- avoid_return_types_on_setters
|
||||
# - avoid_returning_null # we do this commonly
|
||||
# - avoid_returning_this # https://github.com/dart-lang/linter/issues/842
|
||||
# - avoid_setters_without_getters # not yet tested
|
||||
# - avoid_single_cascade_in_expression_statements # not yet tested
|
||||
- avoid_slow_async_io
|
||||
# - avoid_types_as_parameter_names # https://github.com/dart-lang/linter/pull/954/files
|
||||
# - avoid_types_on_closure_parameters # conflicts with always_specify_types
|
||||
# - avoid_unused_constructor_parameters # https://github.com/dart-lang/linter/pull/847
|
||||
- await_only_futures
|
||||
- camel_case_types
|
||||
- cancel_subscriptions
|
||||
# - cascade_invocations # not yet tested
|
||||
# - close_sinks # https://github.com/flutter/flutter/issues/5789
|
||||
# - comment_references # blocked on https://github.com/dart-lang/dartdoc/issues/1153
|
||||
# - constant_identifier_names # https://github.com/dart-lang/linter/issues/204
|
||||
- control_flow_in_finally
|
||||
- directives_ordering
|
||||
- empty_catches
|
||||
- empty_constructor_bodies
|
||||
- empty_statements
|
||||
- hash_and_equals
|
||||
- implementation_imports
|
||||
# - invariant_booleans # https://github.com/flutter/flutter/issues/5790
|
||||
- iterable_contains_unrelated_type
|
||||
# - join_return_with_assignment # not yet tested
|
||||
- library_names
|
||||
- library_prefixes
|
||||
- list_remove_unrelated_type
|
||||
# - literal_only_boolean_expressions # https://github.com/flutter/flutter/issues/5791
|
||||
- no_adjacent_strings_in_list
|
||||
- no_duplicate_case_values
|
||||
- non_constant_identifier_names
|
||||
# - omit_local_variable_types # opposite of always_specify_types
|
||||
# - one_member_abstracts # too many false positives
|
||||
# - only_throw_errors # https://github.com/flutter/flutter/issues/5792
|
||||
- overridden_fields
|
||||
- package_api_docs
|
||||
- package_names
|
||||
- package_prefixed_library_names
|
||||
# - parameter_assignments # we do this commonly
|
||||
- prefer_adjacent_string_concatenation
|
||||
- prefer_asserts_in_initializer_lists
|
||||
- prefer_bool_in_asserts
|
||||
- prefer_collection_literals
|
||||
- prefer_conditional_assignment
|
||||
- prefer_const_constructors
|
||||
- prefer_const_constructors_in_immutables
|
||||
- prefer_const_declarations
|
||||
- prefer_const_literals_to_create_immutables
|
||||
# - prefer_constructors_over_static_methods # not yet tested
|
||||
- prefer_contains
|
||||
- prefer_equal_for_default_values
|
||||
# - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#consider-using--for-short-functions-and-methods
|
||||
- prefer_final_fields
|
||||
- prefer_final_locals
|
||||
- prefer_foreach
|
||||
# - prefer_function_declarations_over_variables # not yet tested
|
||||
- prefer_initializing_formals
|
||||
# - prefer_interpolation_to_compose_strings # not yet tested
|
||||
# - prefer_iterable_whereType # https://github.com/dart-lang/sdk/issues/32463
|
||||
- prefer_is_empty
|
||||
- prefer_is_not_empty
|
||||
- prefer_single_quotes
|
||||
- prefer_typing_uninitialized_variables
|
||||
- public_member_api_docs # this is the only difference from analysis_options.yaml
|
||||
- recursive_getters
|
||||
- slash_for_doc_comments
|
||||
- sort_constructors_first
|
||||
- sort_unnamed_constructors_first
|
||||
- super_goes_last
|
||||
- test_types_in_equals
|
||||
- throw_in_finally
|
||||
# - type_annotate_public_apis # subset of always_specify_types
|
||||
- type_init_formals
|
||||
# - unawaited_futures # https://github.com/flutter/flutter/issues/5793
|
||||
- unnecessary_brace_in_string_interps
|
||||
- unnecessary_getters_setters
|
||||
# - unnecessary_lambdas # https://github.com/dart-lang/linter/issues/498
|
||||
- unnecessary_null_aware_assignments
|
||||
- unnecessary_null_in_if_null_operators
|
||||
- unnecessary_overrides
|
||||
- unnecessary_parenthesis
|
||||
# - unnecessary_statements # not yet tested
|
||||
- unnecessary_this
|
||||
- unrelated_type_equality_checks
|
||||
- use_rethrow_when_possible
|
||||
# - use_setters_to_change_properties # not yet tested
|
||||
# - use_string_buffers # https://github.com/dart-lang/linter/pull/664
|
||||
# - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review
|
||||
- valid_regexps
|
||||
# - void_checks # not yet tested
|
||||
@@ -175,7 +175,7 @@ class ProcessRunner {
|
||||
}
|
||||
}
|
||||
|
||||
typedef Future<Uint8List> HttpReader(Uri url, {Map<String, String> headers});
|
||||
typedef HttpReader = Future<Uint8List> Function(Uri url, {Map<String, String> headers});
|
||||
|
||||
/// Creates a pre-populated Flutter archive from a git repo.
|
||||
class ArchiveCreator {
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import 'dart:io';
|
||||
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
typedef Future<Null> ShardRunner();
|
||||
typedef ShardRunner = Future<Null> Function();
|
||||
|
||||
final String flutterRoot = path.dirname(path.dirname(path.dirname(path.fromUri(Platform.script))));
|
||||
final String flutter = path.join(flutterRoot, 'bin', Platform.isWindows ? 'flutter.bat' : 'flutter');
|
||||
|
||||
@@ -150,7 +150,7 @@ class FakeProcess extends Mock implements Process {
|
||||
}
|
||||
|
||||
/// Callback used to receive stdin input when it occurs.
|
||||
typedef void StringReceivedCallback(String received);
|
||||
typedef StringReceivedCallback = void Function(String received);
|
||||
|
||||
/// A stream consumer class that consumes UTF8 strings as lists of ints.
|
||||
class StringStreamConsumer implements StreamConsumer<List<int>> {
|
||||
|
||||
@@ -20,7 +20,7 @@ const Duration _kDefaultTaskTimeout = const Duration(minutes: 15);
|
||||
|
||||
/// Represents a unit of work performed in the CI environment that can
|
||||
/// succeed, fail and be retried independently of others.
|
||||
typedef Future<TaskResult> TaskFunction();
|
||||
typedef TaskFunction = Future<TaskResult> Function();
|
||||
|
||||
bool _isTaskRegistered = false;
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ const int _kRunsPerBenchmark = 3;
|
||||
|
||||
/// Runs a benchmark once and reports the result as a lower-is-better numeric
|
||||
/// value.
|
||||
typedef Future<double> _Benchmark();
|
||||
typedef _Benchmark = Future<double> Function();
|
||||
|
||||
/// Path to the generated "mega gallery" app.
|
||||
Directory get _megaGalleryDirectory => dir(path.join(Directory.systemTemp.path, 'mega_gallery'));
|
||||
|
||||
@@ -112,7 +112,7 @@ CommandArgs cmd({
|
||||
);
|
||||
}
|
||||
|
||||
typedef dynamic ExitErrorFactory();
|
||||
typedef ExitErrorFactory = dynamic Function();
|
||||
|
||||
class CommandArgs {
|
||||
CommandArgs({ this.command, this.arguments, this.environment });
|
||||
|
||||
@@ -11,7 +11,7 @@ import 'pair.dart';
|
||||
|
||||
enum TestStatus { ok, pending, failed, complete }
|
||||
|
||||
typedef Future<TestStepResult> TestStep();
|
||||
typedef TestStep = Future<TestStepResult> Function();
|
||||
|
||||
const String nothing = '-';
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
|
||||
|
||||
enum TestStatus { ok, pending, failed, complete }
|
||||
|
||||
typedef Future<TestStepResult> TestStep();
|
||||
typedef TestStep = Future<TestStepResult> Function();
|
||||
|
||||
const String nothing = '-';
|
||||
|
||||
|
||||
@@ -396,7 +396,7 @@ class _RectangleDemoState extends State<_RectangleDemo> {
|
||||
}
|
||||
}
|
||||
|
||||
typedef Widget _DemoBuilder(_ArcDemo demo);
|
||||
typedef _DemoBuilder = Widget Function(_ArcDemo demo);
|
||||
|
||||
class _ArcDemo {
|
||||
_ArcDemo(this.title, this.builder, TickerProvider vsync)
|
||||
|
||||
@@ -92,7 +92,7 @@ class OverlayGeometryApp extends StatefulWidget {
|
||||
OverlayGeometryAppState createState() => new OverlayGeometryAppState();
|
||||
}
|
||||
|
||||
typedef void CardTapCallback(GlobalKey targetKey, Offset globalPosition);
|
||||
typedef CardTapCallback = void Function(GlobalKey targetKey, Offset globalPosition);
|
||||
|
||||
class CardBuilder extends SliverChildDelegate {
|
||||
CardBuilder({ this.cardModels, this.onTapUp });
|
||||
|
||||
@@ -10,8 +10,8 @@ enum _Location {
|
||||
Bermuda
|
||||
}
|
||||
|
||||
typedef Widget DemoItemBodyBuilder<T>(DemoItem<T> item);
|
||||
typedef String ValueToString<T>(T value);
|
||||
typedef DemoItemBodyBuilder<T> = Widget Function(DemoItem<T> item);
|
||||
typedef ValueToString<T> = String Function(T value);
|
||||
|
||||
class DualHeaderWithHint extends StatelessWidget {
|
||||
const DualHeaderWithHint({
|
||||
|
||||
@@ -10,7 +10,7 @@ enum GridDemoTileStyle {
|
||||
twoLine
|
||||
}
|
||||
|
||||
typedef void BannerTapCallback(Photo photo);
|
||||
typedef BannerTapCallback = void Function(Photo photo);
|
||||
|
||||
const double _kMinFlingVelocity = 800.0;
|
||||
const String _kGalleryAssetsPackage = 'flutter_gallery_assets';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
typedef Future<String> UpdateUrlFetcher();
|
||||
typedef UpdateUrlFetcher = Future<String> Function();
|
||||
|
||||
class Updater extends StatefulWidget {
|
||||
const Updater({ @required this.updateUrlFetcher, this.child, Key key })
|
||||
|
||||
@@ -9,8 +9,8 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
typedef void OnProgressListener(double completed, double total);
|
||||
typedef void OnResultListener(String result);
|
||||
typedef OnProgressListener = void Function(double completed, double total);
|
||||
typedef OnResultListener = void Function(String result);
|
||||
|
||||
// An encapsulation of a large amount of synchronous processing.
|
||||
//
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
typedef Widget _TextTransformer(String name, String text);
|
||||
typedef _TextTransformer = Widget Function(String name, String text);
|
||||
|
||||
// From https://en.wikiquote.org/wiki/2001:_A_Space_Odyssey_(film)
|
||||
const String _kDialogText = '''
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:intl/src/intl_helpers.dart';
|
||||
import 'stock_messages_en.dart' as messages_en;
|
||||
import 'stock_messages_es.dart' as messages_es;
|
||||
|
||||
typedef Future<dynamic> LibraryLoader();
|
||||
typedef LibraryLoader = Future<dynamic> Function();
|
||||
Map<String, LibraryLoader> _deferredLibraries = {
|
||||
'en': () => new Future.value(null),
|
||||
'es': () => new Future.value(null),
|
||||
|
||||
@@ -12,7 +12,7 @@ final messages = new MessageLookup();
|
||||
final _keepAnalysisHappy = Intl.defaultLocale;
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
typedef MessageIfAbsent(String message_str, List args);
|
||||
typedef MessageIfAbsent = dynamic Function(String message_str, List args);
|
||||
|
||||
class MessageLookup extends MessageLookupByLibrary {
|
||||
get localeName => 'en';
|
||||
|
||||
@@ -11,7 +11,7 @@ import 'stock_strings.dart';
|
||||
import 'stock_symbol_viewer.dart';
|
||||
import 'stock_types.dart';
|
||||
|
||||
typedef void ModeUpdater(StockMode mode);
|
||||
typedef ModeUpdater = void Function(StockMode mode);
|
||||
|
||||
enum _StockMenuItem { autorefresh, refresh, speedUp, speedDown }
|
||||
enum StockHomeTab { market, portfolio }
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user