Unverified Commit 80a2b6b0 authored by nt4f04uNd's avatar nt4f04uNd Committed by GitHub

Fix typos (#82589)

parent 660ec207
...@@ -164,7 +164,7 @@ class SampleCheckerException implements Exception { ...@@ -164,7 +164,7 @@ class SampleCheckerException implements Exception {
class SampleChecker { class SampleChecker {
/// Creates a [SampleChecker]. /// Creates a [SampleChecker].
/// ///
/// The positional argument is the path to the the package directory for the /// The positional argument is the path to the package directory for the
/// flutter package within the Flutter root dir. /// flutter package within the Flutter root dir.
/// ///
/// The optional `tempDirectory` argument supplies the location for the /// The optional `tempDirectory` argument supplies the location for the
......
...@@ -29,7 +29,7 @@ typedef ProcessRunSync = ProcessResult Function( ...@@ -29,7 +29,7 @@ typedef ProcessRunSync = ProcessResult Function(
/// Class for test runner to interact with Flutter's infrastructure service, Cocoon. /// Class for test runner to interact with Flutter's infrastructure service, Cocoon.
/// ///
/// Cocoon assigns bots to run these devicelab tasks on real devices. /// Cocoon assigns bots to run these devicelab tasks on real devices.
/// To retrieve these results, the test runner needs to send results back so so the database can be updated. /// To retrieve these results, the test runner needs to send results back so the database can be updated.
class Cocoon { class Cocoon {
Cocoon({ Cocoon({
String serviceAccountTokenPath, String serviceAccountTokenPath,
......
...@@ -288,7 +288,7 @@ class _AllSectionsView extends AnimatedWidget { ...@@ -288,7 +288,7 @@ class _AllSectionsView extends AnimatedWidget {
Widget _build(BuildContext context, BoxConstraints constraints) { Widget _build(BuildContext context, BoxConstraints constraints) {
final Size size = constraints.biggest; final Size size = constraints.biggest;
// The layout's progress from from a column to a row. Its value is // The layout's progress from a column to a row. Its value is
// 0.0 when size.height equals the maxHeight, 1.0 when the size.height // 0.0 when size.height equals the maxHeight, 1.0 when the size.height
// equals the midHeight. // equals the midHeight.
final double tColumnToRow = final double tColumnToRow =
...@@ -296,7 +296,7 @@ class _AllSectionsView extends AnimatedWidget { ...@@ -296,7 +296,7 @@ class _AllSectionsView extends AnimatedWidget {
(maxHeight! - midHeight!)).clamp(0.0, 1.0); (maxHeight! - midHeight!)).clamp(0.0, 1.0);
// The layout's progress from from the midHeight row layout to // The layout's progress from the midHeight row layout to
// a minHeight row layout. Its value is 0.0 when size.height equals // a minHeight row layout. Its value is 0.0 when size.height equals
// midHeight and 1.0 when size.height equals minHeight. // midHeight and 1.0 when size.height equals minHeight.
final double tCollapsed = final double tCollapsed =
......
...@@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable { ...@@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable {
/// As an example, if you wanted to implement an app where the "Q" key "quit" /// As an example, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you /// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always /// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard, /// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it. /// the key next to the TAB key has an "A" on it.
/// ///
/// Conversely, if you wanted a game where the key next to the CAPS LOCK (the /// Conversely, if you wanted a game where the key next to the CAPS LOCK (the
...@@ -393,7 +393,7 @@ class LogicalKeyboardKey extends KeyboardKey { ...@@ -393,7 +393,7 @@ class LogicalKeyboardKey extends KeyboardKey {
/// Conversely, if you wanted to implement an app where the "Q" key "quit" /// Conversely, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you /// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always /// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard, /// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it. /// the key next to the TAB key has an "A" on it.
/// ///
/// {@tool dartpad --template=stateful_widget_scaffold} /// {@tool dartpad --template=stateful_widget_scaffold}
......
...@@ -87,7 +87,7 @@ class PhysicalKeyData { ...@@ -87,7 +87,7 @@ class PhysicalKeyData {
/// # key 101 "KEY_LINEFEED" /// # key 101 "KEY_LINEFEED"
/// key 477 F12 FUNCTION /// key 477 F12 FUNCTION
/// ///
/// We parse the commented out lines as well as the non-commented lines, so so /// We parse the commented out lines as well as the non-commented lines, so
/// that we can get names for all of the available scan codes, not just ones /// that we can get names for all of the available scan codes, not just ones
/// defined for the generic profile. /// defined for the generic profile.
/// ///
......
...@@ -1442,7 +1442,7 @@ class Curves { ...@@ -1442,7 +1442,7 @@ class Curves {
/// {@animation 464 192 https://flutter.github.io/assets-for-api-docs/assets/animation/curve_ease_in.mp4} /// {@animation 464 192 https://flutter.github.io/assets-for-api-docs/assets/animation/curve_ease_in.mp4}
static const Cubic easeIn = Cubic(0.42, 0.0, 1.0, 1.0); static const Cubic easeIn = Cubic(0.42, 0.0, 1.0, 1.0);
/// A cubic animation curve that starts starts slowly and ends linearly. /// A cubic animation curve that starts slowly and ends linearly.
/// ///
/// The symmetric animation to [linearToEaseOut]. /// The symmetric animation to [linearToEaseOut].
/// ///
......
...@@ -766,7 +766,7 @@ class CupertinoIcons { ...@@ -766,7 +766,7 @@ class CupertinoIcons {
/// * [time_solid], which is similar, but without dots on the clock face. /// * [time_solid], which is similar, but without dots on the clock face.
static const IconData clock_solid = IconData(0xf4bf, fontFamily: iconFont, fontPackage: iconFontPackage); static const IconData clock_solid = IconData(0xf4bf, fontFamily: iconFont, fontPackage: iconFontPackage);
/// <i class='cupertino-icons md-36'>clock</i> &#x2014; Cupertino icon for a circle with with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00. /// <i class='cupertino-icons md-36'>clock</i> &#x2014; Cupertino icon for a circle with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
/// This is the same icon as [clock] in cupertino_icons 1.0.0+. /// This is the same icon as [clock] in cupertino_icons 1.0.0+.
/// ///
/// See also: /// See also:
...@@ -776,7 +776,7 @@ class CupertinoIcons { ...@@ -776,7 +776,7 @@ class CupertinoIcons {
/// * [clock_solid], which is similar, but filled in and with dots on the clock face. /// * [clock_solid], which is similar, but filled in and with dots on the clock face.
static const IconData time = IconData(0xf402, fontFamily: iconFont, fontPackage: iconFontPackage); static const IconData time = IconData(0xf402, fontFamily: iconFont, fontPackage: iconFontPackage);
/// <i class='cupertino-icons md-36'>clock_fill</i> &#x2014; Cupertino icon for a filled in circle with with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00. /// <i class='cupertino-icons md-36'>clock_fill</i> &#x2014; Cupertino icon for a filled in circle with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
/// This is the same icon as [clock_fill] and [clock_solid] in cupertino_icons 1.0.0+. /// This is the same icon as [clock_fill] and [clock_solid] in cupertino_icons 1.0.0+.
/// ///
/// See also: /// See also:
......
...@@ -32,7 +32,7 @@ enum DiagnosticLevel { ...@@ -32,7 +32,7 @@ enum DiagnosticLevel {
/// the diagnostics to be formatted consistently with other diagnostics and /// the diagnostics to be formatted consistently with other diagnostics and
/// they should expect them to sometimes be misleading. For example, /// they should expect them to sometimes be misleading. For example,
/// [FlagProperty] and [ObjectFlagProperty] have uglier formatting when the /// [FlagProperty] and [ObjectFlagProperty] have uglier formatting when the
/// property `value` does does not match a value with a custom flag /// property `value` does not match a value with a custom flag
/// description. An example of a misleading diagnostic is a diagnostic for /// description. An example of a misleading diagnostic is a diagnostic for
/// a property that has no effect because some other property of the object is /// a property that has no effect because some other property of the object is
/// set in a way that causes the hidden property to have no effect. /// set in a way that causes the hidden property to have no effect.
......
...@@ -237,7 +237,7 @@ class ElevatedButton extends ButtonStyleButton { ...@@ -237,7 +237,7 @@ class ElevatedButton extends ButtonStyleButton {
/// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color /// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color
/// scheme values like "onSurface(0.38)" are shorthand for /// scheme values like "onSurface(0.38)" are shorthand for
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued /// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
/// properties that are not followed by by a sublist have the same /// properties that are not followed by a sublist have the same
/// value for all states, otherwise the values are as specified for /// value for all states, otherwise the values are as specified for
/// each state, and "others" means all other states. /// each state, and "others" means all other states.
/// ///
......
...@@ -448,7 +448,7 @@ abstract class MaterialLocalizations { ...@@ -448,7 +448,7 @@ abstract class MaterialLocalizations {
/// Tooltip used to put the time picker into [TimePickerEntryMode.input]. /// Tooltip used to put the time picker into [TimePickerEntryMode.input].
String get inputTimeModeButtonLabel; String get inputTimeModeButtonLabel;
/// The semantics label used to indicate which account is signed in in the /// The semantics label used to indicate which account is signed in the
/// [UserAccountsDrawerHeader] widget. /// [UserAccountsDrawerHeader] widget.
String get signedInLabel; String get signedInLabel;
......
...@@ -112,7 +112,7 @@ class NavigationRail extends StatefulWidget { ...@@ -112,7 +112,7 @@ class NavigationRail extends StatefulWidget {
/// [minWidth]. /// [minWidth].
/// ///
/// The argument [extended] must not be null. [extended] can only be set to /// The argument [extended] must not be null. [extended] can only be set to
/// true when when the [labelType] is null or [NavigationRailLabelType.none]. /// true when the [labelType] is null or [NavigationRailLabelType.none].
/// ///
/// If [backgroundColor], [elevation], [groupAlignment], [labelType], /// If [backgroundColor], [elevation], [groupAlignment], [labelType],
/// [unselectedLabelTextStyle], [selectedLabelTextStyle], /// [unselectedLabelTextStyle], [selectedLabelTextStyle],
......
...@@ -218,7 +218,7 @@ class OutlinedButton extends ButtonStyleButton { ...@@ -218,7 +218,7 @@ class OutlinedButton extends ButtonStyleButton {
/// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color /// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color
/// scheme values like "onSurface(0.38)" are shorthand for /// scheme values like "onSurface(0.38)" are shorthand for
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued /// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
/// properties that are not followed by by a sublist have the same /// properties that are not followed by a sublist have the same
/// value for all states, otherwise the values are as specified for /// value for all states, otherwise the values are as specified for
/// each state and "others" means all other states. /// each state and "others" means all other states.
/// ///
......
...@@ -26,7 +26,7 @@ import 'theme.dart'; ...@@ -26,7 +26,7 @@ import 'theme.dart';
/// A paginated data table shows [rowsPerPage] rows of data per page and /// A paginated data table shows [rowsPerPage] rows of data per page and
/// provides controls for showing other pages. /// provides controls for showing other pages.
/// ///
/// Data is read lazily from from a [DataTableSource]. The widget is presented /// Data is read lazily from a [DataTableSource]. The widget is presented
/// as a [Card]. /// as a [Card].
/// ///
/// See also: /// See also:
......
...@@ -1505,7 +1505,7 @@ class Scaffold extends StatefulWidget { ...@@ -1505,7 +1505,7 @@ class Scaffold extends StatefulWidget {
/// This property is often useful when the [bottomNavigationBar] has /// This property is often useful when the [bottomNavigationBar] has
/// a non-rectangular shape, like [CircularNotchedRectangle], which /// a non-rectangular shape, like [CircularNotchedRectangle], which
/// adds a [FloatingActionButton] sized notch to the top edge of the bar. /// adds a [FloatingActionButton] sized notch to the top edge of the bar.
/// In this case specifying `extendBody: true` ensures that that scaffold's /// In this case specifying `extendBody: true` ensures that scaffold's
/// body will be visible through the bottom navigation bar's notch. /// body will be visible through the bottom navigation bar's notch.
/// ///
/// See also: /// See also:
......
...@@ -2004,7 +2004,7 @@ class RoundedRectRangeSliderTrackShape extends RangeSliderTrackShape { ...@@ -2004,7 +2004,7 @@ class RoundedRectRangeSliderTrackShape extends RangeSliderTrackShape {
/// [SliderThemeData.disabledActiveTrackColor], /// [SliderThemeData.disabledActiveTrackColor],
/// [SliderThemeData.disabledInactiveTrackColor]. /// [SliderThemeData.disabledInactiveTrackColor].
/// ///
/// ![A slider widget, consisting of 5 divisions and showing the round slider slider tick mark shape.] /// ![A slider widget, consisting of 5 divisions and showing the round slider tick mark shape.]
/// (https://flutter.github.io/assets-for-api-docs/assets/material/rounded_slider_tick_mark_shape.png) /// (https://flutter.github.io/assets-for-api-docs/assets/material/rounded_slider_tick_mark_shape.png)
/// ///
/// See also: /// See also:
......
...@@ -262,7 +262,7 @@ class TextButton extends ButtonStyleButton { ...@@ -262,7 +262,7 @@ class TextButton extends ButtonStyleButton {
/// `Theme.of(context).foo`. Color scheme values like /// `Theme.of(context).foo`. Color scheme values like
/// "onSurface(0.38)" are shorthand for /// "onSurface(0.38)" are shorthand for
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued /// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
/// properties that are not followed by by a sublist have the same /// properties that are not followed by a sublist have the same
/// value for all states, otherwise the values are as specified for /// value for all states, otherwise the values are as specified for
/// each state and "others" means all other states. /// each state and "others" means all other states.
/// ///
......
...@@ -158,7 +158,7 @@ abstract class EdgeInsetsGeometry { ...@@ -158,7 +158,7 @@ abstract class EdgeInsetsGeometry {
); );
} }
/// Returns the a new [EdgeInsetsGeometry] object with all values greater than /// Returns a new [EdgeInsetsGeometry] object with all values greater than
/// or equal to `min`, and less than or equal to `max`. /// or equal to `min`, and less than or equal to `max`.
EdgeInsetsGeometry clamp(EdgeInsetsGeometry min, EdgeInsetsGeometry max) { EdgeInsetsGeometry clamp(EdgeInsetsGeometry min, EdgeInsetsGeometry max) {
return _MixedEdgeInsets.fromLRSETB( return _MixedEdgeInsets.fromLRSETB(
......
...@@ -1860,7 +1860,7 @@ abstract class RenderBox extends RenderObject { ...@@ -1860,7 +1860,7 @@ abstract class RenderBox extends RenderObject {
/// ///
/// In such cases, it may be impossible (or at least impractical) to actually /// In such cases, it may be impossible (or at least impractical) to actually
/// return a valid answer. In such cases, the function should call /// return a valid answer. In such cases, the function should call
/// [debugCannotComputeDryLayout] from within an assert and and return a dummy /// [debugCannotComputeDryLayout] from within an assert and return a dummy
/// value of `const Size(0, 0)`. /// value of `const Size(0, 0)`.
@protected @protected
Size computeDryLayout(BoxConstraints constraints) { Size computeDryLayout(BoxConstraints constraints) {
......
...@@ -70,7 +70,7 @@ abstract class FlowDelegate { ...@@ -70,7 +70,7 @@ abstract class FlowDelegate {
/// respecting the constraints. /// respecting the constraints.
/// ///
/// If this function depends on information other than the given constraints, /// If this function depends on information other than the given constraints,
/// override [shouldRelayout] to indicate when when the container should /// override [shouldRelayout] to indicate when the container should
/// relayout. /// relayout.
Size getSize(BoxConstraints constraints) => constraints.biggest; Size getSize(BoxConstraints constraints) => constraints.biggest;
...@@ -85,7 +85,7 @@ abstract class FlowDelegate { ...@@ -85,7 +85,7 @@ abstract class FlowDelegate {
/// let them be larger or smaller than 100.0 by 100.0. /// let them be larger or smaller than 100.0 by 100.0.
/// ///
/// If this function depends on information other than the given constraints, /// If this function depends on information other than the given constraints,
/// override [shouldRelayout] to indicate when when the container should /// override [shouldRelayout] to indicate when the container should
/// relayout. /// relayout.
BoxConstraints getConstraintsForChild(int i, BoxConstraints constraints) => constraints; BoxConstraints getConstraintsForChild(int i, BoxConstraints constraints) => constraints;
...@@ -103,7 +103,7 @@ abstract class FlowDelegate { ...@@ -103,7 +103,7 @@ abstract class FlowDelegate {
/// matrices for the children. /// matrices for the children.
/// ///
/// If this function depends on information other than the given context, /// If this function depends on information other than the given context,
/// override [shouldRepaint] to indicate when when the container should /// override [shouldRepaint] to indicate when the container should
/// relayout. /// relayout.
void paintChildren(FlowPaintingContext context); void paintChildren(FlowPaintingContext context);
......
...@@ -2439,7 +2439,7 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im ...@@ -2439,7 +2439,7 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im
/// or just after the trailing edge. These nodes have to be included in the /// or just after the trailing edge. These nodes have to be included in the
/// semantics tree to implement implicit accessibility scrolling on iOS where /// semantics tree to implement implicit accessibility scrolling on iOS where
/// the viewport scrolls implicitly when moving the accessibility focus from /// the viewport scrolls implicitly when moving the accessibility focus from
/// a the last visible node in the viewport to the first hidden one. /// the last visible node in the viewport to the first hidden one.
/// ///
/// See also: /// See also:
/// ///
......
...@@ -919,7 +919,7 @@ class SliverHitTestEntry extends HitTestEntry { ...@@ -919,7 +919,7 @@ class SliverHitTestEntry extends HitTestEntry {
class SliverLogicalParentData extends ParentData { class SliverLogicalParentData extends ParentData {
/// The position of the child relative to the zero scroll offset. /// The position of the child relative to the zero scroll offset.
/// ///
/// The number of pixels from from the zero scroll offset of the parent sliver /// The number of pixels from the zero scroll offset of the parent sliver
/// (the line at which its [SliverConstraints.scrollOffset] is zero) to the /// (the line at which its [SliverConstraints.scrollOffset] is zero) to the
/// side of the child closest to that offset. A [layoutOffset] can be null /// side of the child closest to that offset. A [layoutOffset] can be null
/// when it cannot be determined. The value will be set after layout. /// when it cannot be determined. The value will be set after layout.
......
...@@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable { ...@@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable {
/// As an example, if you wanted to implement an app where the "Q" key "quit" /// As an example, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you /// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always /// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard, /// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it. /// the key next to the TAB key has an "A" on it.
/// ///
/// Conversely, if you wanted a game where the key next to the CAPS LOCK (the /// Conversely, if you wanted a game where the key next to the CAPS LOCK (the
...@@ -3524,7 +3524,7 @@ class LogicalKeyboardKey extends KeyboardKey { ...@@ -3524,7 +3524,7 @@ class LogicalKeyboardKey extends KeyboardKey {
/// Conversely, if you wanted to implement an app where the "Q" key "quit" /// Conversely, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you /// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always /// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard, /// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it. /// the key next to the TAB key has an "A" on it.
/// ///
/// {@tool dartpad --template=stateful_widget_scaffold} /// {@tool dartpad --template=stateful_widget_scaffold}
......
...@@ -345,7 +345,7 @@ class _SystemMouseCursorSession extends MouseCursorSession { ...@@ -345,7 +345,7 @@ class _SystemMouseCursorSession extends MouseCursorSession {
/// I-beam, etc. /// I-beam, etc.
/// ///
/// An instance of [SystemMouseCursor] refers to one cursor from each platform /// An instance of [SystemMouseCursor] refers to one cursor from each platform
/// that represents the same concept, such as being text text, being clickable, /// that represents the same concept, such as being text, being clickable,
/// or being a forbidden operation. Since the set of system cursors supported by /// or being a forbidden operation. Since the set of system cursors supported by
/// each platform varies, multiple instances can correspond to the same system /// each platform varies, multiple instances can correspond to the same system
/// cursor. /// cursor.
......
...@@ -155,7 +155,7 @@ abstract class KeyHelper { ...@@ -155,7 +155,7 @@ abstract class KeyHelper {
/// The numpad key from the specific key code mapping. /// The numpad key from the specific key code mapping.
LogicalKeyboardKey? numpadKey(int keyCode); LogicalKeyboardKey? numpadKey(int keyCode);
/// The logical key key from the specific key code mapping. /// The logical key from the specific key code mapping.
LogicalKeyboardKey? logicalKey(int keyCode); LogicalKeyboardKey? logicalKey(int keyCode);
} }
......
...@@ -60,7 +60,7 @@ typedef _BucketVisitor = void Function(RestorationBucket bucket); ...@@ -60,7 +60,7 @@ typedef _BucketVisitor = void Function(RestorationBucket bucket);
/// to the notification, listeners must stop using the old bucket and restore /// to the notification, listeners must stop using the old bucket and restore
/// their state from the information in the new [rootBucket]. /// their state from the information in the new [rootBucket].
/// ///
/// Same platforms restrict the size of the restoration data. Therefore, the /// Some platforms restrict the size of the restoration data. Therefore, the
/// data stored in the buckets should be as small as possible while still /// data stored in the buckets should be as small as possible while still
/// allowing the app to restore its current state from it. Data that can be /// allowing the app to restore its current state from it. Data that can be
/// retrieved from other services (e.g. a database or a web server) should not /// retrieved from other services (e.g. a database or a web server) should not
......
...@@ -823,14 +823,14 @@ class WidgetsApp extends StatefulWidget { ...@@ -823,14 +823,14 @@ class WidgetsApp extends StatefulWidget {
/// [localeListResolutionCallback]. If the callback or result is null, it will /// [localeListResolutionCallback]. If the callback or result is null, it will
/// fallback to trying the [localeResolutionCallback]. If both /// fallback to trying the [localeResolutionCallback]. If both
/// [localeResolutionCallback] and [localeListResolutionCallback] are left /// [localeResolutionCallback] and [localeListResolutionCallback] are left
/// null or fail to resolve (return null), the a basic fallback algorithm will /// null or fail to resolve (return null), basic fallback algorithm will
/// be used. /// be used.
/// ///
/// The priority of each available fallback is: /// The priority of each available fallback is:
/// ///
/// 1. [localeListResolutionCallback] is attempted first. /// 1. [localeListResolutionCallback] is attempted.
/// 1. [localeResolutionCallback] is attempted second. /// 2. [localeResolutionCallback] is attempted.
/// 1. Flutter's basic resolution algorithm, as described in /// 3. Flutter's basic resolution algorithm, as described in
/// [supportedLocales], is attempted last. /// [supportedLocales], is attempted last.
/// ///
/// Properly localized projects should provide a more advanced algorithm than /// Properly localized projects should provide a more advanced algorithm than
......
...@@ -6165,7 +6165,7 @@ class RawImage extends LeafRenderObjectWidget { ...@@ -6165,7 +6165,7 @@ class RawImage extends LeafRenderObjectWidget {
/// See also: /// See also:
/// ///
/// * [AssetBundle], the interface for asset bundles. /// * [AssetBundle], the interface for asset bundles.
/// * [rootBundle], the default default asset bundle. /// * [rootBundle], the default asset bundle.
class DefaultAssetBundle extends InheritedWidget { class DefaultAssetBundle extends InheritedWidget {
/// Creates a widget that determines the default asset bundle for its descendants. /// Creates a widget that determines the default asset bundle for its descendants.
/// ///
......
...@@ -228,8 +228,8 @@ class TextEditingController extends ValueNotifier<TextEditingValue> { ...@@ -228,8 +228,8 @@ class TextEditingController extends ValueNotifier<TextEditingValue> {
/// in a separate statement. To change both the [text] and the [selection] /// in a separate statement. To change both the [text] and the [selection]
/// change the controller's [value]. /// change the controller's [value].
/// ///
/// If the new selection if of non-zero length, or is outside the composing /// If the new selection is of non-zero length, or is outside the composing
/// range, the composing composing range is cleared. /// range, the composing range is cleared.
set selection(TextSelection newSelection) { set selection(TextSelection newSelection) {
if (!isSelectionWithinTextBounds(newSelection)) if (!isSelectionWithinTextBounds(newSelection))
throw FlutterError('invalid text selection: $newSelection'); throw FlutterError('invalid text selection: $newSelection');
......
...@@ -44,7 +44,7 @@ import 'framework.dart'; ...@@ -44,7 +44,7 @@ import 'framework.dart';
/// final NavigatorState navigator = Navigator.of(context); /// final NavigatorState navigator = Navigator.of(context);
/// // This InheritedTheme.capture() saves references to themes that are /// // This InheritedTheme.capture() saves references to themes that are
/// // found above the context provided to this widget's build method /// // found above the context provided to this widget's build method
/// // excluding themes are are found above the navigator. Those themes do /// // excluding themes are found above the navigator. Those themes do
/// // not have to be captured, because they will already be visible from /// // not have to be captured, because they will already be visible from
/// // the new route pushed onto said navigator. /// // the new route pushed onto said navigator.
/// // Themes are captured outside of the route's builder because when the /// // Themes are captured outside of the route's builder because when the
......
...@@ -377,7 +377,7 @@ abstract class TransitionRoute<T> extends OverlayRoute<T> { ...@@ -377,7 +377,7 @@ abstract class TransitionRoute<T> extends OverlayRoute<T> {
/// ///
/// If false, this route's [ModalRoute.buildTransitions] `secondaryAnimation` parameter /// If false, this route's [ModalRoute.buildTransitions] `secondaryAnimation` parameter
/// value will be [kAlwaysDismissedAnimation]. In other words, this route /// value will be [kAlwaysDismissedAnimation]. In other words, this route
/// will not animate when when [nextRoute] is pushed on top of it or when /// will not animate when [nextRoute] is pushed on top of it or when
/// [nextRoute] is popped off of it. /// [nextRoute] is popped off of it.
/// ///
/// Returns true by default. /// Returns true by default.
...@@ -577,7 +577,7 @@ mixin LocalHistoryRoute<T> on Route<T> { ...@@ -577,7 +577,7 @@ mixin LocalHistoryRoute<T> on Route<T> {
/// child: const Text('< Back'), /// child: const Text('< Back'),
/// onPressed: () { /// onPressed: () {
/// // Pop a route. If this is pressed while the red rectangle is /// // Pop a route. If this is pressed while the red rectangle is
/// // visible then it will will pop our local history entry, which /// // visible then it will pop our local history entry, which
/// // will hide the red rectangle. Otherwise, the SecondPage will /// // will hide the red rectangle. Otherwise, the SecondPage will
/// // navigate back to the HomePage. /// // navigate back to the HomePage.
/// Navigator.of(context).pop(); /// Navigator.of(context).pop();
......
...@@ -433,7 +433,7 @@ class ScrollDragController implements Drag { ...@@ -433,7 +433,7 @@ class ScrollDragController implements Drag {
String toString() => describeIdentity(this); String toString() => describeIdentity(this);
} }
/// The activity a scroll view performs when a the user drags their finger /// The activity a scroll view performs when the user drags their finger
/// across the screen. /// across the screen.
/// ///
/// See also: /// See also:
......
...@@ -86,7 +86,7 @@ class BouncingScrollSimulation extends Simulation { ...@@ -86,7 +86,7 @@ class BouncingScrollSimulation extends Simulation {
/// model to a spring model which causes [x] to "spring" back to [trailingExtent]. /// model to a spring model which causes [x] to "spring" back to [trailingExtent].
final double trailingExtent; final double trailingExtent;
/// The spring used used to return [x] to either [leadingExtent] or [trailingExtent]. /// The spring used to return [x] to either [leadingExtent] or [trailingExtent].
final SpringDescription spring; final SpringDescription spring;
late FrictionSimulation _frictionSimulation; late FrictionSimulation _frictionSimulation;
......
...@@ -88,7 +88,7 @@ abstract class SliverPersistentHeaderDelegate { ...@@ -88,7 +88,7 @@ abstract class SliverPersistentHeaderDelegate {
/// Defaults to null. /// Defaults to null.
OverScrollHeaderStretchConfiguration? get stretchConfiguration => null; OverScrollHeaderStretchConfiguration? get stretchConfiguration => null;
/// Specifies how floating headers and pinned pinned headers should behave in /// Specifies how floating headers and pinned headers should behave in
/// response to [RenderObject.showOnScreen] calls. /// response to [RenderObject.showOnScreen] calls.
/// ///
/// Defaults to null. /// Defaults to null.
......
...@@ -227,7 +227,7 @@ void main() { ...@@ -227,7 +227,7 @@ void main() {
await tester.pump(); // start gesture await tester.pump(); // start gesture
await tester.pump(const Duration(milliseconds: 200)); // wait for splash to be well under way await tester.pump(const Duration(milliseconds: 200)); // wait for splash to be well under way
final RenderBox box = Material.of(tester.element(find.byType(InkWell)))! as RenderBox; final RenderBox box = Material.of(tester.element(find.byType(InkWell)))! as RenderBox;
// paints above above material // paints above material
expect(box, paints..circle(x: 44.0, y: 0.0, color: splashColor)); expect(box, paints..circle(x: 44.0, y: 0.0, color: splashColor));
await gesture.up(); await gesture.up();
}); });
......
...@@ -6849,7 +6849,7 @@ void main() { ...@@ -6849,7 +6849,7 @@ void main() {
defaultTargetPlatform == TargetPlatform.linux || defaultTargetPlatform == TargetPlatform.linux ||
defaultTargetPlatform == TargetPlatform.fuchsia defaultTargetPlatform == TargetPlatform.fuchsia
) { ) {
// `newValue` will will not be truncated on couple platforms. // `newValue` will not be truncated on couple platforms.
expect(state.currentTextEditingValue.text, '你好啊朋友们'); expect(state.currentTextEditingValue.text, '你好啊朋友们');
expect(state.currentTextEditingValue.composing, const TextRange(start: 3, end: 6)); expect(state.currentTextEditingValue.composing, const TextRange(start: 3, end: 6));
} else { } else {
......
...@@ -24,7 +24,7 @@ class Timeline { ...@@ -24,7 +24,7 @@ class Timeline {
/// This is parsed from "traceEvents" data within [json] and sorted by /// This is parsed from "traceEvents" data within [json] and sorted by
/// timestamp. Anything without a valid timestamp is put in the beginning. /// timestamp. Anything without a valid timestamp is put in the beginning.
/// ///
/// This will be null if there are are no "traceEvents" in the [json]. /// This will be null if there are no "traceEvents" in the [json].
final List<TimelineEvent>? events; final List<TimelineEvent>? events;
} }
......
...@@ -763,7 +763,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker ...@@ -763,7 +763,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker
Duration additionalTime = const Duration(milliseconds: 1000), Duration additionalTime = const Duration(milliseconds: 1000),
}) => binding.runAsync<T?>(callback, additionalTime: additionalTime); }) => binding.runAsync<T?>(callback, additionalTime: additionalTime);
/// Whether there are any any transient callbacks scheduled. /// Whether there are any transient callbacks scheduled.
/// ///
/// This essentially checks whether all animations have completed. /// This essentially checks whether all animations have completed.
/// ///
......
...@@ -120,7 +120,7 @@ class AndroidValidator extends DoctorValidator { ...@@ -120,7 +120,7 @@ class AndroidValidator extends DoctorValidator {
/// `java -version` response is not only a number, but also includes other /// `java -version` response is not only a number, but also includes other
/// information eg. `openjdk version "1.7.0_212"`. /// information eg. `openjdk version "1.7.0_212"`.
/// This method extracts only the semantic version from from that response. /// This method extracts only the semantic version from that response.
static String? _extractJavaVersion(String? text) { static String? _extractJavaVersion(String? text) {
if (text == null || text.isEmpty) { if (text == null || text.isEmpty) {
return null; return null;
......
...@@ -254,7 +254,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { ...@@ -254,7 +254,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
_testFiles = argResults.rest.map<String>(globals.fs.path.absolute).toList(); _testFiles = argResults.rest.map<String>(globals.fs.path.absolute).toList();
if (_testFiles.isEmpty) { if (_testFiles.isEmpty) {
// We don't scan the entire package, only the test/ subdirectory, so that // We don't scan the entire package, only the test/ subdirectory, so that
// files with names like like "hit_test.dart" don't get run. // files with names like "hit_test.dart" don't get run.
final Directory testDir = globals.fs.directory('test'); final Directory testDir = globals.fs.directory('test');
if (!testDir.existsSync()) { if (!testDir.existsSync()) {
throwToolExit('Test directory "${testDir.path}" not found.'); throwToolExit('Test directory "${testDir.path}" not found.');
......
...@@ -23,7 +23,7 @@ import '../src/common.dart'; ...@@ -23,7 +23,7 @@ import '../src/common.dart';
import '../src/context.dart'; import '../src/context.dart';
void main() { void main() {
testUsingContext('Exits with code 2 when when HttpException is thrown ' testUsingContext('Exits with code 2 when HttpException is thrown '
'during VM service connection', () async { 'during VM service connection', () async {
final FakeResidentCompiler residentCompiler = FakeResidentCompiler(); final FakeResidentCompiler residentCompiler = FakeResidentCompiler();
final FakeDevice device = FakeDevice() final FakeDevice device = FakeDevice()
......
...@@ -186,7 +186,7 @@ void main() { ...@@ -186,7 +186,7 @@ void main() {
device = createDevice(enableObservatory: true); device = createDevice(enableObservatory: true);
}); });
testUsingContext('skips setting observatory port and uses the input port for for DDS instead', () async { testUsingContext('skips setting observatory port and uses the input port for DDS instead', () async {
await device.start('example.dill'); await device.start('example.dill');
await device.observatoryUri; await device.observatoryUri;
......
...@@ -237,7 +237,7 @@ void main() { ...@@ -237,7 +237,7 @@ void main() {
fileSystem = MemoryFileSystem.test(); fileSystem = MemoryFileSystem.test();
}); });
testUsingContext('Exits with code 2 when when HttpException is thrown ' testUsingContext('Exits with code 2 when HttpException is thrown '
'during VM service connection', () async { 'during VM service connection', () async {
fileSystem.file('.packages') fileSystem.file('.packages')
..createSync(recursive: true) ..createSync(recursive: true)
......
...@@ -985,7 +985,7 @@ void main() { ...@@ -985,7 +985,7 @@ void main() {
expect(response.statusCode, 404); expect(response.statusCode, 404);
})); }));
test('WebAssetServer strips leading base href off off asset requests', () => testbed.run(() async { test('WebAssetServer strips leading base href off of asset requests', () => testbed.run(() async {
const String htmlContent = '<html><head><base href="/foo/"></head><body id="test"></body></html>'; const String htmlContent = '<html><head><base href="/foo/"></head><body id="test"></body></html>';
globals.fs.currentDirectory globals.fs.currentDirectory
.childDirectory('web') .childDirectory('web')
......
...@@ -23,7 +23,7 @@ String testOutputsDirectory = ...@@ -23,7 +23,7 @@ String testOutputsDirectory =
/// succeeds. /// succeeds.
typedef ResponseDataCallback = FutureOr<void> Function(Map<String, dynamic>?); typedef ResponseDataCallback = FutureOr<void> Function(Map<String, dynamic>?);
/// Writes a json-serializable json data to /// Writes a json-serializable data to
/// [testOutputsDirectory]/`testOutputFilename.json`. /// [testOutputsDirectory]/`testOutputFilename.json`.
/// ///
/// This is the default `responseDataCallback` in [integrationDriver]. /// This is the default `responseDataCallback` in [integrationDriver].
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment