File tree Expand file tree Collapse file tree 9 files changed +128
-101
lines changed
test/src/summary/elements Expand file tree Collapse file tree 9 files changed +128
-101
lines changed Original file line number Diff line number Diff line change @@ -439,6 +439,18 @@ abstract class InterfaceType implements ParameterizedType {
439439 /// </blockquote>
440440 ConstructorElement ? lookUpConstructor (String ? name, LibraryElement library);
441441
442+ /// Return the element representing the constructor that results from looking
443+ /// up the constructor with the given [name] in this class with respect to the
444+ /// given [library] , or `null` if the look up fails. The behavior of this
445+ /// method is defined by the Dart Language Specification in section 12.11.1:
446+ /// <blockquote>
447+ /// If <i>e</i> is of the form <b>new</b> <i>T.id()</i> then let <i>q<i> be
448+ /// the constructor <i>T.id</i>, otherwise let <i>q<i> be the constructor
449+ /// <i>T<i>. Otherwise, if <i>q</i> is not defined or not accessible, a
450+ /// NoSuchMethodException is thrown.
451+ /// </blockquote>
452+ ConstructorElement2 ? lookUpConstructor2 (String ? name, LibraryElement2 library);
453+
442454 /// Return the getter with the given [name] .
443455 ///
444456 /// If [concrete] is `true` , then the concrete implementation is returned,
Original file line number Diff line number Diff line change @@ -325,13 +325,7 @@ final class AnnotationImpl extends AstNodeImpl implements Annotation {
325325 @experimental
326326 @override
327327 Element2? get element2 {
328- var element = this.element;
329- if (element case Fragment fragment) {
330- return fragment.element;
331- } else if (element case Element2 element) {
332- return element;
333- }
334- return null;
328+ return element?.asElement2;
335329 }
336330
337331 @override
@@ -15105,6 +15099,10 @@ final class RedirectingConstructorInvocationImpl
1510515099 @override
1510615100 ConstructorElement2? get element => staticElement?.asElement2;
1510715101
15102+ set element(ConstructorElement2? value) {
15103+ staticElement = value?.asElement;
15104+ }
15105+
1510815106 @override
1510915107 Token get endToken => _argumentList.endToken;
1511015108
@@ -16660,6 +16658,10 @@ final class SuperConstructorInvocationImpl extends ConstructorInitializerImpl
1666016658 @override
1666116659 ConstructorElement2? get element => staticElement?.asElement2;
1666216660
16661+ set element(ConstructorElement2? value) {
16662+ staticElement = value?.asElement;
16663+ }
16664+
1666316665 @override
1666416666 Token get endToken => _argumentList.endToken;
1666516667
Original file line number Diff line number Diff line change @@ -1696,10 +1696,13 @@ class ConstructorElementImpl2 extends ExecutableElementImpl2
16961696 }
16971697
16981698 @override
1699- ConstructorElement2 ? get redirectedConstructor2 =>
1700- (firstFragment.redirectedConstructor? .declaration
1701- as ConstructorElementImpl ? )
1702- ? .element;
1699+ ConstructorElement2 ? get redirectedConstructor2 {
1700+ return firstFragment.redirectedConstructor? .asElement2;
1701+ }
1702+
1703+ set redirectedConstructor2 (ConstructorElement2 ? value) {
1704+ firstFragment.redirectedConstructor = value? .asElement;
1705+ }
17031706
17041707 @override
17051708 InterfaceTypeImpl get returnType {
@@ -2322,6 +2325,10 @@ class ElementAnnotationImpl implements ElementAnnotation {
23222325 return element? .asElement2;
23232326 }
23242327
2328+ set element2 (Element2 ? value) {
2329+ element = value? .asElement;
2330+ }
2331+
23252332 @override
23262333 bool get isAlwaysThrows => _isPackageMetaGetter (_alwaysThrowsVariableName);
23272334
Original file line number Diff line number Diff line change @@ -987,6 +987,12 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
987987 return ConstructorMember .from (constructorElement, this );
988988 }
989989
990+ @override
991+ ConstructorElement2 ? lookUpConstructor2 (
992+ String ? constructorName, LibraryElement2 library) {
993+ return lookUpConstructor (constructorName, library.asElement)? .asElement2;
994+ }
995+
990996 @override
991997 PropertyAccessorElement ? lookUpGetter2 (
992998 String name,
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ import 'package:analyzer/src/dart/element/type_system.dart';
2323import 'package:analyzer/src/error/codes.dart' ;
2424import 'package:analyzer/src/generated/inference_log.dart' ;
2525import 'package:analyzer/src/generated/resolver.dart' ;
26+ import 'package:analyzer/src/utilities/extensions/element.dart' ;
2627
2728Set <Object > _computeExplicitlyTypedParameterSet (
2829 FunctionExpression functionExpression) {
@@ -290,7 +291,7 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
290291 argumentList.correspondingStaticParameters =
291292 ResolverVisitor .resolveArgumentsToParameters (
292293 argumentList: argumentList,
293- parameters : parameters,
294+ formalParameters : parameters. map ((e) => e.asElement2). toList () ,
294295 errorReporter: resolver.errorReporter,
295296 );
296297 }
You can’t perform that action at this time.
0 commit comments