Skip to content

Commit

Permalink
Version 3.8.0-100.0.dev
Browse files Browse the repository at this point in the history
Merge 71ad03f into dev
  • Loading branch information
Dart CI committed Feb 14, 2025
2 parents 1116b4d + 71ad03f commit f462db0
Show file tree
Hide file tree
Showing 29 changed files with 877 additions and 640 deletions.
29 changes: 15 additions & 14 deletions DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -124,34 +124,33 @@ vars = {
# and land the review.
#
# For more details, see https://github.com/dart-lang/sdk/issues/30164.
"dart_style_rev": "21de99ec0ff8ace4d946a746fb427fffd6afa535", # disable tools/rev_sdk_deps.dart
"dart_style_rev": "21de99ec0ff8ace4d946a746fb427fffd6afa535", # rolled manually

### /third_party/pkg dependencies
# 'tools/rev_sdk_deps.dart' can rev pkg dependencies to their latest; put an
# EOL comment after a dependency to disable this and pin it at its current
# revision.
# 'tools/rev_sdk_deps.dart' will rev pkg dependencies to their latest; put an
# EOL comment after a dependency to instead pin at the current revision.
"core_rev": "0b2bd3fcd7f3e082f4cc9b14c19ffa93894b85ae",
"dartdoc_rev": "e1295863b11c54680bf178ec9c2662a33b0e24be", # https://github.com/dart-lang/dartdoc/issues/3969
"ecosystem_rev": "5b0d815952d81f5a51cc6a1af1cacab26f3a61d7",
"ecosystem_rev": "fe4979bc6466de62eaf30b2bf59a78b4bffa3c5b",
"flute_rev": "e4ea0459a7debae5e9592c85141707b01fac86c9",
"glob_rev": "043796be996190473b397fa2fecfa34bb91376fb",
"http_rev": "b7cdf6136926589210662bbdd71000e7abab7271",
"leak_tracker_rev": "f5620600a5ce1c44f65ddaa02001e200b096e14c", # manually rolled
"http_rev": "e28f9f5ec65d83d0bfb299a78c9365cc4dc38ba1",
"intl_rev": "5d65e3808ce40e6282e40881492607df4e35669f",
"leak_tracker_rev": "f5620600a5ce1c44f65ddaa02001e200b096e14c", # rolled manually
"markdown_rev": "62f78c64d963ba6f73bd70ed65630dc934a264e6",
"material_color_utilities_rev": "799b6ba2f3f1c28c67cc7e0b4f18e0c7d7f3c03e",
# dart-native-interop-team@ is rolling breaking changes manually while the assets features are in experimental.
"native_rev": "c817a5e41220de370cbea6e6445e63cdc7087544", # disable tools/rev_sdk_deps.dart
"protobuf_rev": "d00f905450c562493d918884e02048b7aacc00a3",
"pub_rev": "710265bae23ad5860f33287fba10b5c369f19a93", # disable tools/rev_sdk_deps.dart
"shelf_rev": "2a7442f7d6d3e63fdc7b387128619b263dcb7e78",
"native_rev": "c817a5e41220de370cbea6e6445e63cdc7087544", # rolled manually while native assets are experimental
"protobuf_rev": "610943a3bed70c1c2079af5fca02462df10d223f",
"pub_rev": "710265bae23ad5860f33287fba10b5c369f19a93", # rolled manually
"shelf_rev": "b39e61196ce555dc1d3a0c3da695228fa6bdebb8",
"sync_http_rev": "47e6b264a209d0d806cfe9cdad8b6c69ce231986",
"tar_rev": "5a1ea943e70cdf3fa5e1102cdbb9418bd9b4b81a",
"test_rev": "17609bf90c9d5ef47707f5796763629450382474",
"tools_rev": "750b4ad8ea80dd0bfa1d4dcf05915183c2bf6dab", # b/391934702
"tools_rev": "750b4ad8ea80dd0bfa1d4dcf05915183c2bf6dab",
"vector_math_rev": "533c513771d35312dcd0f69e662d729979882df1",
"web_rev": "c2d5f63e9ea4c1409d6e159fc7b92dbcf4dc0d4d",
"web_socket_channel_rev": "f335e52affa5c70a725401394bf265fc4384e62f",
"webdev_rev": "616da45582e008efa114728927eabb498c71f1b7",
"webdev_rev": "718c39c3b10f6e77f767d70d1f30f8a6c8262d6f",
"webdriver_rev": "e84e9ccbee3e0c38a149b7d964eb7ab6ccc78384",
"webkit_inspection_protocol_rev": "effa75205516757795683d527c3dea9546eb0c32",

Expand Down Expand Up @@ -352,6 +351,8 @@ deps = {

Var("dart_root") + "/third_party/pkg/http":
Var("dart_git") + "http.git" + "@" + Var("http_rev"),
Var("dart_root") + "/third_party/pkg/intl":
Var("dart_git") + "intl.git" + "@" + Var("intl_rev"),
Var("dart_root") + "/third_party/pkg/leak_tracker":
Var("dart_git") + "leak_tracker.git" + "@" + Var("leak_tracker_rev"),
Var("dart_root") + "/third_party/pkg/markdown":
Expand Down
103 changes: 103 additions & 0 deletions benchmarks/Intl/dart/format.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
// 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.

// Micro-benchmarks for formatting with Intl.

import 'package:benchmark_harness/benchmark_harness.dart';
import 'package:intl/intl.dart';

var DATES = List.generate(
100,
(i) => DateTime.fromMillisecondsSinceEpoch(1417666640631 - i * 1649837618),
);

const DATE_FORMATS = ['Hm', 'MMM yyyy', 'MMM dd, yyyy'];

var NUMBERS = [
12.345,
1.2345,
-12.345,
20000000.1,
-200000001.2,
...List.generate(90, (i) => (i - 45) * i * 0.716739 + 0.21),
];

const NUMBER_FORMATS = ['\$#,##0.0', '#%', '#,##0', '#.##%'];

const LOCALE = 'en_US';

var g;

class Base extends BenchmarkBase {
Base(name, variant) : super('Intl.$name.format.$variant');

var formatters;
var data;

@override
void run() {
for (var datum in data) {
for (var formatter in formatters) {
g = formatter.format(datum);
}
}

// TODO(devoncarew): Duplicated for golem investigation.
for (var datum in data) {
for (var formatter in formatters) {
g = formatter.format(datum);
}
}
// TODO(devoncarew): Duplicated for golem investigation.
}
}

class DateBenchmark extends Base {
DateBenchmark() : super('DateFormat', 'oneshot');

@override
void setup() {
formatters = DATE_FORMATS.map((s) => DateFormat(s, LOCALE));
data = DATES;
}
}

class DateBenchmarkReused extends Base {
DateBenchmarkReused() : super('DateFormat', 'reused');

@override
void setup() {
formatters = DATE_FORMATS.map((s) => DateFormat(s, LOCALE)).toList();
data = DATES;
}
}

class NumberBenchmark extends Base {
NumberBenchmark() : super('NumberFormat', 'oneshot');

@override
void setup() {
formatters = NUMBER_FORMATS.map((s) => NumberFormat(s, LOCALE));
data = NUMBERS;
}
}

class NumberBenchmarkReused extends Base {
NumberBenchmarkReused() : super('NumberFormat', 'reused');

@override
void setup() {
formatters = NUMBER_FORMATS.map((s) => NumberFormat(s, LOCALE)).toList();
data = NUMBERS;
}
}

void main() {
DateBenchmark().report();
DateBenchmarkReused().report();
NumberBenchmark().report();
NumberBenchmarkReused().report();

if (g is! String) throw 'Error';
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ var analyzerPluginVersion = '0.13.0';

/// The version of the analyzer package that matches the analyzer code used by
/// the analysis_server package.
var analyzerVersion = '7.2.0';
var analyzerVersion = '7.3.0';
4 changes: 4 additions & 0 deletions pkg/analyzer/lib/src/dart/element/element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7089,6 +7089,10 @@ class LabelElementImpl2 extends ElementImpl2
return [firstFragment];
}

/// Return `true` if this label is associated with a `switch` member (`case
/// ` or`default`).
bool get isOnSwitchMember => _wrappedElement.isOnSwitchMember;

@override
LibraryElement2 get library2 {
return _wrappedElement.library2;
Expand Down
14 changes: 7 additions & 7 deletions pkg/analyzer/lib/src/dart/element/member.dart
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ class ConstructorMember extends ExecutableMember
if (element is ConstructorMember) {
declaration = element._declaration as ConstructorElement;
var map = <TypeParameterElement2, DartType>{};
var elementMap = element._substitution.map2;
var elementMap = element._substitution.map;
for (var typeParameter in elementMap.keys) {
var type = elementMap[typeParameter]!;
map[typeParameter] = _substitution.substituteType(type);
Expand Down Expand Up @@ -423,9 +423,9 @@ abstract class ExecutableMember extends Member
augmentationSubstitution = member.augmentationSubstitution;

var map = <TypeParameterElement2, DartType>{
for (var MapEntry(:key, :value) in member._substitution.map2.entries)
for (var MapEntry(:key, :value) in member._substitution.map.entries)
key: substitution.substituteType(value),
...substitution.map2,
...substitution.map,
};
combined = Substitution.fromMap2(map);
}
Expand Down Expand Up @@ -1372,9 +1372,9 @@ class ParameterMember extends VariableMember
element = member.declaration;

var map = <TypeParameterElement2, DartType>{
for (var MapEntry(:key, :value) in member._substitution.map2.entries)
for (var MapEntry(:key, :value) in member._substitution.map.entries)
key: substitution.substituteType(value),
...substitution.map2,
...substitution.map,
};
combined = Substitution.fromMap2(map);
}
Expand Down Expand Up @@ -1826,8 +1826,8 @@ class _SubstitutedTypeParameters {
return _SubstitutedTypeParameters._(
newElements,
Substitution.fromMap2({
...substitution.map2,
...substitution2.map2,
...substitution.map,
...substitution2.map,
}),
);
}
Expand Down
44 changes: 20 additions & 24 deletions pkg/analyzer/lib/src/dart/element/type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ class FunctionTypeImpl extends TypeImpl
}

return other.returnType == returnType &&
_equalParameters(other.parameters, parameters);
_equalParameters(other.formalParameters, formalParameters);
}
return false;
}
Expand Down Expand Up @@ -441,32 +441,26 @@ class FunctionTypeImpl extends TypeImpl
FunctionType f1,
FunctionType f2,
bool Function(DartType bound2, DartType bound1) relation) {
List<TypeParameterElement> params1 = f1.typeFormals;
List<TypeParameterElement> params2 = f2.typeFormals;
return relateTypeFormals2(params1, params2, relation);
}
List<TypeParameterElement2> params1 = f1.typeParameters;
List<TypeParameterElement2> params2 = f2.typeParameters;

static List<TypeParameterType>? relateTypeFormals2(
List<TypeParameterElement> params1,
List<TypeParameterElement> params2,
bool Function(DartType bound2, DartType bound1) relation) {
int count = params1.length;
if (params2.length != count) {
return null;
}
// We build up a substitution matching up the type parameters
// from the two types, {variablesFresh/variables1} and
// {variablesFresh/variables2}
List<TypeParameterElement> variables1 = <TypeParameterElement>[];
List<TypeParameterElement> variables2 = <TypeParameterElement>[];
var variablesFresh = <TypeParameterType>[];
List<TypeParameterElement2> variables1 = <TypeParameterElement2>[];
List<TypeParameterElement2> variables2 = <TypeParameterElement2>[];
List<TypeParameterType> variablesFresh = <TypeParameterType>[];
for (int i = 0; i < count; i++) {
TypeParameterElement p1 = params1[i];
TypeParameterElement p2 = params2[i];
TypeParameterElement2 p1 = params1[i];
TypeParameterElement2 p2 = params2[i];
TypeParameterElementImpl pFresh =
TypeParameterElementImpl.synthetic(p2.name);
TypeParameterElementImpl.synthetic(p2.name3!);

var variableFresh = pFresh.instantiate(
TypeParameterTypeImpl variableFresh = pFresh.instantiate(
nullabilitySuffix: NullabilitySuffix.none,
);

Expand All @@ -476,9 +470,9 @@ class FunctionTypeImpl extends TypeImpl

DartType bound1 = p1.bound ?? DynamicTypeImpl.instance;
DartType bound2 = p2.bound ?? DynamicTypeImpl.instance;
bound1 = Substitution.fromPairs(variables1, variablesFresh)
bound1 = Substitution.fromPairs2(variables1, variablesFresh)
.substituteType(bound1);
bound2 = Substitution.fromPairs(variables2, variablesFresh)
bound2 = Substitution.fromPairs2(variables2, variablesFresh)
.substituteType(bound2);
if (!relation(bound2, bound1)) {
return null;
Expand All @@ -496,24 +490,26 @@ class FunctionTypeImpl extends TypeImpl
/// the same types. Named parameters must also have same names. Named
/// parameters must be sorted in the given lists.
static bool _equalParameters(
List<ParameterElement> firstParameters,
List<ParameterElement> secondParameters,
List<FormalParameterElement> firstParameters,
List<FormalParameterElement> secondParameters,
) {
if (firstParameters.length != secondParameters.length) {
return false;
}
for (var i = 0; i < firstParameters.length; ++i) {
var firstParameter = firstParameters[i];
var secondParameter = secondParameters[i];
// ignore: deprecated_member_use_from_same_package
if (firstParameter.parameterKind != secondParameter.parameterKind) {
if (firstParameter.isPositional != secondParameter.isPositional) {
return false;
}
if (firstParameter.isOptional != secondParameter.isOptional) {
return false;
}
if (firstParameter.type != secondParameter.type) {
return false;
}
if (firstParameter.isNamed &&
firstParameter.name != secondParameter.name) {
firstParameter.name3 != secondParameter.name3) {
return false;
}
}
Expand Down Expand Up @@ -958,7 +954,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
MethodMember.from(element.getMethod(methodName), this);

@override
MethodElement2? getMethod2(String methodName) {
MethodElement2OrMember? getMethod2(String methodName) {
return getMethod(methodName)?.asElement2;
}

Expand Down
Loading

0 comments on commit f462db0

Please sign in to comment.