| Index: pkg/analyzer/lib/src/dart/element/member.dart
|
| diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
|
| index 32a068df87b2328a7120f5c104ef04335ce1bd57..025c7c539b5c5dd1cd0ddc3e4de93a1c75e3937d 100644
|
| --- a/pkg/analyzer/lib/src/dart/element/member.dart
|
| +++ b/pkg/analyzer/lib/src/dart/element/member.dart
|
| @@ -515,7 +515,7 @@ abstract class Member implements Element {
|
| AstNode computeNode() => _baseElement.computeNode();
|
|
|
| @override
|
| - Element getAncestor(Predicate<Element> predicate) =>
|
| + Element/*=E*/ getAncestor/*<E extends Element >*/(Predicate<Element> predicate) =>
|
| baseElement.getAncestor(predicate);
|
|
|
| @override
|
| @@ -700,20 +700,19 @@ class ParameterMember extends VariableMember
|
| FormalParameter computeNode() => baseElement.computeNode();
|
|
|
| @override
|
| - Element getAncestor(Predicate<Element> predicate) {
|
| + Element/*=E*/ getAncestor/*<E extends Element>*/(Predicate<Element> predicate) {
|
| Element element = baseElement.getAncestor(predicate);
|
| ParameterizedType definingType = this.definingType;
|
| if (definingType is InterfaceType) {
|
| - InterfaceType definingInterfaceType = definingType;
|
| if (element is ConstructorElement) {
|
| - return ConstructorMember.from(element, definingInterfaceType);
|
| + return ConstructorMember.from(element, definingType) as Element/*=E*/;
|
| } else if (element is MethodElement) {
|
| - return MethodMember.from(element, definingInterfaceType);
|
| + return MethodMember.from(element, definingType) as Element/*=E*/;
|
| } else if (element is PropertyAccessorElement) {
|
| - return PropertyAccessorMember.from(element, definingInterfaceType);
|
| + return PropertyAccessorMember.from(element, definingType) as Element/*=E*/;
|
| }
|
| }
|
| - return element;
|
| + return element as Element/*=E*/;
|
| }
|
|
|
| @override
|
|
|