Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart

Issue 2746013003: [fasta] Add and correct even more offsets (Closed)
Patch Set: Removed formalParametersToken parameter Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // Note: copied from package:kernel at revision 7346348. 5 // Note: copied from package:kernel at revision 7346348.
6 6
7 /// A library to help transform compounds and null-aware accessors into 7 /// A library to help transform compounds and null-aware accessors into
8 /// let expressions. 8 /// let expressions.
9 library kernel.frontend.accessors; 9 library kernel.frontend.accessors;
10 10
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 class PropertyAccessor extends Accessor { 140 class PropertyAccessor extends Accessor {
141 VariableDeclaration _receiverVariable; 141 VariableDeclaration _receiverVariable;
142 Expression receiver; 142 Expression receiver;
143 Name name; 143 Name name;
144 Member getter, setter; 144 Member getter, setter;
145 int charOffset; 145 int charOffset;
146 146
147 static Accessor make(Expression receiver, Name name, Member getter, 147 static Accessor make(Expression receiver, Name name, Member getter,
148 Member setter, int charOffset) { 148 Member setter, int charOffset) {
149 if (receiver is ThisExpression) { 149 if (receiver is ThisExpression) {
150 return new ThisPropertyAccessor(name, getter, setter); 150 return new ThisPropertyAccessor(name, getter, setter, charOffset);
151 } else { 151 } else {
152 return new PropertyAccessor.internal( 152 return new PropertyAccessor.internal(
153 receiver, name, getter, setter, charOffset); 153 receiver, name, getter, setter, charOffset);
154 } 154 }
155 } 155 }
156 156
157 PropertyAccessor.internal( 157 PropertyAccessor.internal(
158 this.receiver, this.name, this.getter, this.setter, this.charOffset); 158 this.receiver, this.name, this.getter, this.setter, this.charOffset);
159 159
160 _makeSimpleRead() => 160 _makeSimpleRead() =>
(...skipping 17 matching lines...) Expand all
178 } 178 }
179 179
180 _finish(Expression body) => makeLet(_receiverVariable, body); 180 _finish(Expression body) => makeLet(_receiverVariable, body);
181 } 181 }
182 182
183 /// Special case of [PropertyAccessor] to avoid creating an indirect access to 183 /// Special case of [PropertyAccessor] to avoid creating an indirect access to
184 /// 'this'. 184 /// 'this'.
185 class ThisPropertyAccessor extends Accessor { 185 class ThisPropertyAccessor extends Accessor {
186 Name name; 186 Name name;
187 Member getter, setter; 187 Member getter, setter;
188 final int charOffset;
188 189
189 ThisPropertyAccessor(this.name, this.getter, this.setter); 190 ThisPropertyAccessor(this.name, this.getter, this.setter, this.charOffset);
190 191
191 _makeRead() => new PropertyGet(new ThisExpression(), name, getter); 192 _makeRead() => new PropertyGet(new ThisExpression(), name, getter)
193 ..fileOffset = charOffset;
192 194
193 _makeWrite(Expression value, bool voidContext) { 195 _makeWrite(Expression value, bool voidContext) {
194 return new PropertySet(new ThisExpression(), name, value, setter); 196 return new PropertySet(new ThisExpression(), name, value, setter)
197 ..fileOffset = charOffset;
195 } 198 }
196 } 199 }
197 200
198 class NullAwarePropertyAccessor extends Accessor { 201 class NullAwarePropertyAccessor extends Accessor {
199 VariableDeclaration receiver; 202 VariableDeclaration receiver;
200 Name name; 203 Name name;
201 Member getter, setter; 204 Member getter, setter;
202 DartType type; 205 DartType type;
203 206
204 NullAwarePropertyAccessor( 207 NullAwarePropertyAccessor(
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 } 422 }
420 423
421 Expression _finish(Expression body) { 424 Expression _finish(Expression body) {
422 return makeLet(indexVariable, body); 425 return makeLet(indexVariable, body);
423 } 426 }
424 } 427 }
425 428
426 class StaticAccessor extends Accessor { 429 class StaticAccessor extends Accessor {
427 Member readTarget; 430 Member readTarget;
428 Member writeTarget; 431 Member writeTarget;
432 int charOffset;
429 433
430 StaticAccessor(this.readTarget, this.writeTarget); 434 StaticAccessor(this.readTarget, this.writeTarget, this.charOffset);
431 435
432 _makeRead() => 436 _makeRead() =>
433 readTarget == null ? makeInvalidRead() : new StaticGet(readTarget); 437 readTarget == null ? makeInvalidRead() : new StaticGet(readTarget)
438 ..fileOffset = charOffset;
434 439
435 _makeWrite(Expression value, bool voidContext) { 440 _makeWrite(Expression value, bool voidContext) {
436 return writeTarget == null 441 return writeTarget == null
437 ? makeInvalidWrite(value) 442 ? makeInvalidWrite(value)
438 : new StaticSet(writeTarget, value); 443 : new StaticSet(writeTarget, value)..fileOffset = charOffset;
439 } 444 }
440 } 445 }
441 446
442 class ReadOnlyAccessor extends Accessor { 447 class ReadOnlyAccessor extends Accessor {
443 Expression expression; 448 Expression expression;
444 VariableDeclaration value; 449 VariableDeclaration value;
445 450
446 ReadOnlyAccessor(this.expression); 451 ReadOnlyAccessor(this.expression);
447 452
448 _makeSimpleRead() => expression; 453 _makeSimpleRead() => expression;
(...skipping 29 matching lines...) Expand all
478 483
479 VariableDeclaration makeOrReuseVariable(Expression value) { 484 VariableDeclaration makeOrReuseVariable(Expression value) {
480 // TODO: Devise a way to remember if a variable declaration was reused 485 // TODO: Devise a way to remember if a variable declaration was reused
481 // or is fresh (hence needs a let binding). 486 // or is fresh (hence needs a let binding).
482 return new VariableDeclaration.forValue(value); 487 return new VariableDeclaration.forValue(value);
483 } 488 }
484 489
485 Expression wrapInvalid(Expression e) { 490 Expression wrapInvalid(Expression e) {
486 return new Let(new VariableDeclaration.forValue(e), new InvalidExpression()); 491 return new Let(new VariableDeclaration.forValue(e), new InvalidExpression());
487 } 492 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart ('k') | pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698