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

Side by Side Diff: pkg/kernel/lib/frontend/accessors.dart

Issue 2767773004: Add Vector type to Kernel (Closed)
Patch Set: Add a note to return Run step in Closure Conversion test suite 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 /// A library to help transform compounds and null-aware accessors into 5 /// A library to help transform compounds and null-aware accessors into
6 /// let expressions. 6 /// let expressions.
7 library kernel.frontend.accessors; 7 library kernel.frontend.accessors;
8 8
9 import '../ast.dart'; 9 import '../ast.dart';
10 10
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 return builtGetter = new MethodInvocation(receiverAccess(), _indexGet, 248 return builtGetter = new MethodInvocation(receiverAccess(), _indexGet,
249 new Arguments(<Expression>[indexAccess()]), getter); 249 new Arguments(<Expression>[indexAccess()]), getter);
250 } 250 }
251 251
252 _makeWrite(Expression value, bool voidContext) { 252 _makeWrite(Expression value, bool voidContext) {
253 if (!voidContext) return _makeWriteAndReturn(value); 253 if (!voidContext) return _makeWriteAndReturn(value);
254 return new MethodInvocation(receiverAccess(), _indexSet, 254 return new MethodInvocation(receiverAccess(), _indexSet,
255 new Arguments(<Expression>[indexAccess(), value]), setter); 255 new Arguments(<Expression>[indexAccess(), value]), setter);
256 } 256 }
257 257
258 // TODO(dmitryas): remove this method after the "[]=" operator of the Context
259 // class is made to return a value.
258 _makeWriteAndReturn(Expression value) { 260 _makeWriteAndReturn(Expression value) {
259 // The call to []= does not return the value like direct-style assignments 261 // The call to []= does not return the value like direct-style assignments
260 // do. We need to bind the value in a let. 262 // do. We need to bind the value in a let.
261 var valueVariable = new VariableDeclaration.forValue(value); 263 var valueVariable = new VariableDeclaration.forValue(value);
262 var dummy = new VariableDeclaration.forValue(new MethodInvocation( 264 var dummy = new VariableDeclaration.forValue(new MethodInvocation(
263 receiverAccess(), 265 receiverAccess(),
264 _indexSet, 266 _indexSet,
265 new Arguments( 267 new Arguments(
266 <Expression>[indexAccess(), new VariableGet(valueVariable)]), 268 <Expression>[indexAccess(), new VariableGet(valueVariable)]),
267 setter)); 269 setter));
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 429
428 VariableDeclaration makeOrReuseVariable(Expression value) { 430 VariableDeclaration makeOrReuseVariable(Expression value) {
429 // TODO: Devise a way to remember if a variable declaration was reused 431 // TODO: Devise a way to remember if a variable declaration was reused
430 // or is fresh (hence needs a let binding). 432 // or is fresh (hence needs a let binding).
431 return new VariableDeclaration.forValue(value); 433 return new VariableDeclaration.forValue(value);
432 } 434 }
433 435
434 Expression wrapInvalid(Expression e) { 436 Expression wrapInvalid(Expression e) {
435 return new Let(new VariableDeclaration.forValue(e), new InvalidExpression()); 437 return new Let(new VariableDeclaration.forValue(e), new InvalidExpression());
436 } 438 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698