commit | cb690e669837526b5e581248d57dddcad44c66f7 | [log] [tgz] |
---|---|---|
author | Graciliano Monteiro Passos <gracilianomp@gmail.com> | Mon Aug 21 16:58:46 2023 +0000 |
committer | Commit Queue <dart-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Aug 21 16:58:46 2023 +0000 |
tree | c3e29c6107bc7a1c608946f0f04d2e3aede11624 | |
parent | eb7368356d820063976873d7365a641a165815c6 [diff] |
Optimize `thisOrAncestorOfType` Closes https://github.com/dart-lang/sdk/pull/53288 GitOrigin-RevId: 8fcdfaf9f6d64be0c91bdd49a57d64a516cf0778 Change-Id: Ic49d50594464fd1d7eccc6c1c98627d7854bc3e9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/321840 Commit-Queue: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart index 38e9ed6..5ca79bd 100644 --- a/pkg/analyzer/lib/src/dart/element/element.dart +++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -2422,15 +2422,13 @@ @override E? thisOrAncestorOfType<E extends Element>() { - Element? element = this; - while (element != null && element is! E) { - if (element is CompilationUnitElement) { - element = element.enclosingElement; - } else { - element = element.enclosingElement; - } + Element element = this; + while (element is! E) { + var ancestor = element.enclosingElement; + if (ancestor == null) return null; + element = ancestor ; } - return element as E?; + return element; } @override