Skip to content

Commit c308c93

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Ensure Member.isInlineClassMember is set
TEST=existing Change-Id: I16fbeb0bbe431e3f85ed11c21e0506e6aa4abf58 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/302206 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Srujan Gaddam <srujzs@google.com>
1 parent aa51ed6 commit c308c93

File tree

1,290 files changed

+9155
-9046
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,290 files changed

+9155
-9046
lines changed

pkg/compiler/lib/src/kernel/transformations/late_lowering.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,11 @@ class LateLowering {
332332
fileUri: fileUri,
333333
fieldReference: field.fieldReference)
334334
..fileOffset = fileOffset
335-
..isNonNullableByDefault = true;
335+
..isNonNullableByDefault = true
336+
// TODO(fishythefish,srujzs,johnniwinther): Also mark the getter/setter
337+
// as extension/inline class members.
338+
..isExtensionMember = field.isExtensionMember
339+
..isInlineClassMember = field.isInlineClassMember;
336340
StaticGet fieldCellAccess() =>
337341
StaticGet(fieldCell)..fileOffset = fileOffset;
338342

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,6 +1100,7 @@ class SourceInlineClassConstructorBuilder
11001100
nameScheme
11011101
.getConstructorMemberName(name, isTearOff: true)
11021102
.attachMember(_constructorTearOff!);
1103+
_constructorTearOff!.isInlineClassMember = true;
11031104
}
11041105
}
11051106

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

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,10 @@ class RegularFieldEncoding implements FieldEncoding {
683683
_field
684684
..isStatic = true
685685
..isExtensionMember = true;
686+
} else if (fieldBuilder.isInlineClassMember) {
687+
_field
688+
..isStatic = fieldBuilder.isStatic
689+
..isInlineClassMember = true;
686690
} else {
687691
bool isInstanceMember =
688692
!fieldBuilder.isStatic && !fieldBuilder.isTopLevel;
@@ -1081,34 +1085,40 @@ abstract class AbstractLateFieldEncoding implements FieldEncoding {
10811085
@override
10821086
void build(
10831087
SourceLibraryBuilder libraryBuilder, SourceFieldBuilder fieldBuilder) {
1084-
bool isInstanceMember;
1088+
bool isInstanceMember = !fieldBuilder.isStatic && !fieldBuilder.isTopLevel;
10851089
bool isExtensionMember = fieldBuilder.isExtensionMember;
1090+
bool isInlineClassMember = fieldBuilder.isInlineClassMember;
10861091
if (isExtensionMember) {
10871092
_field
10881093
..isStatic = true
10891094
..isExtensionMember = isExtensionMember;
10901095
isInstanceMember = false;
1096+
} else if (isInlineClassMember) {
1097+
_field
1098+
..isStatic = fieldBuilder.isStatic
1099+
..isInlineClassMember = true;
10911100
} else {
1092-
isInstanceMember = !fieldBuilder.isStatic && !fieldBuilder.isTopLevel;
10931101
_field
10941102
..isStatic = !isInstanceMember
10951103
..isExtensionMember = false;
10961104
}
10971105
if (_lateIsSetField != null) {
10981106
_lateIsSetField!
10991107
..isStatic = !isInstanceMember
1100-
..isStatic = _field.isStatic
11011108
..isExtensionMember = isExtensionMember
1109+
..isInlineClassMember = isInlineClassMember
11021110
..type = libraryBuilder.loader
11031111
.createCoreType('bool', Nullability.nonNullable);
11041112
}
11051113
_lateGetter
11061114
..isStatic = !isInstanceMember
1107-
..isExtensionMember = isExtensionMember;
1115+
..isExtensionMember = isExtensionMember
1116+
..isInlineClassMember = isInlineClassMember;
11081117
if (_lateSetter != null) {
11091118
_lateSetter!
11101119
..isStatic = !isInstanceMember
1111-
..isExtensionMember = isExtensionMember;
1120+
..isExtensionMember = isExtensionMember
1121+
..isInlineClassMember = isInlineClassMember;
11121122
}
11131123
}
11141124

pkg/front_end/testcases/constructor_tearoffs/callable_instantiation.dart.strong.expect

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -302,17 +302,17 @@ Try changing the operand or remove the type arguments.
302302
f3<int>; // error
303303
^";
304304
}
305-
static method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306-
static method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
305+
static extension-member method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306+
static extension-member method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
307307
return <T extends core::Object? = dynamic>() → dynamic => self::Extension|call<T%>(#this);
308-
static method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
308+
static extension-member method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
309309
return <T extends core::Object? = dynamic>() → void {};
310-
static method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311-
static method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312-
static method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
310+
static extension-member method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311+
static extension-member method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312+
static extension-member method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
313313
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous1|call<T%>(#this);
314-
static method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315-
static method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
314+
static extension-member method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315+
static extension-member method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
316316
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous2|call<T%>(#this);
317317
static method main() → dynamic {
318318
self::method<self::Class, core::int>(new self::Class::•(), 0, new self::Class::•(), 0);

pkg/front_end/testcases/constructor_tearoffs/callable_instantiation.dart.strong.transformed.expect

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -302,17 +302,17 @@ Try changing the operand or remove the type arguments.
302302
f3<int>; // error
303303
^";
304304
}
305-
static method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306-
static method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
305+
static extension-member method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306+
static extension-member method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
307307
return <T extends core::Object? = dynamic>() → dynamic => self::Extension|call<T%>(#this);
308-
static method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
308+
static extension-member method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
309309
return <T extends core::Object? = dynamic>() → void {};
310-
static method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311-
static method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312-
static method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
310+
static extension-member method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311+
static extension-member method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312+
static extension-member method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
313313
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous1|call<T%>(#this);
314-
static method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315-
static method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
314+
static extension-member method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315+
static extension-member method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
316316
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous2|call<T%>(#this);
317317
static method main() → dynamic {
318318
self::method<self::Class, core::int>(new self::Class::•(), 0, new self::Class::•(), 0);

pkg/front_end/testcases/constructor_tearoffs/callable_instantiation.dart.weak.expect

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -302,17 +302,17 @@ Try changing the operand or remove the type arguments.
302302
f3<int>; // error
303303
^";
304304
}
305-
static method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306-
static method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
305+
static extension-member method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306+
static extension-member method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
307307
return <T extends core::Object? = dynamic>() → dynamic => self::Extension|call<T%>(#this);
308-
static method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
308+
static extension-member method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
309309
return <T extends core::Object? = dynamic>() → void {};
310-
static method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311-
static method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312-
static method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
310+
static extension-member method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311+
static extension-member method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312+
static extension-member method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
313313
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous1|call<T%>(#this);
314-
static method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315-
static method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
314+
static extension-member method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315+
static extension-member method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
316316
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous2|call<T%>(#this);
317317
static method main() → dynamic {
318318
self::method<self::Class, core::int>(new self::Class::•(), 0, new self::Class::•(), 0);

pkg/front_end/testcases/constructor_tearoffs/callable_instantiation.dart.weak.modular.expect

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -302,17 +302,17 @@ Try changing the operand or remove the type arguments.
302302
f3<int>; // error
303303
^";
304304
}
305-
static method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306-
static method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
305+
static extension-member method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306+
static extension-member method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
307307
return <T extends core::Object? = dynamic>() → dynamic => self::Extension|call<T%>(#this);
308-
static method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
308+
static extension-member method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
309309
return <T extends core::Object? = dynamic>() → void {};
310-
static method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311-
static method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312-
static method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
310+
static extension-member method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311+
static extension-member method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312+
static extension-member method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
313313
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous1|call<T%>(#this);
314-
static method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315-
static method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
314+
static extension-member method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315+
static extension-member method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
316316
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous2|call<T%>(#this);
317317
static method main() → dynamic {
318318
self::method<self::Class, core::int>(new self::Class::•(), 0, new self::Class::•(), 0);

pkg/front_end/testcases/constructor_tearoffs/callable_instantiation.dart.weak.outline.expect

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -126,21 +126,21 @@ static method method<T extends self::Class, S extends core::int>(self::Class c,
126126
;
127127
static method test<T extends self::Class?, S extends core::int>(self::Class? c1, self::GetterCall c2, core::int? i, self::test::T% t1, self::test::T? t2, self::test::S? s, <T extends core::Object? = dynamic>() →? void f1, Never n, dynamic d, core::String a, core::double b, core::bool c, FutureOr<self::Class>f2, core::Function f3) → dynamic
128128
;
129-
static method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic
129+
static extension-member method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic
130130
;
131-
static method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
131+
static extension-member method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
132132
return <T extends core::Object? = dynamic>() → dynamic => self::Extension|call<T%>(#this);
133-
static method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
133+
static extension-member method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
134134
;
135-
static method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void
135+
static extension-member method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void
136136
;
137-
static method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic
137+
static extension-member method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic
138138
;
139-
static method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
139+
static extension-member method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
140140
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous1|call<T%>(#this);
141-
static method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic
141+
static extension-member method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic
142142
;
143-
static method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
143+
static extension-member method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
144144
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous2|call<T%>(#this);
145145
static method main() → dynamic
146146
;

pkg/front_end/testcases/constructor_tearoffs/callable_instantiation.dart.weak.transformed.expect

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -302,17 +302,17 @@ Try changing the operand or remove the type arguments.
302302
f3<int>; // error
303303
^";
304304
}
305-
static method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306-
static method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
305+
static extension-member method Extension|call<T extends core::Object? = dynamic>(lowered final core::int #this) → dynamic {}
306+
static extension-member method Extension|get#call(lowered final core::int #this) → <T extends core::Object? = dynamic>() → dynamic
307307
return <T extends core::Object? = dynamic>() → dynamic => self::Extension|call<T%>(#this);
308-
static method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
308+
static extension-member method ExtensionGetter|get#call(lowered final core::double #this) → <T extends core::Object? = dynamic>() → void
309309
return <T extends core::Object? = dynamic>() → void {};
310-
static method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311-
static method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312-
static method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
310+
static extension-member method ExtensionSetter|set#call(lowered final core::bool #this, <T extends core::Object? = dynamic>() → void value) → void {}
311+
static extension-member method Ambiguous1|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
312+
static extension-member method Ambiguous1|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
313313
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous1|call<T%>(#this);
314-
static method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315-
static method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
314+
static extension-member method Ambiguous2|call<T extends core::Object? = dynamic>(lowered final core::String #this) → dynamic {}
315+
static extension-member method Ambiguous2|get#call(lowered final core::String #this) → <T extends core::Object? = dynamic>() → dynamic
316316
return <T extends core::Object? = dynamic>() → dynamic => self::Ambiguous2|call<T%>(#this);
317317
static method main() → dynamic {
318318
self::method<self::Class, core::int>(new self::Class::•(), 0, new self::Class::•(), 0);

0 commit comments

Comments
 (0)