mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 09:01:42 +00:00
Issue 50660. Fix 'get Source' for ParameterMember.
Bug: https://github.com/dart-lang/sdk/issues/50660 Change-Id: Ie6af7c60178b2010f4cd5254e563185eb7e27042 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274603 Reviewed-by: Samuel Rawlins <srawlins@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
db636ba8fe
commit
09a5d048e8
|
@ -1,3 +1,6 @@
|
|||
## 5.4.0-dev
|
||||
* Bug fixes: 50660
|
||||
|
||||
## 5.3.1
|
||||
* Require `collection: ^1.17.0` because we use `elementAtOrNull`.
|
||||
|
||||
|
|
|
@ -97,6 +97,9 @@ class ConstructorMember extends ExecutableMember
|
|||
@override
|
||||
InterfaceType get returnType => type.returnType as InterfaceType;
|
||||
|
||||
@override
|
||||
Source get source => _declaration.source!;
|
||||
|
||||
@override
|
||||
T? accept<T>(ElementVisitor<T> visitor) =>
|
||||
visitor.visitConstructorElement(this);
|
||||
|
@ -396,6 +399,9 @@ class FieldMember extends VariableMember implements FieldElement {
|
|||
_typeProvider, baseSetter, _substitution, isLegacy);
|
||||
}
|
||||
|
||||
@override
|
||||
Source? get source => _declaration.source;
|
||||
|
||||
@override
|
||||
T? accept<T>(ElementVisitor<T> visitor) => visitor.visitFieldElement(this);
|
||||
|
||||
|
@ -458,6 +464,9 @@ class FunctionMember extends ExecutableMember implements FunctionElement {
|
|||
@override
|
||||
String get name => declaration.name;
|
||||
|
||||
@override
|
||||
Source get source => _declaration.source!;
|
||||
|
||||
@override
|
||||
T? accept<T>(ElementVisitor<T> visitor) {
|
||||
return visitor.visitFunctionElement(this);
|
||||
|
@ -620,9 +629,6 @@ abstract class Member implements Element {
|
|||
@override
|
||||
AnalysisSession? get session => _declaration.session;
|
||||
|
||||
@override
|
||||
Source get source => _declaration.source!;
|
||||
|
||||
/// The substitution for type parameters referenced in the base element.
|
||||
MapSubstitution get substitution => _substitution;
|
||||
|
||||
|
@ -807,6 +813,9 @@ class MethodMember extends ExecutableMember implements MethodElement {
|
|||
@override
|
||||
String get name => declaration.name;
|
||||
|
||||
@override
|
||||
Source get source => _declaration.source!;
|
||||
|
||||
@override
|
||||
T? accept<T>(ElementVisitor<T> visitor) => visitor.visitMethodElement(this);
|
||||
|
||||
|
@ -929,6 +938,9 @@ class ParameterMember extends VariableMember
|
|||
return const <ParameterElement>[];
|
||||
}
|
||||
|
||||
@override
|
||||
Source? get source => _declaration.source;
|
||||
|
||||
@override
|
||||
T? accept<T>(ElementVisitor<T> visitor) =>
|
||||
visitor.visitParameterElement(this);
|
||||
|
@ -1043,6 +1055,9 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
@override
|
||||
String get name => declaration.name;
|
||||
|
||||
@override
|
||||
Source get source => _declaration.source!;
|
||||
|
||||
@override
|
||||
PropertyInducingElement get variable {
|
||||
// TODO
|
||||
|
@ -1188,6 +1203,9 @@ class TopLevelVariableMember extends VariableMember
|
|||
_typeProvider, baseSetter, _substitution, isLegacy);
|
||||
}
|
||||
|
||||
@override
|
||||
Source get source => _declaration.source!;
|
||||
|
||||
@override
|
||||
T? accept<T>(ElementVisitor<T> visitor) {
|
||||
return visitor.visitTopLevelVariableElement(this);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
name: analyzer
|
||||
version: 5.3.1
|
||||
version: 5.4.0-dev
|
||||
description: This package provides a library that performs static analysis of Dart code.
|
||||
repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
import 'package:analyzer/dart/ast/ast.dart';
|
||||
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
|
||||
import 'package:analyzer/src/error/codes.dart';
|
||||
import 'package:test/expect.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import 'context_collection_resolution.dart';
|
||||
|
@ -1000,6 +1001,20 @@ CascadeExpression
|
|||
''');
|
||||
}
|
||||
|
||||
test_parameterMember_source() async {
|
||||
// See https://github.com/dart-lang/sdk/issues/50660
|
||||
await assertNoErrorsInCode(r'''
|
||||
void foo<T>({int? a}) {}
|
||||
|
||||
void f() {
|
||||
foo(a: 0);
|
||||
}
|
||||
''');
|
||||
|
||||
var element = findNode.simple('a:').staticElement!;
|
||||
expect(element.source, isNull);
|
||||
}
|
||||
|
||||
test_typeArgumentTypes_generic_inferred_leftTop_dynamic() async {
|
||||
await assertNoErrorsInCode('''
|
||||
void foo<T extends Object>(T? value) {}
|
||||
|
|
Loading…
Reference in a new issue