Skip to content

Commit

Permalink
Version 3.7.0-61.0.dev
Browse files Browse the repository at this point in the history
Merge 03d7cc4 into dev
  • Loading branch information
Dart CI committed Oct 24, 2024
2 parents dd06a1e + 03d7cc4 commit 024c957
Show file tree
Hide file tree
Showing 30 changed files with 302 additions and 179 deletions.
9 changes: 3 additions & 6 deletions DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ vars = {
"clock_rev": "7956d60042f4ea979c4554d43eeb57d087627869",
"collection_rev": "887b826b50f48d6a9cd2c0684aa353e8e3a0fad0",
"convert_rev": "d361833e117cb2438d2a2a6d0b0acb28ff0910fb",
"core_rev": "3a3ed8e36626b0c72b6edd152fff68d33997b236",
"core_rev": "2a436d5c21964c2658a3b669d9bdef802637dd81",
"crypto_rev": "3d26ef4cf22d4b218ba30e616544ad3cf52f64a1",
"csslib_rev": "a3700b05bbcc42782e8a7024790dbf019d89c249",
# Note: Updates to dart_style have to be coordinated with the infrastructure
Expand All @@ -153,7 +153,6 @@ vars = {
"html_rev": "6d3bc86cf2ab530ef3fa5f84b5980dc318a02af4",
"http_rev": "5e2281edd25f9addbf26242a0658d8f2dfa1134b",
"http_multi_server_rev": "e7515b5896b83d522189802a1e14e103e19426c0",
"http_parser_rev": "23d775898ee90be9daf3297e298a8869bc755d84",
"intl_rev": "5d65e3808ce40e6282e40881492607df4e35669f",
"json_rpc_2_rev": "c9b616bded8cdb5bfdc836ba7648afa6aba40062",
"leak_tracker_rev": "f5620600a5ce1c44f65ddaa02001e200b096e14c", # manually rolled
Expand Down Expand Up @@ -185,7 +184,7 @@ vars = {
"test_descriptor_rev": "a3db1efe3dc725dcae9ee61647d3bfc19b3231ac",
"test_process_rev": "52ee3f5ab70ed965bb7122c1d499081fbccd0bde",
"test_reflective_loader_rev": "598af2f503955020af0eaa82558d574a03934078",
"tools_rev": "f882de9ba86712003728d4663e1b73a620d352b1",
"tools_rev": "b1312b18df67b0be3101ca15c03dfd8d7c9383bb",
"typed_data_rev": "6abfafdcf661cd8a814619d7e2a3e99edb3a3862",
"vector_math_rev": "2cfbe2c115a57b368ccbc3c89ebd38a06764d3d1",
"watcher_rev": "3b850778ad0b62db3aa2cfe48832870c2461db30",
Expand Down Expand Up @@ -434,8 +433,6 @@ deps = {
Var("dart_root") + "/third_party/pkg/http_multi_server":
Var("dart_git") + "http_multi_server.git" +
"@" + Var("http_multi_server_rev"),
Var("dart_root") + "/third_party/pkg/http_parser":
Var("dart_git") + "http_parser.git" + "@" + Var("http_parser_rev"),
Var("dart_root") + "/third_party/pkg/intl":
Var("dart_git") + "intl.git" + "@" + Var("intl_rev"),
Var("dart_root") + "/third_party/pkg/json_rpc_2":
Expand Down Expand Up @@ -491,7 +488,7 @@ deps = {
"@" + Var("string_scanner_rev"),
Var("dart_root") + "/third_party/pkg/sync_http":
Var("dart_git") + "sync_http.git" + "@" + Var("sync_http_rev"),
Var("dart_root") + "/third_party/pkg/tar":
Var("dart_root") + "/third_party/pkg/tar":
Var("dart_git") + "external/github.com/simolus3/tar.git" +
"@" + Var("tar_rev"),
Var("dart_root") + "/third_party/pkg/term_glyph":
Expand Down
2 changes: 1 addition & 1 deletion pkg/analysis_server/lib/src/protocol_server.dart
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ Location? newLocation_fromElement2(engine.Element2? element) {
return _locationForArgs2(fragment, range);
} else if (element is engine.LabelElement2) {
var offset = element.nameOffset;
var length = element.name3.length;
var length = element.name3?.length ?? 0;
var range = engine.SourceRange(offset, length);
var fragment = element.enclosingFunction;
return _locationForArgs2(fragment, range);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ class ChangeTo extends ResolvedCorrectionProducer {
if (superType == null) return;

for (var constructor in superType.constructors2) {
if (constructor.name3.isEmpty) {
if (constructor.name3 == 'new') {
var list = _formalParameterSuggestions(constructor, formalParameters);
finder._updateList(list);
break;
Expand Down
14 changes: 1 addition & 13 deletions pkg/analyzer/lib/dart/element/element2.dart
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ abstract class ConstructorElement2
///
/// The name of the unnamed constructor is `new`.
@override
String get name3;
String? get name3;

/// The constructor to which this constructor is redirecting.
///
Expand Down Expand Up @@ -977,9 +977,6 @@ abstract class GetterElement implements ExecutableElement2, FragmentedElement {
@override
GetterFragment? get firstFragment;

@override
String? get name3;

/// The field or top-level variable associated with this getter.
///
/// If this getter was explicitly defined (is not synthetic) then the variable
Expand Down Expand Up @@ -1196,9 +1193,6 @@ abstract class LabelElement2 implements Element2 {
@override
LibraryElement2 get library2;

@override
String get name3;

/// The offset of the name in this element.
int get nameOffset;
}
Expand Down Expand Up @@ -1750,9 +1744,6 @@ abstract class PrefixElement2 implements Element2, FragmentedElement {
@override
LibraryElement2 get library2;

@override
String? get name3;

/// The name lookup scope for this import prefix.
///
/// It consists of elements imported into the enclosing library with this
Expand Down Expand Up @@ -1910,9 +1901,6 @@ abstract class SetterElement implements ExecutableElement2, FragmentedElement {
@override
SetterFragment? get firstFragment;

@override
String? get name3;

/// The field or top-level variable associated with this setter.
///
/// If this setter was explicitly defined (is not synthetic) then the variable
Expand Down
2 changes: 1 addition & 1 deletion pkg/analyzer/lib/src/dart/ast/element_locator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ class _ElementMapper2 extends GeneralizingAstVisitor<Element2> {

@override
Element2? visitFunctionDeclaration(FunctionDeclaration node) {
return node.declaredFragment?.element;
return node.declaredElement2 ?? node.declaredFragment?.element;
}

@override
Expand Down
49 changes: 30 additions & 19 deletions pkg/analyzer/lib/src/dart/element/element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -605,6 +605,11 @@ class ClassElementImpl extends ClassOrMixinElementImpl
implicitConstructor.name = name;
implicitConstructor.nameOffset = -1;

implicitConstructor.element = ConstructorElementImpl2(
superclassConstructor.element.name3,
implicitConstructor,
);

var containerRef = reference!.getChild('@constructor');
var referenceName = name.ifNotEmptyOrElse('new');
var implicitReference = containerRef.getChild(referenceName);
Expand Down Expand Up @@ -1372,15 +1377,21 @@ class ConstructorElementImpl extends ExecutableElementImpl
if (_element != null) {
return _element!;
}

ConstructorFragment firstFragment = this;
var previousFragment = firstFragment.previousFragment;
while (previousFragment != null) {
firstFragment = previousFragment;
previousFragment = firstFragment.previousFragment;
}
firstFragment as ConstructorElementImpl;

// As a side-effect of creating the element, all of the fragments in the
// chain will have their `_element` set to the newly created element.
return ConstructorElementImpl2(firstFragment as ConstructorElementImpl);
return ConstructorElementImpl2(
firstFragment.name2?.name ?? 'new',
firstFragment,
);
}

set element(ConstructorElement2 element) => _element = element;
Expand Down Expand Up @@ -1530,10 +1541,13 @@ class ConstructorElementImpl2 extends ExecutableElementImpl2
FragmentedAnnotatableElementMixin<ConstructorFragment>,
FragmentedElementMixin<ConstructorFragment>
implements ConstructorElement2 {
@override
final String? name3;

@override
final ConstructorElementImpl firstFragment;

ConstructorElementImpl2(this.firstFragment) {
ConstructorElementImpl2(this.name3, this.firstFragment) {
ConstructorElementImpl? fragment = firstFragment;
while (fragment != null) {
fragment.element = this;
Expand Down Expand Up @@ -1563,9 +1577,6 @@ class ConstructorElementImpl2 extends ExecutableElementImpl2
@override
ElementKind get kind => ElementKind.CONSTRUCTOR;

@override
String get name3 => firstFragment.name;

@override
ConstructorElement2? get redirectedConstructor2 =>
(firstFragment.redirectedConstructor?.declaration
Expand Down Expand Up @@ -3997,7 +4008,7 @@ class FieldElementImpl2 extends PropertyInducingElementImpl2
ElementKind get kind => ElementKind.FIELD;

@override
String get name3 => firstFragment.name;
String? get name3 => firstFragment.name;

@override
SetterElement? get setter2 => firstFragment.setter?.element as SetterElement?;
Expand Down Expand Up @@ -4167,7 +4178,7 @@ class FormalParameterElementImpl extends PromotableElementImpl2
as LibraryElement2;

@override
String get name3 => firstFragment.name;
String? get name3 => firstFragment.name;

@override
// TODO(augmentations): Implement the merge of formal parameters.
Expand Down Expand Up @@ -7578,15 +7589,18 @@ class MethodElementImpl extends ExecutableElementImpl
if (_element != null) {
return _element!;
}

MethodFragment firstFragment = this;
var previousFragment = firstFragment.previousFragment;
while (previousFragment != null) {
firstFragment = previousFragment;
previousFragment = firstFragment.previousFragment;
}
firstFragment as MethodElementImpl;

// As a side-effect of creating the element, all of the fragments in the
// chain will have their `_element` set to the newly created element.
return MethodElementImpl2(firstFragment as MethodElementImpl);
return MethodElementImpl2(firstFragment.name2?.name, firstFragment);
}

set element(MethodElement2 element) => _element = element;
Expand Down Expand Up @@ -7651,10 +7665,13 @@ class MethodElementImpl2 extends ExecutableElementImpl2
FragmentedAnnotatableElementMixin<MethodFragment>,
FragmentedElementMixin<MethodFragment>
implements MethodElement2 {
@override
final String? name3;

@override
final MethodElementImpl firstFragment;

MethodElementImpl2(this.firstFragment) {
MethodElementImpl2(this.name3, this.firstFragment) {
MethodElementImpl? fragment = firstFragment;
while (fragment != null) {
fragment.element = this;
Expand All @@ -7675,9 +7692,6 @@ class MethodElementImpl2 extends ExecutableElementImpl2
@override
ElementKind get kind => ElementKind.METHOD;

@override
String get name3 => firstFragment.name;

@override
T? accept2<T>(ElementVisitor2<T> visitor) {
return visitor.visitMethodElement(this);
Expand Down Expand Up @@ -9483,10 +9497,7 @@ abstract class PropertyInducingElementImpl
}

abstract class PropertyInducingElementImpl2 extends VariableElementImpl2
implements PropertyInducingElement2 {
@override
String get name3;
}
implements PropertyInducingElement2 {}

/// Instances of this class are set for fields and top-level variables
/// to perform top-level type inference during linking.
Expand Down Expand Up @@ -9810,7 +9821,7 @@ class TopLevelVariableElementImpl2 extends PropertyInducingElementImpl2
ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;

@override
String get name3 => firstFragment.name;
String? get name3 => firstFragment.name;

@override
SetterElement? get setter2 =>
Expand Down Expand Up @@ -10129,7 +10140,7 @@ class TypeAliasElementImpl2 extends TypeDefiningElementImpl2
ElementKind get kind => ElementKind.TYPE_ALIAS;

@override
String get name3 => firstFragment.name;
String? get name3 => firstFragment.name2?.name;

@override
List<TypeParameterElement2> get typeParameters2 =>
Expand Down Expand Up @@ -10666,7 +10677,7 @@ mixin WrappedElementMixin implements ElementImpl2 {
LibraryElement2? get library2 => _wrappedElement.library2;

@override
String get name3 => _wrappedElement.name!;
String? get name3 => _wrappedElement.name3;

ElementImpl get _wrappedElement;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1130,6 +1130,7 @@ class InheritanceManager3 {
result.typeParameters = resultType.typeFormals;
result.returnType = resultType.returnType;
result.parameters = resultType.parameters;
result.element = MethodElementImpl2(firstMethod.name, result);
return result;
} else {
var firstAccessor = first as PropertyAccessorElement;
Expand Down
8 changes: 4 additions & 4 deletions pkg/analyzer/lib/src/dart/element/member.dart
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class ConstructorMember extends ExecutableMember
String get name => declaration.name;

@override
String get name3 => declaration.name;
String? get name3 => _element2.name3;

@override
int? get nameEnd => declaration.nameEnd;
Expand Down Expand Up @@ -556,7 +556,7 @@ class FieldMember extends VariableMember
String get name => declaration.name;

@override
String get name3 => declaration.name;
String? get name3 => _element2.name3;

@override
Element2 get nonSynthetic2 => _element2.nonSynthetic2;
Expand Down Expand Up @@ -989,7 +989,7 @@ class MethodMember extends ExecutableMember
String get name => declaration.name;

@override
String get name3 => declaration.name;
String? get name3 => _element2.name3;

@override
Source get source => _declaration.source!;
Expand Down Expand Up @@ -1247,7 +1247,7 @@ abstract class PropertyAccessorMember extends ExecutableMember
String get name => declaration.name;

@override
String get name3 => declaration.name;
String? get name3 => _element2.name3;

@override
Source get source => _declaration.source!;
Expand Down
16 changes: 14 additions & 2 deletions pkg/analyzer/lib/src/dart/element/type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -569,7 +569,13 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
@override
List<GetterElement> get getters => accessors
.where((accessor) => accessor.isGetter)
.map((fragment) => (fragment as GetterFragment).element as GetterElement)
.map((fragment) => switch (fragment) {
GetterFragment(:var element) => element as GetterElement,
GetterMember() => fragment,
_ => throw StateError(
'unexpected fragment type: ${fragment.runtimeType}',
)
})
.toList();

@override
Expand Down Expand Up @@ -718,7 +724,13 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
@override
List<SetterElement> get setters => accessors
.where((accessor) => accessor.isSetter)
.map((fragment) => (fragment as SetterFragment).element as SetterElement)
.map((fragment) => switch (fragment) {
SetterFragment(:var element) => element as SetterElement,
SetterMember() => fragment,
_ => throw StateError(
'unexpected fragment type: ${fragment.runtimeType}',
)
})
.toList();

@override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,11 @@ class PropertyElementResolver with ScopeHelpers {

DartType? getType;
if (hasRead) {
var unpromotedType =
result.getter?.returnType ?? _typeSystem.typeProvider.dynamicType;
var unpromotedType = switch (result.getter) {
MethodElement(:var type) => type,
PropertyAccessorElement(:var returnType) => returnType,
_ => result.recordField?.type ?? _typeSystem.typeProvider.dynamicType
};
getType = _resolver.flowAnalysis.flow
?.propertyGet(
node,
Expand Down
Loading

0 comments on commit 024c957

Please sign in to comment.