Version 2.16.0-103.0.dev

Merge commit '7f07c9d3ffda560c3934a69cec4724b034ef8a54' into 'dev'
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 11b9950..c1074b2 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -46,7 +46,6 @@
 import 'package:analyzer/src/dart/constant/evaluation.dart';
 import 'package:analyzer/src/dart/resolver/scope.dart' show Namespace;
 import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
-import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_dart.dart';
 import 'package:analyzer/src/task/api/model.dart' show AnalysisTarget;
@@ -727,7 +726,9 @@
   /// Return either this element or the most immediate ancestor of this element
   /// for which the [predicate] returns `true`, or `null` if there is no such
   /// element.
-  E? thisOrAncestorMatching<E extends Element>(Predicate<Element> predicate);
+  E? thisOrAncestorMatching<E extends Element>(
+    bool Function(Element) predicate,
+  );
 
   /// Return either this element or the most immediate ancestor of this element
   /// that has the given type, or `null` if there is no such element.
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index aad1d18..c20f7d6 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -35,7 +35,6 @@
 import 'package:analyzer/src/dart/resolver/variance.dart';
 import 'package:analyzer/src/generated/element_type_provider.dart';
 import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
-import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/generated/sdk.dart' show DartSdk;
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_collection.dart';
@@ -2552,7 +2551,9 @@
   }
 
   @override
-  E thisOrAncestorMatching<E extends Element>(Predicate<Element> predicate) {
+  E thisOrAncestorMatching<E extends Element>(
+    bool Function(Element) predicate,
+  ) {
     Element? element = this;
     while (element != null && !predicate(element)) {
       element = element.enclosingElement;
@@ -4616,8 +4617,11 @@
   }
 
   @override
-  E? thisOrAncestorMatching<E extends Element>(Predicate<Element> predicate) =>
-      null;
+  E? thisOrAncestorMatching<E extends Element>(
+    bool Function(Element) predicate,
+  ) {
+    return null;
+  }
 
   @override
   E? thisOrAncestorOfType<E extends Element>() => null;
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index 88dd044..adff225 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -13,7 +13,6 @@
 import 'package:analyzer/src/dart/element/type_algebra.dart';
 import 'package:analyzer/src/dart/element/type_provider.dart';
 import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
-import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_dart.dart';
 
@@ -612,8 +611,11 @@
   }
 
   @override
-  E? thisOrAncestorMatching<E extends Element>(Predicate<Element> predicate) =>
-      declaration.thisOrAncestorMatching(predicate);
+  E? thisOrAncestorMatching<E extends Element>(
+    bool Function(Element) predicate,
+  ) {
+    return declaration.thisOrAncestorMatching(predicate);
+  }
 
   @override
   E? thisOrAncestorOfType<E extends Element>() =>
diff --git a/pkg/analyzer/lib/src/generated/java_engine.dart b/pkg/analyzer/lib/src/generated/java_engine.dart
deleted file mode 100644
index 01ccfba..0000000
--- a/pkg/analyzer/lib/src/generated/java_engine.dart
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:analyzer/src/generated/interner.dart';
-
-export 'package:analyzer/exception/exception.dart';
-
-/// A predicate is a one-argument function that returns a boolean value.
-typedef Predicate<E> = bool Function(E argument);
-
-class StringUtilities {
-  static Interner INTERNER = NullInterner();
-
-  static String intern(String string) => INTERNER.intern(string);
-}
diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart
index 385bb7d..ba05ff5 100644
--- a/pkg/analyzer/test/generated/resolver_test_case.dart
+++ b/pkg/analyzer/test/generated/resolver_test_case.dart
@@ -6,7 +6,6 @@
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:test/test.dart';
 
 import '../src/dart/resolution/context_collection_resolution.dart';
@@ -238,7 +237,10 @@
   }
 
   void _checkResolved(
-      AstNode node, Element? element, Predicate<Element>? predicate) {
+    AstNode node,
+    Element? element,
+    bool Function(Element)? predicate,
+  ) {
     if (element == null) {
       if (_knownExceptions == null || !_knownExceptions!.contains(node)) {
         _unresolvedNodes.add(node);
diff --git a/pkg/analyzer_plugin/test/support/abstract_single_unit.dart b/pkg/analyzer_plugin/test/support/abstract_single_unit.dart
index bdd1c69..21e8f64 100644
--- a/pkg/analyzer_plugin/test/support/abstract_single_unit.dart
+++ b/pkg/analyzer_plugin/test/support/abstract_single_unit.dart
@@ -8,7 +8,6 @@
 import 'package:analyzer/src/dart/ast/element_locator.dart';
 import 'package:analyzer/src/dart/ast/utilities.dart';
 import 'package:analyzer/src/dart/error/hint_codes.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/test_utilities/find_element.dart';
 import 'package:analyzer/src/test_utilities/find_node.dart';
 import 'package:test/test.dart';
@@ -39,7 +38,10 @@
         as SimpleIdentifier;
   }
 
-  AstNode? findNodeAtOffset(int offset, [Predicate<AstNode>? predicate]) {
+  AstNode? findNodeAtOffset(
+    int offset, [
+    bool Function(AstNode)? predicate,
+  ]) {
     var result = NodeLocator(offset).searchWithin(testUnit);
     if (result != null && predicate != null) {
       result = result.thisOrAncestorMatching(predicate);
@@ -47,13 +49,18 @@
     return result;
   }
 
-  AstNode? findNodeAtString(String search, [Predicate<AstNode>? predicate]) {
+  AstNode? findNodeAtString(
+    String search, [
+    bool Function(AstNode)? predicate,
+  ]) {
     var offset = findOffset(search);
     return findNodeAtOffset(offset, predicate);
   }
 
-  Element? findNodeElementAtString(String search,
-      [Predicate<AstNode>? predicate]) {
+  Element? findNodeElementAtString(
+    String search, [
+    bool Function(AstNode)? predicate,
+  ]) {
     var node = findNodeAtString(search, predicate);
     if (node == null) {
       return null;
diff --git a/tools/VERSION b/tools/VERSION
index fb77d66..12fd2cd 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 16
 PATCH 0
-PRERELEASE 102
+PRERELEASE 103
 PRERELEASE_PATCH 0
\ No newline at end of file