Ignore in _Location (#96553)

This commit is contained in:
Konstantin Scheglov 2022-01-13 13:25:05 -08:00 committed by GitHub
parent e912b91c5f
commit 06515fe058
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 23 additions and 199 deletions

View file

@ -10,7 +10,6 @@ import '../../gallery/demo.dart';
class _InputDropdown extends StatelessWidget {
const _InputDropdown({
Key? key,
this.child,
this.labelText,
this.valueText,
this.valueStyle,
@ -21,7 +20,6 @@ class _InputDropdown extends StatelessWidget {
final String? valueText;
final TextStyle? valueStyle;
final VoidCallback? onPressed;
final Widget? child;
@override
Widget build(BuildContext context) {

View file

@ -245,7 +245,6 @@ class _CupertinoDesktopTextSelectionToolbar extends StatelessWidget {
Key? key,
required this.anchor,
required this.children,
this.toolbarBuilder = _defaultToolbarBuilder,
}) : assert(children.length > 0),
super(key: key);
@ -260,12 +259,6 @@ class _CupertinoDesktopTextSelectionToolbar extends StatelessWidget {
/// Mac-style text selection toolbar text button.
final List<Widget> children;
/// {@macro flutter.material.TextSelectionToolbar.toolbarBuilder}
///
/// The given anchor and isAbove can be used to position an arrow, as in the
/// default Cupertino toolbar.
final ToolbarBuilder toolbarBuilder;
// Builds a toolbar just like the default Mac toolbar, with the right color
// background, padding, and rounded corners.
static Widget _defaultToolbarBuilder(BuildContext context, Widget child) {
@ -308,7 +301,7 @@ class _CupertinoDesktopTextSelectionToolbar extends StatelessWidget {
delegate: DesktopTextSelectionToolbarLayoutDelegate(
anchor: anchor - localAdjustment,
),
child: toolbarBuilder(context, Column(
child: _defaultToolbarBuilder(context, Column(
mainAxisSize: MainAxisSize.min,
children: children,
)),

View file

@ -1675,11 +1675,7 @@ class _ActionButtonParentDataWidget
// ParentData applied to individual action buttons that report whether or not
// that button is currently pressed by the user.
class _ActionButtonParentData extends MultiChildLayoutParentData {
_ActionButtonParentData({
this.isPressed = false,
});
bool isPressed;
bool isPressed = false;
}
/// A button typically used in a [CupertinoAlertDialog].

View file

@ -16,7 +16,6 @@ import 'constants.dart';
import 'debug.dart';
import 'dialog.dart';
import 'divider.dart';
import 'floating_action_button.dart';
import 'floating_action_button_location.dart';
import 'ink_decoration.dart';
import 'list_tile.dart';
@ -983,9 +982,6 @@ enum _ActionLevel {
/// Indicates the master view app bar in the lateral UI.
view,
/// Indicates the master page app bar in the nested UI.
composite,
}
/// Describes which layout will be used by [_MasterDetailFlow].
@ -1019,20 +1015,9 @@ class _MasterDetailFlow extends StatefulWidget {
Key? key,
required this.detailPageBuilder,
required this.masterViewBuilder,
this.actionBuilder,
this.automaticallyImplyLeading = true,
this.breakpoint,
this.centerTitle,
this.detailPageFABGutterWidth,
this.detailPageFABlessGutterWidth,
this.displayMode = _LayoutMode.auto,
this.flexibleSpace,
this.floatingActionButton,
this.floatingActionButtonLocation,
this.floatingActionButtonMasterPageLocation,
this.leading,
this.masterPageBuilder,
this.masterViewWidth,
this.title,
}) : assert(masterViewBuilder != null),
assert(automaticallyImplyLeading != null),
@ -1046,13 +1031,6 @@ class _MasterDetailFlow extends StatefulWidget {
/// builds the master view inside a [Scaffold] with an [AppBar].
final _MasterViewBuilder masterViewBuilder;
/// Builder for the master page for nested navigation.
///
/// This builder is usually a wrapper around the [masterViewBuilder] builder to provide the
/// extra UI required to make a page. However, this builder is optional, and the master page
/// can be built using the master view builder and the configuration for the lateral UI's app bar.
final _MasterViewBuilder? masterPageBuilder;
/// Builder for the detail page.
///
/// If scrollController == null, the page is intended for nested navigation. The lateral detail
@ -1061,74 +1039,22 @@ class _MasterDetailFlow extends StatefulWidget {
/// page is scrollable.
final _DetailPageBuilder detailPageBuilder;
/// Override the width of the master view in the lateral UI.
final double? masterViewWidth;
/// Override the width of the floating action button gutter in the lateral UI.
final double? detailPageFABGutterWidth;
/// Override the width of the gutter when there is no floating action button.
final double? detailPageFABlessGutterWidth;
/// Add a floating action button to the lateral UI. If no [masterPageBuilder] is supplied, this
/// floating action button is also used on the nested master page.
///
/// See [Scaffold.floatingActionButton].
final FloatingActionButton? floatingActionButton;
/// The title for the lateral UI [AppBar].
///
/// See [AppBar.title].
final Widget? title;
/// A widget to display before the title for the lateral UI [AppBar].
///
/// See [AppBar.leading].
final Widget? leading;
/// Override the framework from determining whether to show a leading widget or not.
///
/// See [AppBar.automaticallyImplyLeading].
final bool automaticallyImplyLeading;
/// Override the framework from determining whether to display the title in the center of the
/// app bar or not.
///
/// See [AppBar.centerTitle].
final bool? centerTitle;
/// See [AppBar.flexibleSpace].
final Widget? flexibleSpace;
/// Build actions for the lateral UI, and potentially the master page in the nested UI.
///
/// If level is [_ActionLevel.top] then the actions are for
/// the entire lateral UI page. If level is [_ActionLevel.view] the actions
/// are for the master
/// view toolbar. Finally, if the [AppBar] for the master page for the nested UI is being built
/// by [_MasterDetailFlow], then [_ActionLevel.composite] indicates the
/// actions are for the
/// nested master page.
final _ActionBuilder? actionBuilder;
/// Determine where the floating action button will go.
///
/// If null, [FloatingActionButtonLocation.endTop] is used.
///
/// Also see [Scaffold.floatingActionButtonLocation].
final FloatingActionButtonLocation? floatingActionButtonLocation;
/// Determine where the floating action button will go on the master page.
///
/// See [Scaffold.floatingActionButtonLocation].
final FloatingActionButtonLocation? floatingActionButtonMasterPageLocation;
/// Forces display mode and style.
final _LayoutMode displayMode;
/// Width at which layout changes from nested to lateral.
final double? breakpoint;
@override
_MasterDetailFlowState createState() => _MasterDetailFlowState();
@ -1222,7 +1148,7 @@ class _MasterDetailFlowState extends State<_MasterDetailFlow> implements _PageOp
case _LayoutMode.auto:
return LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
final double availableWidth = constraints.maxWidth;
if (availableWidth >= (widget.breakpoint ?? _materialWideDisplayThreshold)) {
if (availableWidth >= _materialWideDisplayThreshold) {
return _lateralUI(context);
} else {
return _nestedUI(context);
@ -1275,21 +1201,13 @@ class _MasterDetailFlowState extends State<_MasterDetailFlow> implements _PageOp
MaterialPageRoute<void> _masterPageRoute(BuildContext context) {
return MaterialPageRoute<dynamic>(
builder: (BuildContext c) => BlockSemantics(
child: widget.masterPageBuilder != null
? widget.masterPageBuilder!(c, false)
: _MasterPage(
leading: widget.leading ??
(widget.automaticallyImplyLeading && Navigator.of(context).canPop()
child: _MasterPage(
leading: widget.automaticallyImplyLeading && Navigator.of(context).canPop()
? BackButton(onPressed: () => Navigator.of(context).pop())
: null),
: null,
title: widget.title,
centerTitle: widget.centerTitle,
flexibleSpace: widget.flexibleSpace,
automaticallyImplyLeading: widget.automaticallyImplyLeading,
floatingActionButton: widget.floatingActionButton,
floatingActionButtonLocation: widget.floatingActionButtonMasterPageLocation,
masterViewBuilder: widget.masterViewBuilder,
actionBuilder: widget.actionBuilder,
),
),
);
@ -1312,19 +1230,13 @@ class _MasterDetailFlowState extends State<_MasterDetailFlow> implements _PageOp
Widget _lateralUI(BuildContext context) {
_builtLayout = _LayoutMode.lateral;
return _MasterDetailScaffold(
actionBuilder: widget.actionBuilder ?? (_, __) => const<Widget>[],
actionBuilder: (_, __) => const<Widget>[],
automaticallyImplyLeading: widget.automaticallyImplyLeading,
centerTitle: widget.centerTitle,
detailPageBuilder: (BuildContext context, Object? args, ScrollController? scrollController) =>
widget.detailPageBuilder(context, args ?? _cachedDetailArguments, scrollController),
floatingActionButton: widget.floatingActionButton,
detailPageFABlessGutterWidth: widget.detailPageFABlessGutterWidth,
detailPageFABGutterWidth: widget.detailPageFABGutterWidth,
floatingActionButtonLocation: widget.floatingActionButtonLocation,
initialArguments: _cachedDetailArguments,
leading: widget.leading,
masterViewBuilder: (BuildContext context, bool isLateral) => widget.masterViewBuilder(context, isLateral),
masterViewWidth: widget.masterViewWidth,
title: widget.title,
);
}
@ -1335,11 +1247,6 @@ class _MasterPage extends StatelessWidget {
Key? key,
this.leading,
this.title,
this.actionBuilder,
this.centerTitle,
this.flexibleSpace,
this.floatingActionButton,
this.floatingActionButtonLocation,
this.masterViewBuilder,
required this.automaticallyImplyLeading,
}) : super(key: key);
@ -1348,11 +1255,6 @@ class _MasterPage extends StatelessWidget {
final Widget? title;
final Widget? leading;
final bool automaticallyImplyLeading;
final bool? centerTitle;
final Widget? flexibleSpace;
final _ActionBuilder? actionBuilder;
final FloatingActionButton? floatingActionButton;
final FloatingActionButtonLocation? floatingActionButtonLocation;
@override
Widget build(BuildContext context) {
@ -1360,16 +1262,10 @@ class _MasterPage extends StatelessWidget {
appBar: AppBar(
title: title,
leading: leading,
actions: actionBuilder == null
? const <Widget>[]
: actionBuilder!(context, _ActionLevel.composite),
centerTitle: centerTitle,
flexibleSpace: flexibleSpace,
actions: const <Widget>[],
automaticallyImplyLeading: automaticallyImplyLeading,
),
body: masterViewBuilder!(context, false),
floatingActionButton: floatingActionButton,
floatingActionButtonLocation: floatingActionButtonLocation,
);
}
@ -1386,16 +1282,10 @@ class _MasterDetailScaffold extends StatefulWidget {
required this.detailPageBuilder,
required this.masterViewBuilder,
this.actionBuilder,
this.floatingActionButton,
this.floatingActionButtonLocation,
this.initialArguments,
this.leading,
this.title,
required this.automaticallyImplyLeading,
this.centerTitle,
this.detailPageFABlessGutterWidth,
this.detailPageFABGutterWidth,
this.masterViewWidth,
}) : assert(detailPageBuilder != null),
assert(masterViewBuilder != null),
super(key: key);
@ -1409,16 +1299,10 @@ class _MasterDetailScaffold extends StatefulWidget {
/// lateral page is scrollable.
final _DetailPageBuilder detailPageBuilder;
final _ActionBuilder? actionBuilder;
final FloatingActionButton? floatingActionButton;
final FloatingActionButtonLocation? floatingActionButtonLocation;
final Object? initialArguments;
final Widget? leading;
final Widget? title;
final bool automaticallyImplyLeading;
final bool? centerTitle;
final double? detailPageFABlessGutterWidth;
final double? detailPageFABGutterWidth;
final double? masterViewWidth;
@override
_MasterDetailScaffoldState createState() => _MasterDetailScaffoldState();
@ -1437,9 +1321,9 @@ class _MasterDetailScaffoldState extends State<_MasterDetailScaffold>
void initState() {
super.initState();
detailPageFABlessGutterWidth = widget.detailPageFABlessGutterWidth ?? _kDetailPageFABlessGutterWidth;
detailPageFABGutterWidth = widget.detailPageFABGutterWidth ?? _kDetailPageFABGutterWidth;
masterViewWidth = widget.masterViewWidth ?? _kMasterViewWidth;
floatingActionButtonLocation = widget.floatingActionButtonLocation ?? FloatingActionButtonLocation.endTop;
detailPageFABGutterWidth = _kDetailPageFABGutterWidth;
masterViewWidth = _kMasterViewWidth;
floatingActionButtonLocation = FloatingActionButtonLocation.endTop;
}
@override
@ -1465,9 +1349,7 @@ class _MasterDetailScaffoldState extends State<_MasterDetailScaffold>
appBar: AppBar(
title: widget.title,
actions: widget.actionBuilder!(context, _ActionLevel.top),
leading: widget.leading,
automaticallyImplyLeading: widget.automaticallyImplyLeading,
centerTitle: widget.centerTitle,
bottom: PreferredSize(
preferredSize: const Size.fromHeight(kToolbarHeight),
child: Row(
@ -1492,16 +1374,13 @@ class _MasterDetailScaffoldState extends State<_MasterDetailScaffold>
),
),
body: _masterPanel(context),
floatingActionButton: widget.floatingActionButton,
),
// Detail view stacked above main scaffold and master view.
SafeArea(
child: Padding(
padding: EdgeInsetsDirectional.only(
start: masterViewWidth - _kCardElevation,
end: widget.floatingActionButton == null
? detailPageFABlessGutterWidth
: detailPageFABGutterWidth,
end: detailPageFABlessGutterWidth,
),
child: ValueListenableBuilder<Object?>(
valueListenable: _detailArguments,
@ -1541,9 +1420,7 @@ class _MasterDetailScaffoldState extends State<_MasterDetailScaffold>
appBar: AppBar(
title: widget.title,
actions: widget.actionBuilder!(context, _ActionLevel.top),
leading: widget.leading,
automaticallyImplyLeading: widget.automaticallyImplyLeading,
centerTitle: widget.centerTitle,
),
body: widget.masterViewBuilder(context, true),
)

View file

@ -236,7 +236,6 @@ class _DesktopTextSelectionToolbar extends StatelessWidget {
Key? key,
required this.anchor,
required this.children,
this.toolbarBuilder = _defaultToolbarBuilder,
}) : assert(children.length > 0),
super(key: key);
@ -251,12 +250,6 @@ class _DesktopTextSelectionToolbar extends StatelessWidget {
/// Material-style desktop text selection toolbar text button.
final List<Widget> children;
/// {@macro flutter.material.TextSelectionToolbar.toolbarBuilder}
///
/// The given anchor and isAbove can be used to position an arrow, as in the
/// default toolbar.
final ToolbarBuilder toolbarBuilder;
// Builds a desktop toolbar in the Material style.
static Widget _defaultToolbarBuilder(BuildContext context, Widget child) {
return SizedBox(
@ -290,7 +283,7 @@ class _DesktopTextSelectionToolbar extends StatelessWidget {
delegate: DesktopTextSelectionToolbarLayoutDelegate(
anchor: anchor - localAdjustment,
),
child: toolbarBuilder(context, Column(
child: _defaultToolbarBuilder(context, Column(
mainAxisSize: MainAxisSize.min,
children: children,
)),

View file

@ -145,7 +145,6 @@ class _BorderContainer extends StatefulWidget {
required this.fillColor,
required this.hoverColor,
required this.isHovering,
this.child,
}) : assert(border != null),
assert(gap != null),
assert(fillColor != null),
@ -157,7 +156,6 @@ class _BorderContainer extends StatefulWidget {
final Color fillColor;
final Color hoverColor;
final bool isHovering;
final Widget? child;
@override
_BorderContainerState createState() => _BorderContainerState();
@ -249,7 +247,6 @@ class _BorderContainerState extends State<_BorderContainer> with TickerProviderS
hoverColorTween: _hoverColorTween,
hoverAnimation: _hoverAnimation,
),
child: widget.child,
);
}
}

View file

@ -151,14 +151,13 @@ class _AnimationTuple {
required this.startAnimation,
required this.endAnimation,
required this.gapAnimation,
this.gapStart = 0.0,
});
final AnimationController controller;
final CurvedAnimation startAnimation;
final CurvedAnimation endAnimation;
final CurvedAnimation gapAnimation;
double gapStart;
double gapStart = 0.0;
}
class _MergeableMaterialState extends State<MergeableMaterial> with TickerProviderStateMixin {

View file

@ -898,18 +898,10 @@ class _ClampTextScaleFactor extends StatelessWidget {
/// surrounding [child].
const _ClampTextScaleFactor({
Key? key,
this.lowerLimit = 0,
this.upperLimit = double.infinity,
required this.child,
}) : super(key: key);
/// The minimum amount that the text scale factor should be for the [child]
/// widget.
///
/// If this is `.5`, the textScaleFactor for child widgets will never be
/// smaller than `.5`.
final double lowerLimit;
/// The maximum amount that the text scale factor should be for the [child]
/// widget.
///
@ -926,7 +918,7 @@ class _ClampTextScaleFactor extends StatelessWidget {
return MediaQuery(
data: MediaQuery.of(context).copyWith(
textScaleFactor: MediaQuery.of(context).textScaleFactor.clamp(
lowerLimit,
0.0,
upperLimit,
),
),

View file

@ -2869,6 +2869,7 @@ class _Location {
required this.file,
required this.line,
required this.column,
// ignore: unused_element
this.name,
});

View file

@ -1020,14 +1020,6 @@ class _TestSearchDelegate extends SearchDelegate<String> {
}
class _TestEmptySearchDelegate extends SearchDelegate<String> {
_TestEmptySearchDelegate({
this.suggestions = 'Suggestions',
this.result = 'Result',
}) : super();
final String suggestions;
final String result;
@override
Widget? buildLeading(BuildContext context) => null;
@ -1040,7 +1032,7 @@ class _TestEmptySearchDelegate extends SearchDelegate<String> {
onPressed: () {
showResults(context);
},
child: Text(suggestions),
child: const Text('Suggestions'),
);
}
@ -1057,7 +1049,7 @@ class _TestEmptySearchDelegate extends SearchDelegate<String> {
tooltip: 'Close',
icon: const Icon(Icons.arrow_back),
onPressed: () {
close(context, result);
close(context, 'Result');
},
),
);

View file

@ -186,10 +186,9 @@ class TestRecordingPaintingContext extends ClipContext implements PaintingContex
}
class _MethodCall implements Invocation {
_MethodCall(this._name, [ this._arguments = const <dynamic>[], this._typeArguments = const <Type> []]);
_MethodCall(this._name, [ this._arguments = const <dynamic>[]]);
final Symbol _name;
final List<dynamic> _arguments;
final List<Type> _typeArguments;
@override
bool get isAccessor => false;
@override
@ -205,7 +204,7 @@ class _MethodCall implements Invocation {
@override
List<dynamic> get positionalArguments => _arguments;
@override
List<Type> get typeArguments => _typeArguments;
List<Type> get typeArguments => const <Type> [];
}
String _valueName(Object? value) {

View file

@ -21,13 +21,11 @@ class _TestSliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate
this.key,
required this.minExtent,
required this.maxExtent,
this.child,
this.vsync = const TestVSync(),
this.showOnScreenConfiguration = const PersistentHeaderShowOnScreenConfiguration(),
});
final Key? key;
final Widget? child;
@override
final double maxExtent;
@ -42,7 +40,7 @@ class _TestSliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate
final PersistentHeaderShowOnScreenConfiguration showOnScreenConfiguration;
@override
Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) => child ?? SizedBox.expand(key: key);
Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) => SizedBox.expand(key: key);
@override
bool shouldRebuild(_TestSliverPersistentHeaderDelegate oldDelegate) => true;

View file

@ -14,7 +14,6 @@ class _TestSliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate
required this.maxExtent,
required this.child,
this.vsync = const TestVSync(),
this.showOnScreenConfiguration = const PersistentHeaderShowOnScreenConfiguration(),
});
final Widget child;
@ -29,7 +28,7 @@ class _TestSliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate
final TickerProvider? vsync;
@override
final PersistentHeaderShowOnScreenConfiguration showOnScreenConfiguration;
final PersistentHeaderShowOnScreenConfiguration showOnScreenConfiguration = const PersistentHeaderShowOnScreenConfiguration();
@override
Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) => child;

View file

@ -72,8 +72,6 @@ Future<void> testImageQuality(WidgetTester tester, ui.FilterQuality? quality) as
}
class _TestImageStreamCompleter extends ImageStreamCompleter {
_TestImageStreamCompleter([this._currentImage]);
ImageInfo? _currentImage;
final Set<ImageStreamListener> listeners = <ImageStreamListener>{};

View file

@ -201,12 +201,10 @@ class _Diagonal extends RenderObjectWidget with SlottedMultiChildRenderObjectWid
Key? key,
this.topLeft,
this.bottomRight,
this.backgroundColor,
}) : super(key: key);
final Widget? topLeft;
final Widget? bottomRight;
final Color? backgroundColor;
@override
Iterable<_DiagonalSlot> get slots => _DiagonalSlot.values;

View file

@ -258,9 +258,7 @@ class _TickingWidgetState extends State<_TickingWidget> with SingleTickerProvide
}
class _MultiTickingWidget extends StatefulWidget {
const _MultiTickingWidget({Key? key, this.onTick}) : super(key: key);
final VoidCallback? onTick;
const _MultiTickingWidget({Key? key}) : super(key: key);
@override
State<_MultiTickingWidget> createState() => _MultiTickingWidgetState();
@ -274,7 +272,6 @@ class _MultiTickingWidgetState extends State<_MultiTickingWidget> with TickerPro
void initState() {
super.initState();
ticker = createTicker((Duration _) {
widget.onTick?.call();
})..start();
}

View file

@ -809,11 +809,9 @@ class _SingleTickerTestState extends State<_SingleTickerTest> with SingleTickerP
class _AlwaysAnimating extends StatefulWidget {
const _AlwaysAnimating({
this.child,
required this.onPaint,
});
final Widget? child;
final VoidCallback onPaint;
@override
@ -846,7 +844,6 @@ class _AlwaysAnimatingState extends State<_AlwaysAnimating> with SingleTickerPro
builder: (BuildContext context, Widget? child) {
return CustomPaint(
painter: _AlwaysRepaint(widget.onPaint),
child: widget.child,
);
},
);