Skip to content

Commit 91cbf6d

Browse files
author
Dart CI
committed
Version 3.10.0-80.0.dev
Merge 1265d25 into dev
2 parents 4b7b565 + 1265d25 commit 91cbf6d

17 files changed

+231
-86
lines changed

pkg/front_end/lib/src/kernel/kernel_helper.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ class DelayedDefaultValueCloner {
270270
synthesizedParameter.type, synthesizedParameter.name!),
271271
synthesizedParameter.fileOffset,
272272
synthesizedParameter.name?.length ?? 1,
273-
_libraryBuilder.fileUri);
273+
synthesized.fileUri);
274274
synthesizedParameter.isErroneouslyInitialized = true;
275275
}
276276
}

pkg/front_end/lib/src/type_inference/inference_visitor_base.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2544,7 +2544,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
25442544
),
25452545
formal.fileOffset,
25462546
formal.name!.length,
2547-
libraryBuilder.importUri,
2547+
helper.uri,
25482548
);
25492549
formal.isErroneouslyInitialized = true;
25502550
}
@@ -2586,7 +2586,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
25862586
),
25872587
formal.fileOffset,
25882588
formal.name!.length,
2589-
libraryBuilder.importUri,
2589+
helper.uri,
25902590
);
25912591
}
25922592
}
@@ -3920,7 +3920,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
39203920
codeRecordUsedAsCallable,
39213921
receiver.fileOffset,
39223922
noLength,
3923-
libraryBuilder.fileUri,
3923+
helper.uri,
39243924
);
39253925
}
39263926
DartType type = target.getGetterType(this);

pkg/front_end/test/testing/suite.dart

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,14 @@ class FuzzCompiles
874874
);
875875
if (passResult != null) return passResult;
876876

877+
passResult = await wrapInPart(
878+
compilationSetup,
879+
platform,
880+
result,
881+
context,
882+
);
883+
if (passResult != null) return passResult;
884+
877885
if (!hasErrors) {
878886
// To get proper splitting (between dill and not dill builders) we need
879887
// experimental invalidation - it doesn't work when there's errors
@@ -1111,6 +1119,62 @@ class FuzzCompiles
11111119
return false;
11121120
}
11131121

1122+
/// Perform a compilations where the user file is wrapped in a part and that
1123+
/// no crashing occurs (because of wrong uris being set).
1124+
Future<Result<ComponentResult>?> wrapInPart(CompilationSetup compilationSetup,
1125+
Component platform, ComponentResult result, FastaContext context) async {
1126+
FileSystem orgFileSystem = compilationSetup.options.fileSystem;
1127+
Uri mainUri = compilationSetup.options.inputs.single;
1128+
Uint8List orgData = await orgFileSystem.entityForUri(mainUri).readAsBytes();
1129+
1130+
compilationSetup.options.clearFileSystemCache();
1131+
_FakeFileSystem fs = new _FakeFileSystem(orgFileSystem);
1132+
compilationSetup.compilerOptions.fileSystem = fs;
1133+
1134+
Uri newEntryUri = Uri.parse("foo:///newMain.dart");
1135+
1136+
Uint8List newMainData = Uint8List.fromList([
1137+
...utf8.encode("""
1138+
part of "${newEntryUri}";
1139+
1140+
// La la la la la la la la la la la la la.
1141+
// La la la la la la la la la la la la la.
1142+
// La la la la la la la la la la la la la.
1143+
// La la la la la la la la la la la la la.
1144+
// La la la la la la la la la la la la la.
1145+
"""),
1146+
...orgData,
1147+
]);
1148+
1149+
compilationSetup.errors.clear();
1150+
1151+
fs.data[mainUri] = newMainData;
1152+
fs.data[newEntryUri] = utf8.encode("part '$mainUri';");
1153+
IncrementalCompiler incrementalCompiler =
1154+
new IncrementalCompiler.fromComponent(
1155+
new CompilerContext(compilationSetup.options), platform);
1156+
try {
1157+
await incrementalCompiler.computeDelta(entryPoints: [newEntryUri]);
1158+
} catch (e, st) {
1159+
if (e is AssertionError || (e is Crash && e.error is AssertionError)) {
1160+
return new Result<ComponentResult>(
1161+
result,
1162+
semiFuzzAssertFailure,
1163+
"Assertion failure with '$e' after putting '$mainUri' into a part."
1164+
"\n\n$st");
1165+
}
1166+
return new Result<ComponentResult>(
1167+
result,
1168+
semiFuzzCrash,
1169+
"Crashed with '$e' after putting '$mainUri' into a part."
1170+
"\n\n$st");
1171+
}
1172+
1173+
compilationSetup.options.clearFileSystemCache();
1174+
compilationSetup.compilerOptions.fileSystem = orgFileSystem;
1175+
return null;
1176+
}
1177+
11141178
/// Perform a number of compilations where each user-file is in turn sorted
11151179
/// in both ascending and descending order (i.e. the procedures and classes
11161180
/// etc are sorted).

pkg/front_end/testcases/incremental.status

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
changing_modules_16: Crash
1111
constant_fileoffset_and_typedef: EquivalenceError
12-
changing_nullability_on_recompile: EquivalenceError
1312
initializer_not_copied: EquivalenceError
1413
changed_error: EquivalenceError
1514
issue_49968: ConstantCoverageReferenceWithoutNode

pkg/front_end/testcases/modular.status

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,15 @@
77
constructor_tearoffs/call_instantiation: TypeCheckError
88
enhanced_enums/declared_hashcode: TypeCheckError
99
enhanced_enums/declared_index: TypeCheckError
10-
extension_types/access_setter_as_getter: ExpectationFileMismatchSerialized # Expected.
11-
extension_types/call_not_get: ExpectationFileMismatchSerialized # Expected.
12-
extension_types/extension_on_nullable: ExpectationFileMismatchSerialized # Expected.
13-
extension_types/issue45775: ExpectationFileMismatchSerialized # Expected.
14-
extension_types/non_simple_many_libs_same_name_cycle: ExpectationFileMismatchSerialized
15-
extension_types/show_and_run_ceil: ExpectationFileMismatchSerialized # Expected.
16-
extension_types/simple: ExpectationFileMismatchSerialized # Expected.
17-
extension_types/simple_getter_resolution: ExpectationFileMismatchSerialized # Expected.
18-
extension_types/simple_method_resolution: ExpectationFileMismatchSerialized # Expected.
19-
extension_types/simple_operator_resolution: ExpectationFileMismatchSerialized # Expected.
20-
extension_types/simple_setter_resolution: ExpectationFileMismatchSerialized # Expected.
21-
extension_types/simple_show_hide: ExpectationFileMismatchSerialized # Expected.
22-
extension_types/type_variable_in_static_context: ExpectationFileMismatchSerialized # Expected.
2310
extensions/extension_setter_error: TypeCheckError
2411
general/abstract_members: TypeCheckError
2512
general/bug30695: TypeCheckError
26-
general/getter_vs_setter_type: TypeCheckError
2713
general/hierarchy/conflict: TypeCheckError
2814
general/hierarchy/duplicates: TypeCheckError
29-
general/infer_field_from_multiple2: TypeCheckError
3015
general/supertype_conflict: TypeCheckError
3116
inference/instantiate_tearoff_of_call: TypeCheckError
3217
inference/mixin_inference_outwards_3: TypeCheckError
3318
inference/mixin_inference_outwards_4: TypeCheckError
3419
inference/mixin_inference_unification_1: TypeCheckError
3520
inference/mixin_inference_unification_2: TypeCheckError
36-
runtime_checks_new/mixin_forwarding_stub_getter: TypeCheckError
3721
coverage/static2_test: TypeCheckError

pkg/front_end/testcases/outline.status

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,15 @@
55
const_functions/const_functions_const_factory: VerificationError
66
enhanced_enums/declared_hashcode: TypeCheckError
77
enhanced_enums/declared_index: TypeCheckError
8-
extension_types/access_setter_as_getter: ExpectationFileMismatchSerialized # Expected.
9-
extension_types/call_not_get: ExpectationFileMismatchSerialized # Expected.
10-
extension_types/extension_on_nullable: ExpectationFileMismatchSerialized # Expected.
11-
extension_types/non_simple_many_libs_same_name_cycle: ExpectationFileMismatchSerialized
12-
extension_types/show_and_run_ceil: ExpectationFileMismatchSerialized # Expected.
13-
extension_types/simple: ExpectationFileMismatchSerialized
14-
extension_types/simple_getter_resolution: ExpectationFileMismatchSerialized
15-
extension_types/simple_method_resolution: ExpectationFileMismatchSerialized
16-
extension_types/simple_operator_resolution: ExpectationFileMismatchSerialized
17-
extension_types/simple_setter_resolution: ExpectationFileMismatchSerialized
18-
extension_types/simple_show_hide: ExpectationFileMismatchSerialized # Expected.
19-
extension_types/type_variable_in_static_context: ExpectationFileMismatchSerialized # Expected.
208
general/abstract_members: TypeCheckError
219
general/bounds_type_parameters: TypeCheckError
2210
general/bug30695: TypeCheckError
23-
general/getter_vs_setter_type: TypeCheckError
2411
general/hierarchy/conflict: TypeCheckError
2512
general/hierarchy/duplicates: TypeCheckError
26-
general/infer_field_from_multiple2: TypeCheckError
2713
general/supertype_conflict: TypeCheckError
28-
inference/infer_assign_to_index: Fail
29-
inference/infer_assign_to_property: Fail
30-
inference/infer_assign_to_property_custom: Fail
3114
inference/mixin_inference_outwards_3: TypeCheckError
3215
inference/mixin_inference_outwards_4: TypeCheckError
3316
inference/mixin_inference_unification_1: TypeCheckError
3417
inference/mixin_inference_unification_2: TypeCheckError
35-
nnbd_mixed/bad_mixins: TypeCheckError
36-
nnbd_mixed/covariant_from_opt_in: TypeCheckError
3718
rasta/native_is_illegal: Pass # Issue 29763
3819
coverage/static2_test: TypeCheckError

pkg/front_end/testcases/strong.status

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
# Status file for the strong_suite.dart test suite. This is testing generating
66
# Kernel ASTs directly, that is, code in pkg/kernel.
77

8-
# Macros are in development
9-
macros/scope_access: SemiFuzzFailure
10-
118
# Assert failure
129
general/error_recovery/issue_39202.crash: SemiFuzzAssertFailure
1310

@@ -18,7 +15,6 @@ const_functions/const_functions_switch_statements: SemiFuzzFailure # https://git
1815

1916
# POSSIBLY BAD ONES
2017
dart2js/issue51823: SemiFuzzFailure # Inequivalent nodes on recompile - https://github.com/dart-lang/sdk/issues/53119.
21-
macros/library_members_import: SemiFuzzFailure # Inequivalent nodes on recompile - https://github.com/dart-lang/sdk/issues/53119.
2218

2319
# EXPECTED FAILURES DUE TO PRIVACY ETC:
2420
dart2js/native: semiFuzzFailureOnForceRebuildBodies # errors in the input means it can't force split.
@@ -37,7 +33,6 @@ extensions/unnamed_extensions: semiFuzzFailureOnForceRebuildBodies # unnamed ext
3733
general/bug33099: semiFuzzFailureOnForceRebuildBodies # private class
3834
general/closure: semiFuzzFailureOnForceRebuildBodies # private field
3935
general/constants/rudimentary_test_01: semiFuzzFailureOnForceRebuildBodies # private method
40-
general/constants/with_unevaluated_agnostic/rudimentary_test_01: semiFuzzFailureOnForceRebuildBodies # private method
4136
general/constructor_const_inference: semiFuzzFailureOnForceRebuildBodies # private class
4237
general/issue47036: semiFuzzFailureOnForceRebuildBodies # private class
4338
general/issue48548: semiFuzzFailureOnForceRebuildBodies # private field
@@ -65,7 +60,6 @@ inference_update_3/if_null_assignment_explicit_extension_index_expression_test:
6560
inference_update_3/if_null_assignment_explicit_extension_null_aware_index_expression_test: semiFuzzFailureOnForceRebuildBodies # privacy.
6661
inference_update_3/if_null_assignment_implicit_extension_index_expression_test: semiFuzzFailureOnForceRebuildBodies # privacy.
6762
inference_update_3/if_null_assignment_implicit_extension_null_aware_index_expression_test: semiFuzzFailureOnForceRebuildBodies # privacy.
68-
macros/macro_class: SemiFuzzFailure # Declares macros.
6963
patterns/exhaustiveness/extension_types: semiFuzzFailureOnForceRebuildBodies # uses sealed
7064
patterns/exhaustiveness/issue51957: semiFuzzFailureOnForceRebuildBodies # can't split because of sealed class.
7165
patterns/exhaustiveness/issue52041: semiFuzzFailureOnForceRebuildBodies # can't match on private field in split out library.
@@ -125,29 +119,17 @@ nnbd/platform_optional_parameters/main: SemiFuzzFailure
125119
# UNSORTED ONES:
126120
coverage/static2_test: TypeCheckError
127121
constructor_tearoffs/explicit_instantiation: SemiFuzzFailure
128-
general/constants/with_unevaluated_agnostic/various_2: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242441
129122
general/error_recovery/issue_39058.crash: SemiFuzzFailure
130123
general/error_recovery/issue_39058_prime.crash: SemiFuzzFailure
131124
general/platform_invalid_uris/main: SemiFuzzFailure
132125
general/supported_libraries/main: SemiFuzzFailure
133126
general/with_dependencies/issue_43084/issue_43084: SemiFuzzFailure # https://dart-review.googlesource.com/c/sdk/+/242543
134127
regress/utf_16_le_content.crash: SemiFuzzCrash
135128

136-
macros/scope_access: semiFuzzFailureOnForceRebuildBodies # probably augment imports that isn't split correctly. Previously was: SemiFuzzCrash
137-
138-
macros/augment_concrete: SemiFuzzFailure # https://github.com/dart-lang/sdk/issues/49414
139-
macros/duplicate_augment: semiFuzzFailureOnForceRebuildBodies
140-
macros/extend_augmented: semiFuzzFailureOnForceRebuildBodies # probably augment imports that isn't split correctly. Previously was: SemiFuzzFailure # Similar to https://github.com/dart-lang/sdk/issues/49414
141-
142129
const_functions/const_functions_list: SemiFuzzCrash
143130

144-
dart2js/mixin_from_opt_in/main: SemiFuzzFailure # seems like the difference between normal and no-link version: it goes from InstanceInvocation to InvalidExpression
145-
dart2js/mixin_from_opt_in/main.no_link: SemiFuzzFailure # seems like the difference between normal and no-link version: it goes from InstanceInvocation to InvalidExpression
146131
late_lowering/private_members: SemiFuzzFailure # Reproduced in https://dart-review.googlesource.com/c/sdk/+/242285
147-
macros/multiple_imports: SemiFuzzFailure # probably augment imports that isn't split correctly.
148-
macros/augment_same_file: SemiFuzzFailure # probably augment imports that isn't split correctly.
149132
nnbd/constants: SemiFuzzFailure # Reproduced in https://dart-review.googlesource.com/c/sdk/+/242441
150-
macros/multiple_augment_class: semiFuzzFailureOnForceRebuildBodies # probably augment imports that isn't split correctly. Previously was: SemiFuzzFailure # https://github.com/dart-lang/sdk/issues/49990
151133

152134
# These tests have "privacy issues" and isn't compatible with splitting files (fuzzing):
153135
dart2js/mixin_default_values/main: semiFuzzFailureOnForceRebuildBodies # private method
@@ -157,7 +139,6 @@ late_lowering/injected_late_field_checks/main: semiFuzzFailureOnForceRebuildBodi
157139
late_lowering/issue41436/issue41436: semiFuzzFailureOnForceRebuildBodies # needs custom libraries.json (and platform?) not setup here
158140
late_lowering/issue41922: semiFuzzFailureOnForceRebuildBodies # private field
159141
late_lowering/private_members: semiFuzzFailureOnForceRebuildBodies # private class
160-
macros/inject_constructor: semiFuzzFailureOnForceRebuildBodies # Macro injection --- think it might introduce a class in a file?
161142
nnbd/injected_late_field_checks/main: semiFuzzFailureOnForceRebuildBodies # needs custom libraries.json (and platform?) not setup here
162143
nnbd/issue42504: semiFuzzFailureOnForceRebuildBodies # private class
163144
nnbd/issue43918: semiFuzzFailureOnForceRebuildBodies # private class
@@ -171,19 +152,6 @@ constructor_tearoffs/call_instantiation: TypeCheckError
171152
enhanced_enums/declared_hashcode: TypeCheckError
172153
enhanced_enums/declared_index: TypeCheckError
173154
enhanced_enums/simple_mixins: RuntimeError
174-
extension_types/access_setter_as_getter: ExpectationFileMismatchSerialized # Expected.
175-
extension_types/call_not_get: ExpectationFileMismatchSerialized # Expected.
176-
extension_types/extension_on_nullable: ExpectationFileMismatchSerialized # Expected.
177-
extension_types/issue45775: ExpectationFileMismatchSerialized # Expected.
178-
extension_types/non_simple_many_libs_same_name_cycle: ExpectationFileMismatchSerialized
179-
extension_types/show_and_run_ceil: ExpectationFileMismatchSerialized # Expected.
180-
extension_types/simple: ExpectationFileMismatchSerialized # Expected.
181-
extension_types/simple_getter_resolution: ExpectationFileMismatchSerialized # Expected.
182-
extension_types/simple_method_resolution: ExpectationFileMismatchSerialized # Expected.
183-
extension_types/simple_operator_resolution: ExpectationFileMismatchSerialized # Expected.
184-
extension_types/simple_setter_resolution: ExpectationFileMismatchSerialized # Expected.
185-
extension_types/simple_show_hide: ExpectationFileMismatchSerialized # Expected.
186-
extension_types/type_variable_in_static_context: ExpectationFileMismatchSerialized # Expected.
187155
extension_types/with_dependencies/issue53209_1/main: SemiFuzzFailure
188156
extensions/extension_setter_error: TypeCheckError
189157
extensions/instance_access_of_static: RuntimeError
@@ -197,18 +165,15 @@ general/call: RuntimeError
197165
general/cascade: RuntimeError
198166
general/constructor_initializer_invalid: RuntimeError
199167
general/continue_label_invalid: RuntimeError
200-
general/covariant_generic2: RuntimeError
201168
general/duplicated_field_initializer: RuntimeError
202169
general/error_locations/error_location_01: RuntimeError
203170
general/error_locations/error_location_02: RuntimeError
204171
general/error_locations/error_location_03: RuntimeError
205172
general/error_recovery/empty_await_for: RuntimeError
206173
general/error_recovery/empty_for: RuntimeError
207174
general/expressions: RuntimeError
208-
general/getter_vs_setter_type: TypeCheckError
209175
general/hierarchy/conflict: TypeCheckError
210176
general/hierarchy/duplicates: TypeCheckError
211-
general/infer_field_from_multiple2: TypeCheckError
212177
general/invocations: RuntimeError
213178
general/issue37776: RuntimeError
214179
general/issue47994b: RuntimeError
@@ -280,16 +245,7 @@ regress/issue_35266: RuntimeError
280245
regress/issue_37285: RuntimeError
281246
regress/issue_39091_2: RuntimeError
282247
set_literals/disambiguation_rule: RuntimeError
283-
value_class/copy_with_call_sites: RuntimeError # Expected
284-
value_class/simple: RuntimeError # Expected
285-
value_class/value_extends_non_value: RuntimeError # Expected
286-
value_class/value_implements_non_value: RuntimeError # Expected
287248
wildcard_variables/class_type_parameters: semiFuzzFailureOnForceRebuildBodies # Expected
288249
wildcard_variables/initializing_formals: RuntimeError # Expected
289250
wildcard_variables/local_var_no_shadowing: semiFuzzFailureOnForceRebuildBodies # Expected
290251
wildcard_variables/top_level_function_no_shadow: semiFuzzFailureOnForceRebuildBodies # Expected
291-
292-
# Verifier crashes in semi-fuzzing
293-
macros/extend_augmented: SemiFuzzCrash
294-
macros/augment_concrete: SemiFuzzCrash
295-
macros/multiple_augment_class: SemiFuzzCrash
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'default_values_2_lib.dart';
6+
7+
class C5 extends S5 {
8+
C5([int super.x]); // Error.
9+
}
10+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
library;
2+
//
3+
// Problems in library:
4+
//
5+
// pkg/front_end/testcases/super_parameters/default_values_2.dart:8:17: Error: Type 'int' of the optional super-initializer parameter 'x' doesn't allow 'null', but the parameter doesn't have a default value, and the default value can't be copied from the corresponding parameter of the super constructor.
6+
// C5([int super.x]); // Error.
7+
// ^
8+
//
9+
import self as self;
10+
import "default_values_2_lib.dart" as def;
11+
import "dart:core" as core;
12+
13+
import "org-dartlang-testcase:///default_values_2_lib.dart";
14+
15+
class C5 extends def::S5 {
16+
constructor •([erroneously-initialized core::int x = #C1]) → self::C5
17+
: super def::S5::•(x)
18+
;
19+
}
20+
21+
library;
22+
import self as def;
23+
import "dart:core" as core;
24+
25+
class S5 extends core::Object {
26+
field core::num a;
27+
constructor •([core::num x = #C2]) → def::S5
28+
: def::S5::a = x.{core::num::-}(1){(core::num) → core::num}, super core::Object::•()
29+
;
30+
}
31+
32+
constants {
33+
#C1 = null
34+
#C2 = 3.14
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
library;
2+
//
3+
// Problems in library:
4+
//
5+
// pkg/front_end/testcases/super_parameters/default_values_2.dart:8:17: Error: Type 'int' of the optional super-initializer parameter 'x' doesn't allow 'null', but the parameter doesn't have a default value, and the default value can't be copied from the corresponding parameter of the super constructor.
6+
// C5([int super.x]); // Error.
7+
// ^
8+
//
9+
import self as self;
10+
import "default_values_2_lib.dart" as def;
11+
import "dart:core" as core;
12+
13+
import "org-dartlang-testcase:///default_values_2_lib.dart";
14+
15+
class C5 extends def::S5 {
16+
constructor •([erroneously-initialized core::int x = #C1]) → self::C5
17+
: super def::S5::•(x)
18+
;
19+
}
20+
21+
library;
22+
import self as def;
23+
import "dart:core" as core;
24+
25+
class S5 extends core::Object {
26+
field core::num a;
27+
constructor •([core::num x = #C2]) → def::S5
28+
: def::S5::a = x.{core::num::-}(1){(core::num) → core::num}, super core::Object::•()
29+
;
30+
}
31+
32+
constants {
33+
#C1 = null
34+
#C2 = 3.14
35+
}

0 commit comments

Comments
 (0)