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

Side by Side Diff: pkg/kernel/lib/ast.dart

Issue 2530203003: Document that setter expressions return their right-hand side. (Closed)
Patch Set: Change "returns" to "evaluates to" Created 4 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 /// ----------------------------------------------------------------------- 5 /// -----------------------------------------------------------------------
6 /// ERROR HANDLING 6 /// ERROR HANDLING
7 /// ----------------------------------------------------------------------- 7 /// -----------------------------------------------------------------------
8 /// 8 ///
9 /// As a rule of thumb, errors that can be detected statically are handled by 9 /// As a rule of thumb, errors that can be detected statically are handled by
10 /// the frontend, typically by translating the erroneous code into a 'throw' or 10 /// the frontend, typically by translating the erroneous code into a 'throw' or
(...skipping 1288 matching lines...) Expand 10 before | Expand all | Expand 10 after
1299 } 1299 }
1300 1300
1301 transformChildren(Transformer v) { 1301 transformChildren(Transformer v) {
1302 if (promotedType != null) { 1302 if (promotedType != null) {
1303 promotedType = v.visitDartType(promotedType); 1303 promotedType = v.visitDartType(promotedType);
1304 } 1304 }
1305 } 1305 }
1306 } 1306 }
1307 1307
1308 /// Assign a local variable or function parameter. 1308 /// Assign a local variable or function parameter.
1309 ///
1310 /// Evaluates to the value of [value].
1309 class VariableSet extends Expression { 1311 class VariableSet extends Expression {
1310 VariableDeclaration variable; 1312 VariableDeclaration variable;
1311 Expression value; 1313 Expression value;
1312 1314
1313 VariableSet(this.variable, this.value) { 1315 VariableSet(this.variable, this.value) {
1314 value?.parent = this; 1316 value?.parent = this;
1315 } 1317 }
1316 1318
1317 DartType getStaticType(TypeEnvironment types) => value.getStaticType(types); 1319 DartType getStaticType(TypeEnvironment types) => value.getStaticType(types);
1318 1320
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1380 if (receiver != null) { 1382 if (receiver != null) {
1381 receiver = receiver.accept(v); 1383 receiver = receiver.accept(v);
1382 receiver?.parent = this; 1384 receiver?.parent = this;
1383 } 1385 }
1384 } 1386 }
1385 } 1387 }
1386 1388
1387 /// Expression of form `x.field = value`. 1389 /// Expression of form `x.field = value`.
1388 /// 1390 ///
1389 /// This may invoke a setter or assign a field. 1391 /// This may invoke a setter or assign a field.
1392 ///
1393 /// Evaluates to the value of [value].
1390 class PropertySet extends Expression { 1394 class PropertySet extends Expression {
1391 Expression receiver; 1395 Expression receiver;
1392 Name name; 1396 Name name;
1393 Expression value; 1397 Expression value;
1394 1398
1395 _MemberAccessor _interfaceTargetReference; 1399 _MemberAccessor _interfaceTargetReference;
1396 1400
1397 PropertySet(this.receiver, this.name, this.value, [Member interfaceTarget]) { 1401 PropertySet(this.receiver, this.name, this.value, [Member interfaceTarget]) {
1398 receiver?.parent = this; 1402 receiver?.parent = this;
1399 value?.parent = this; 1403 value?.parent = this;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1454 DartType getStaticType(TypeEnvironment types) { 1458 DartType getStaticType(TypeEnvironment types) {
1455 Class superclass = target.enclosingClass; 1459 Class superclass = target.enclosingClass;
1456 var receiverType = receiver.getStaticTypeAsInstanceOf(superclass, types); 1460 var receiverType = receiver.getStaticTypeAsInstanceOf(superclass, types);
1457 return Substitution 1461 return Substitution
1458 .fromInterfaceType(receiverType) 1462 .fromInterfaceType(receiverType)
1459 .substituteType(target.getterType); 1463 .substituteType(target.getterType);
1460 } 1464 }
1461 } 1465 }
1462 1466
1463 /// Directly assign a field, or call a setter. 1467 /// Directly assign a field, or call a setter.
1468 ///
1469 /// Evaluates to the value of [value].
1464 class DirectPropertySet extends Expression { 1470 class DirectPropertySet extends Expression {
1465 Expression receiver; 1471 Expression receiver;
1466 Member target; 1472 Member target;
1467 Expression value; 1473 Expression value;
1468 1474
1469 DirectPropertySet(this.receiver, this.target, this.value) { 1475 DirectPropertySet(this.receiver, this.target, this.value) {
1470 receiver?.parent = this; 1476 receiver?.parent = this;
1471 value?.parent = this; 1477 value?.parent = this;
1472 } 1478 }
1473 1479
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1573 visitChildren(Visitor v) { 1579 visitChildren(Visitor v) {
1574 name?.accept(v); 1580 name?.accept(v);
1575 } 1581 }
1576 1582
1577 transformChildren(Transformer v) {} 1583 transformChildren(Transformer v) {}
1578 } 1584 }
1579 1585
1580 /// Expression of form `super.field = value`. 1586 /// Expression of form `super.field = value`.
1581 /// 1587 ///
1582 /// This may invoke a setter or assign a field. 1588 /// This may invoke a setter or assign a field.
1589 ///
1590 /// Evaluates to the value of [value].
1583 class SuperPropertySet extends Expression { 1591 class SuperPropertySet extends Expression {
1584 Name name; 1592 Name name;
1585 Expression value; 1593 Expression value;
1586 _MemberAccessor _interfaceTargetReference; 1594 _MemberAccessor _interfaceTargetReference;
1587 1595
1588 SuperPropertySet(this.name, this.value, [Member interfaceTarget]) { 1596 SuperPropertySet(this.name, this.value, [Member interfaceTarget]) {
1589 value?.parent = this; 1597 value?.parent = this;
1590 _interfaceTargetReference = interfaceTarget?._setterInterface; 1598 _interfaceTargetReference = interfaceTarget?._setterInterface;
1591 } 1599 }
1592 1600
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1625 accept(ExpressionVisitor v) => v.visitStaticGet(this); 1633 accept(ExpressionVisitor v) => v.visitStaticGet(this);
1626 1634
1627 visitChildren(Visitor v) { 1635 visitChildren(Visitor v) {
1628 target?.acceptReference(v); 1636 target?.acceptReference(v);
1629 } 1637 }
1630 1638
1631 transformChildren(Transformer v) {} 1639 transformChildren(Transformer v) {}
1632 } 1640 }
1633 1641
1634 /// Assign a static field or call a static setter. 1642 /// Assign a static field or call a static setter.
1643 ///
1644 /// Evaluates to the value of [value].
1635 class StaticSet extends Expression { 1645 class StaticSet extends Expression {
1636 /// A mutable static field or a static setter. 1646 /// A mutable static field or a static setter.
1637 Member target; 1647 Member target;
1638 Expression value; 1648 Expression value;
1639 1649
1640 StaticSet(this.target, this.value) { 1650 StaticSet(this.target, this.value) {
1641 value?.parent = this; 1651 value?.parent = this;
1642 } 1652 }
1643 1653
1644 DartType getStaticType(TypeEnvironment types) => value.getStaticType(types); 1654 DartType getStaticType(TypeEnvironment types) => value.getStaticType(types);
(...skipping 1986 matching lines...) Expand 10 before | Expand all | Expand 10 after
3631 3641
3632 @override 3642 @override
3633 defaultTreeNode(TreeNode node) { 3643 defaultTreeNode(TreeNode node) {
3634 if (node == child) { 3644 if (node == child) {
3635 return replacement; 3645 return replacement;
3636 } else { 3646 } else {
3637 return node; 3647 return node;
3638 } 3648 }
3639 } 3649 }
3640 } 3650 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698