Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 761ed53

Browse files
author
Dart CI
committed
Version 2.13.0-94.0.dev
Merge commit 'f3740ced59abc400e718bdfa4bd8020e9516d0fa' into 'dev'
2 parents f209e60 + f3740ce commit 761ed53

31 files changed

+819
-355
lines changed

pkg/compiler/lib/src/io/location_provider.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ class LocationCollector extends CodeOutputListener implements LocationProvider {
4040
@override
4141
Location getLocation(int offset) {
4242
RangeError.checkValueInInterval(offset, 0, length, 'offset');
43-
return new Source(lineStarts, null, null, null).getLocation(null, offset);
43+
return new Source(lineStarts, const <int>[], null, null)
44+
.getLocation(null, offset);
4445
}
4546

4647
@override

pkg/front_end/lib/src/fasta/builder/field_builder.dart

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -125,17 +125,21 @@ class SourceFieldBuilder extends MemberBuilderImpl implements FieldBuilder {
125125
Reference fieldSetterReference,
126126
Reference lateIsSetGetterReference,
127127
Reference lateIsSetSetterReference,
128-
Reference getterReference,
129-
Reference setterReference})
128+
Reference lateGetterReference,
129+
Reference lateSetterReference})
130130
: super(libraryBuilder, charOffset) {
131131
Uri fileUri = libraryBuilder?.fileUri;
132132
// If in mixed mode, late lowerings cannot use `null` as a sentinel on
133133
// non-nullable fields since they can be assigned from legacy code.
134134
late_lowering.IsSetStrategy isSetStrategy =
135135
late_lowering.computeIsSetStrategy(libraryBuilder);
136136
if (isAbstract || isExternal) {
137-
_fieldEncoding = new AbstractOrExternalFieldEncoding(
138-
fileUri, charOffset, charEndOffset, getterReference, setterReference,
137+
assert(lateIsSetGetterReference == null);
138+
assert(lateIsSetSetterReference == null);
139+
assert(lateGetterReference == null);
140+
assert(lateSetterReference == null);
141+
_fieldEncoding = new AbstractOrExternalFieldEncoding(fileUri, charOffset,
142+
charEndOffset, fieldGetterReference, fieldSetterReference,
139143
isAbstract: isAbstract,
140144
isExternal: isExternal,
141145
isFinal: isFinal,
@@ -157,8 +161,8 @@ class SourceFieldBuilder extends MemberBuilderImpl implements FieldBuilder {
157161
fieldSetterReference,
158162
lateIsSetGetterReference,
159163
lateIsSetSetterReference,
160-
getterReference,
161-
setterReference,
164+
lateGetterReference,
165+
lateSetterReference,
162166
isCovariant,
163167
isSetStrategy);
164168
} else {
@@ -171,8 +175,8 @@ class SourceFieldBuilder extends MemberBuilderImpl implements FieldBuilder {
171175
fieldSetterReference,
172176
lateIsSetGetterReference,
173177
lateIsSetSetterReference,
174-
getterReference,
175-
setterReference,
178+
lateGetterReference,
179+
lateSetterReference,
176180
isCovariant,
177181
isSetStrategy);
178182
}
@@ -187,8 +191,8 @@ class SourceFieldBuilder extends MemberBuilderImpl implements FieldBuilder {
187191
fieldSetterReference,
188192
lateIsSetGetterReference,
189193
lateIsSetSetterReference,
190-
getterReference,
191-
setterReference,
194+
lateGetterReference,
195+
lateSetterReference,
192196
isCovariant,
193197
isSetStrategy);
194198
} else {
@@ -201,8 +205,8 @@ class SourceFieldBuilder extends MemberBuilderImpl implements FieldBuilder {
201205
fieldSetterReference,
202206
lateIsSetGetterReference,
203207
lateIsSetSetterReference,
204-
getterReference,
205-
setterReference,
208+
lateGetterReference,
209+
lateSetterReference,
206210
isCovariant,
207211
isSetStrategy);
208212
}
@@ -222,8 +226,8 @@ class SourceFieldBuilder extends MemberBuilderImpl implements FieldBuilder {
222226
fieldSetterReference,
223227
lateIsSetGetterReference,
224228
lateIsSetSetterReference,
225-
getterReference,
226-
setterReference,
229+
lateGetterReference,
230+
lateSetterReference,
227231
isCovariant,
228232
isSetStrategy);
229233
} else {
@@ -236,16 +240,16 @@ class SourceFieldBuilder extends MemberBuilderImpl implements FieldBuilder {
236240
fieldSetterReference,
237241
lateIsSetGetterReference,
238242
lateIsSetSetterReference,
239-
getterReference,
240-
setterReference,
243+
lateGetterReference,
244+
lateSetterReference,
241245
isCovariant,
242246
isSetStrategy);
243247
}
244248
} else {
245249
assert(lateIsSetGetterReference == null);
246250
assert(lateIsSetSetterReference == null);
247-
assert(getterReference == null);
248-
assert(setterReference == null);
251+
assert(lateGetterReference == null);
252+
assert(lateSetterReference == null);
249253
_fieldEncoding = new RegularFieldEncoding(
250254
fileUri, charOffset, charEndOffset,
251255
isFinal: isFinal,
@@ -838,8 +842,8 @@ abstract class AbstractLateFieldEncoding implements FieldEncoding {
838842
Reference fieldSetterReference,
839843
Reference lateIsSetGetterReference,
840844
Reference lateIsSetSetterReference,
841-
Reference getterReference,
842-
Reference setterReference,
845+
Reference lateGetterReference,
846+
Reference lateSetterReference,
843847
bool isCovariant,
844848
late_lowering.IsSetStrategy isSetStrategy)
845849
: fileOffset = charOffset,
@@ -879,11 +883,11 @@ abstract class AbstractLateFieldEncoding implements FieldEncoding {
879883
..fileOffset = charOffset
880884
..fileEndOffset = charEndOffset,
881885
fileUri: fileUri,
882-
reference: getterReference)
886+
reference: lateGetterReference)
883887
..fileOffset = charOffset
884888
..fileEndOffset = charEndOffset
885889
..isNonNullableByDefault = true;
886-
_lateSetter = _createSetter(name, fileUri, charOffset, setterReference,
890+
_lateSetter = _createSetter(name, fileUri, charOffset, lateSetterReference,
887891
isCovariant: isCovariant);
888892
}
889893

@@ -1251,8 +1255,8 @@ class LateFieldWithoutInitializerEncoding extends AbstractLateFieldEncoding
12511255
Reference fieldSetterReference,
12521256
Reference lateIsSetGetterReference,
12531257
Reference lateIsSetSetterReference,
1254-
Reference getterReference,
1255-
Reference setterReference,
1258+
Reference lateGetterReference,
1259+
Reference lateSetterReference,
12561260
bool isCovariant,
12571261
late_lowering.IsSetStrategy isSetStrategy)
12581262
: super(
@@ -1264,8 +1268,8 @@ class LateFieldWithoutInitializerEncoding extends AbstractLateFieldEncoding
12641268
fieldSetterReference,
12651269
lateIsSetGetterReference,
12661270
lateIsSetSetterReference,
1267-
getterReference,
1268-
setterReference,
1271+
lateGetterReference,
1272+
lateSetterReference,
12691273
isCovariant,
12701274
isSetStrategy);
12711275
}
@@ -1281,8 +1285,8 @@ class LateFieldWithInitializerEncoding extends AbstractLateFieldEncoding
12811285
Reference fieldSetterReference,
12821286
Reference lateIsSetGetterReference,
12831287
Reference lateIsSetSetterReference,
1284-
Reference getterReference,
1285-
Reference setterReference,
1288+
Reference lateGetterReference,
1289+
Reference lateSetterReference,
12861290
bool isCovariant,
12871291
late_lowering.IsSetStrategy isSetStrategy)
12881292
: super(
@@ -1294,8 +1298,8 @@ class LateFieldWithInitializerEncoding extends AbstractLateFieldEncoding
12941298
fieldSetterReference,
12951299
lateIsSetGetterReference,
12961300
lateIsSetSetterReference,
1297-
getterReference,
1298-
setterReference,
1301+
lateGetterReference,
1302+
lateSetterReference,
12991303
isCovariant,
13001304
isSetStrategy);
13011305

@@ -1326,8 +1330,8 @@ class LateFinalFieldWithoutInitializerEncoding extends AbstractLateFieldEncoding
13261330
Reference fieldSetterReference,
13271331
Reference lateIsSetGetterReference,
13281332
Reference lateIsSetSetterReference,
1329-
Reference getterReference,
1330-
Reference setterReference,
1333+
Reference lateGetterReference,
1334+
Reference lateSetterReference,
13311335
bool isCovariant,
13321336
late_lowering.IsSetStrategy isSetStrategy)
13331337
: super(
@@ -1339,8 +1343,8 @@ class LateFinalFieldWithoutInitializerEncoding extends AbstractLateFieldEncoding
13391343
fieldSetterReference,
13401344
lateIsSetGetterReference,
13411345
lateIsSetSetterReference,
1342-
getterReference,
1343-
setterReference,
1346+
lateGetterReference,
1347+
lateSetterReference,
13441348
isCovariant,
13451349
isSetStrategy);
13461350

@@ -1372,8 +1376,8 @@ class LateFinalFieldWithInitializerEncoding extends AbstractLateFieldEncoding {
13721376
Reference fieldSetterReference,
13731377
Reference lateIsSetGetterReference,
13741378
Reference lateIsSetSetterReference,
1375-
Reference getterReference,
1376-
Reference setterReference,
1379+
Reference lateGetterReference,
1380+
Reference lateSetterReference,
13771381
bool isCovariant,
13781382
late_lowering.IsSetStrategy isSetStrategy)
13791383
: super(
@@ -1385,8 +1389,8 @@ class LateFinalFieldWithInitializerEncoding extends AbstractLateFieldEncoding {
13851389
fieldSetterReference,
13861390
lateIsSetGetterReference,
13871391
lateIsSetSetterReference,
1388-
getterReference,
1389-
setterReference,
1392+
lateGetterReference,
1393+
lateSetterReference,
13901394
isCovariant,
13911395
isSetStrategy);
13921396
@override

pkg/front_end/lib/src/fasta/incremental_compiler.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,8 +1047,8 @@ class IncrementalCompiler implements IncrementalKernelGenerator {
10471047
.isNonNullableByDefault /* depends on language version etc */,
10481048
enableTripleShift:
10491049
/* should this be on the library? */
1050-
/* this is what the constant evaluator does */
1051-
userCode
1050+
/* this is effectively what the constant evaluator does */
1051+
context.options
10521052
.isExperimentEnabledGlobally(ExperimentalFlag.tripleShift));
10531053
String before = textualOutline(previousSource, scannerConfiguration,
10541054
performModelling: true);

pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,8 @@ abstract class CombinedMemberSignatureBase<T> {
335335
assert(
336336
_combinedMemberSignatureType != null,
337337
"No combined member signature found for "
338-
"${_mutualSubtypes.values.map((int i) => getMemberType(i))}");
338+
"${_mutualSubtypes.values.map((int i) => getMemberType(i))} "
339+
"for members ${members}");
339340
}
340341
}
341342
_neededNnbdTopMerge =

pkg/front_end/lib/src/fasta/source/source_library_builder.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2141,8 +2141,8 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
21412141
Reference fieldSetterReference;
21422142
Reference lateIsSetGetterReference;
21432143
Reference lateIsSetSetterReference;
2144-
Reference getterReference;
2145-
Reference setterReference;
2144+
Reference lateGetterReference;
2145+
Reference lateSetterReference;
21462146
if (referencesFrom != null) {
21472147
String nameToLookup = SourceFieldBuilder.createFieldName(
21482148
FieldNameType.Field, name,
@@ -2172,15 +2172,15 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
21722172
indexedContainer.lookupGetterReference(lateIsSetNameName);
21732173
lateIsSetSetterReference =
21742174
indexedContainer.lookupSetterReference(lateIsSetNameName);
2175-
getterReference = indexedContainer.lookupGetterReference(new Name(
2175+
lateGetterReference = indexedContainer.lookupGetterReference(new Name(
21762176
SourceFieldBuilder.createFieldName(FieldNameType.Getter, name,
21772177
isInstanceMember: isInstanceMember,
21782178
className: className,
21792179
isExtensionMethod: isExtension,
21802180
extensionName: extensionName,
21812181
isSynthesized: fieldIsLateWithLowering),
21822182
indexedContainer.library));
2183-
setterReference = indexedContainer.lookupSetterReference(new Name(
2183+
lateSetterReference = indexedContainer.lookupSetterReference(new Name(
21842184
SourceFieldBuilder.createFieldName(FieldNameType.Setter, name,
21852185
isInstanceMember: isInstanceMember,
21862186
className: className,
@@ -2197,8 +2197,8 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
21972197
fieldSetterReference: fieldSetterReference,
21982198
lateIsSetGetterReference: lateIsSetGetterReference,
21992199
lateIsSetSetterReference: lateIsSetSetterReference,
2200-
getterReference: getterReference,
2201-
setterReference: setterReference);
2200+
lateGetterReference: lateGetterReference,
2201+
lateSetterReference: lateSetterReference);
22022202
fieldBuilder.constInitializerToken = constInitializerToken;
22032203
addBuilder(name, fieldBuilder, charOffset,
22042204
getterReference: fieldGetterReference,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright (c) 2021, 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+
class A {
6+
void method1(C c) {}
7+
void method2(int a, int b) {}
8+
}
9+
10+
class B {
11+
void method1(Unresolved c) {}
12+
void method2(int a) {}
13+
}
14+
15+
class C {}
16+
17+
abstract class D implements A, B {}
18+
19+
main() {}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
library /*isNonNullableByDefault*/;
2+
//
3+
// Problems in library:
4+
//
5+
// pkg/front_end/testcases/nnbd/invalid_combined_member_signature.dart:11:16: Error: Type 'Unresolved' not found.
6+
// void method1(Unresolved c) {}
7+
// ^^^^^^^^^^
8+
//
9+
// pkg/front_end/testcases/nnbd/invalid_combined_member_signature.dart:17:16: Error: Class 'D' inherits multiple members named 'method2' with incompatible signatures.
10+
// Try adding a declaration of 'method2' to 'D'.
11+
// abstract class D implements A, B {}
12+
// ^
13+
// pkg/front_end/testcases/nnbd/invalid_combined_member_signature.dart:7:8: Context: This is one of the overridden members.
14+
// void method2(int a, int b) {}
15+
// ^^^^^^^
16+
// pkg/front_end/testcases/nnbd/invalid_combined_member_signature.dart:12:8: Context: This is one of the overridden members.
17+
// void method2(int a) {}
18+
// ^^^^^^^
19+
//
20+
// pkg/front_end/testcases/nnbd/invalid_combined_member_signature.dart:11:16: Error: 'Unresolved' isn't a type.
21+
// void method1(Unresolved c) {}
22+
// ^^^^^^^^^^
23+
//
24+
import self as self;
25+
import "dart:core" as core;
26+
27+
class A extends core::Object {
28+
synthetic constructor •() → self::A
29+
: super core::Object::•()
30+
;
31+
method method1(self::C c) → void {}
32+
method method2(core::int a, core::int b) → void {}
33+
}
34+
class B extends core::Object {
35+
synthetic constructor •() → self::B
36+
: super core::Object::•()
37+
;
38+
method method1(invalid-type c) → void {}
39+
method method2(core::int a) → void {}
40+
}
41+
class C extends core::Object {
42+
synthetic constructor •() → self::C
43+
: super core::Object::•()
44+
;
45+
}
46+
abstract class D extends core::Object implements self::A, self::B {
47+
synthetic constructor •() → self::D
48+
: super core::Object::•()
49+
;
50+
abstract member-signature method method1(invalid-type c) → void; -> self::A::method1
51+
}
52+
static method main() → dynamic {}

0 commit comments

Comments
 (0)