diff --git a/packages/flutter/lib/src/material/debug.dart b/packages/flutter/lib/src/material/debug.dart index ef61d8014e..af196d6135 100644 --- a/packages/flutter/lib/src/material/debug.dart +++ b/packages/flutter/lib/src/material/debug.dart @@ -20,8 +20,6 @@ import 'scaffold.dart' show Scaffold, ScaffoldMessenger; /// assert(debugCheckHasMaterial(context)); /// ``` /// -/// This method can be expensive (it walks the element tree). -/// /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasMaterial(BuildContext context) { assert(() { @@ -64,11 +62,6 @@ bool debugCheckHasMaterial(BuildContext context) { /// assert(debugCheckHasMaterialLocalizations(context)); /// ``` /// -/// This function has the side-effect of establishing an inheritance -/// relationship with the nearest [Localizations] widget (see -/// [BuildContext.dependOnInheritedWidgetOfExactType]). This is ok if the caller -/// always also calls [Localizations.of] or [Localizations.localeOf]. -/// /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasMaterialLocalizations(BuildContext context) { assert(() { @@ -109,8 +102,6 @@ bool debugCheckHasMaterialLocalizations(BuildContext context) { /// assert(debugCheckHasScaffold(context)); /// ``` /// -/// This method can be expensive (it walks the element tree). -/// /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasScaffold(BuildContext context) { assert(() { @@ -142,8 +133,6 @@ bool debugCheckHasScaffold(BuildContext context) { /// assert(debugCheckHasScaffoldMessenger(context)); /// ``` /// -/// This method can be expensive (it walks the element tree). -/// /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasScaffoldMessenger(BuildContext context) { assert(() { diff --git a/packages/flutter/lib/src/material/material.dart b/packages/flutter/lib/src/material/material.dart index d05b3474fa..8957157f81 100644 --- a/packages/flutter/lib/src/material/material.dart +++ b/packages/flutter/lib/src/material/material.dart @@ -310,8 +310,6 @@ class Material extends StatefulWidget { /// ```dart /// MaterialInkController inkController = Material.of(context); /// ``` - /// - /// This method can be expensive (it walks the element tree). static MaterialInkController? of(BuildContext context) { return context.findAncestorRenderObjectOfType<_RenderInkFeatures>(); } diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart index c525881eb2..526c39869e 100644 --- a/packages/flutter/lib/src/material/scaffold.dart +++ b/packages/flutter/lib/src/material/scaffold.dart @@ -1820,8 +1820,6 @@ class Scaffold extends StatefulWidget { /// If no instance of this class encloses the given context, will cause an /// assert in debug mode, and throw an exception in release mode. /// - /// This method can be expensive (it walks the element tree). - /// /// {@tool dartpad --template=freeform} /// Typical usage of the [Scaffold.of] function is to call it from within the /// `build` method of a child of a [Scaffold]. @@ -2001,8 +1999,6 @@ class Scaffold extends StatefulWidget { /// If no instance of this class encloses the given context, will return null. /// To throw an exception instead, use [of] instead of this function. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [of], a similar function to this one that throws if no instance @@ -2070,8 +2066,6 @@ class Scaffold extends StatefulWidget { /// [Scaffold] so that the client widget gets rebuilt whenever the [hasDrawer] /// value changes. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [Scaffold.of], which provides access to the [ScaffoldState] object as a diff --git a/packages/flutter/lib/src/widgets/animated_list.dart b/packages/flutter/lib/src/widgets/animated_list.dart index 07a4f66089..4af0762431 100644 --- a/packages/flutter/lib/src/widgets/animated_list.dart +++ b/packages/flutter/lib/src/widgets/animated_list.dart @@ -392,8 +392,6 @@ class AnimatedList extends StatefulWidget { /// If no [AnimatedList] surrounds the context given, then this function will /// assert in debug mode and throw an exception in release mode. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [maybeOf], a similar function that will return null if no @@ -431,8 +429,6 @@ class AnimatedList extends StatefulWidget { /// If no [AnimatedList] surrounds the context given, then this function will /// return null. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [of], a similar function that will throw if no [AnimatedList] ancestor @@ -812,8 +808,6 @@ class SliverAnimatedList extends StatefulWidget { /// If no [SliverAnimatedList] surrounds the context given, then this function /// will assert in debug mode and throw an exception in release mode. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [maybeOf], a similar function that will return null if no @@ -849,8 +843,6 @@ class SliverAnimatedList extends StatefulWidget { /// If no [SliverAnimatedList] surrounds the context given, then this function /// will return null. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [of], a similar function that will throw if no [SliverAnimatedList] diff --git a/packages/flutter/lib/src/widgets/debug.dart b/packages/flutter/lib/src/widgets/debug.dart index 8c364c2b33..cbb025aa0e 100644 --- a/packages/flutter/lib/src/widgets/debug.dart +++ b/packages/flutter/lib/src/widgets/debug.dart @@ -184,8 +184,6 @@ bool debugItemsHaveDuplicateKeys(Iterable items) { /// assert(debugCheckHasTable(context)); /// ``` /// -/// This method can be expensive (it walks the element tree). -/// /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasTable(BuildContext context) { assert(() { @@ -217,7 +215,7 @@ bool debugCheckHasTable(BuildContext context) { /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasMediaQuery(BuildContext context) { assert(() { - if (context.widget is! MediaQuery && context.getElementForInheritedWidgetOfExactType() == null) { + if (context.widget is! MediaQuery && context.findAncestorWidgetOfExactType() == null) { throw FlutterError.fromParts([ ErrorSummary('No MediaQuery widget ancestor found.'), ErrorDescription('${context.widget.runtimeType} widgets require a MediaQuery widget ancestor.'), @@ -269,7 +267,7 @@ bool debugCheckHasMediaQuery(BuildContext context) { /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasDirectionality(BuildContext context, { String? why, String? hint, String? alternative }) { assert(() { - if (context.widget is! Directionality && context.getElementForInheritedWidgetOfExactType() == null) { + if (context.widget is! Directionality && context.findAncestorWidgetOfExactType() == null) { why = why == null ? '' : ' $why'; throw FlutterError.fromParts([ ErrorSummary('No Directionality widget found.'), @@ -375,8 +373,6 @@ bool debugCheckHasWidgetsLocalizations(BuildContext context) { /// assert(debugCheckHasOverlay(context)); /// ``` /// -/// This method can be expensive (it walks the element tree). -/// /// Does nothing if asserts are disabled. Always returns true. bool debugCheckHasOverlay(BuildContext context) { assert(() { diff --git a/packages/flutter/lib/src/widgets/inherited_theme.dart b/packages/flutter/lib/src/widgets/inherited_theme.dart index c49bd9cda1..9cf746f9d1 100644 --- a/packages/flutter/lib/src/widgets/inherited_theme.dart +++ b/packages/flutter/lib/src/widgets/inherited_theme.dart @@ -146,9 +146,6 @@ abstract class InheritedTheme extends InheritedWidget { /// this method is called again to re-capture the updated themes. /// /// To wrap a [Widget] in the captured themes, call [CapturedThemes.wrap]. - /// - /// This method can be expensive if there are many widgets between `from` and - /// `to` (it walks the element tree between those nodes). static CapturedThemes capture({ required BuildContext from, required BuildContext? to }) { assert(from != null); diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart index 681e0c8b71..0426044ae8 100644 --- a/packages/flutter/lib/src/widgets/navigator.dart +++ b/packages/flutter/lib/src/widgets/navigator.dart @@ -2712,8 +2712,6 @@ class Navigator extends StatefulWidget { /// /// If there is no [Navigator] in the give `context`, this function will throw /// a [FlutterError] in debug mode, and an exception in release mode. - /// - /// This method can be expensive (it walks the element tree). static NavigatorState of( BuildContext context, { bool rootNavigator = false, @@ -2762,8 +2760,6 @@ class Navigator extends StatefulWidget { /// subsequent instances of [Navigator]. /// /// Will return null if there is no ancestor [Navigator] in the `context`. - /// - /// This method can be expensive (it walks the element tree). static NavigatorState? maybeOf( BuildContext context, { bool rootNavigator = false, diff --git a/packages/flutter/lib/src/widgets/overlay.dart b/packages/flutter/lib/src/widgets/overlay.dart index 104f5ccb79..989f05ed09 100644 --- a/packages/flutter/lib/src/widgets/overlay.dart +++ b/packages/flutter/lib/src/widgets/overlay.dart @@ -284,8 +284,6 @@ class Overlay extends StatefulWidget { /// If `rootOverlay` is set to true, the state from the furthest instance of /// this class is given instead. Useful for installing overlay entries /// above all subsequent instances of [Overlay]. - /// - /// This method can be expensive (it walks the element tree). static OverlayState? of( BuildContext context, { bool rootOverlay = false, diff --git a/packages/flutter/lib/src/widgets/page_storage.dart b/packages/flutter/lib/src/widgets/page_storage.dart index 6f203a232f..b770da2f05 100644 --- a/packages/flutter/lib/src/widgets/page_storage.dart +++ b/packages/flutter/lib/src/widgets/page_storage.dart @@ -267,8 +267,6 @@ class PageStorage extends StatelessWidget { /// ```dart /// PageStorageBucket bucket = PageStorage.of(context); /// ``` - /// - /// This method can be expensive (it walks the element tree). static PageStorageBucket? of(BuildContext context) { final PageStorage? widget = context.findAncestorWidgetOfExactType(); return widget?.bucket; diff --git a/packages/flutter/lib/src/widgets/reorderable_list.dart b/packages/flutter/lib/src/widgets/reorderable_list.dart index d6f5ae23ae..2c47270d6e 100644 --- a/packages/flutter/lib/src/widgets/reorderable_list.dart +++ b/packages/flutter/lib/src/widgets/reorderable_list.dart @@ -220,8 +220,6 @@ class ReorderableList extends StatefulWidget { /// If no [ReorderableList] surrounds the given context, then this function /// will assert in debug mode and throw an exception in release mode. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [maybeOf], a similar function that will return null if no @@ -259,8 +257,6 @@ class ReorderableList extends StatefulWidget { /// If no [ReorderableList] surrounds the context given, then this function will /// return null. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [of], a similar function that will throw if no [ReorderableList] ancestor @@ -412,8 +408,6 @@ class SliverReorderableList extends StatefulWidget { /// If no [SliverReorderableList] surrounds the context given, this function /// will assert in debug mode and throw an exception in release mode. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [maybeOf], a similar function that will return null if no @@ -453,8 +447,6 @@ class SliverReorderableList extends StatefulWidget { /// If no [SliverReorderableList] surrounds the context given, this function /// will return null. /// - /// This method can be expensive (it walks the element tree). - /// /// See also: /// /// * [of], a similar function that will throw if no [SliverReorderableList]