| OLD | NEW |
| 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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
| 4 | 4 |
| 5 import 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; |
| 6 import 'package:kernel/frontend/accessors.dart' | 6 import 'package:kernel/frontend/accessors.dart' |
| 7 show | 7 show |
| 8 Accessor, | 8 Accessor, |
| 9 IndexAccessor, | 9 IndexAccessor, |
| 10 NullAwarePropertyAccessor, | 10 NullAwarePropertyAccessor, |
| (...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1238 InterfaceType type, | 1238 InterfaceType type, |
| 1239 NodeList arguments, | 1239 NodeList arguments, |
| 1240 CallStructure callStructure, | 1240 CallStructure callStructure, |
| 1241 _) { | 1241 _) { |
| 1242 return new ir.InvalidExpression(); | 1242 return new ir.InvalidExpression(); |
| 1243 } | 1243 } |
| 1244 | 1244 |
| 1245 @override | 1245 @override |
| 1246 ir.PropertyGet visitDynamicPropertyGet( | 1246 ir.PropertyGet visitDynamicPropertyGet( |
| 1247 Send node, Node receiver, Name name, _) { | 1247 Send node, Node receiver, Name name, _) { |
| 1248 return new ir.PropertyGet(visitForValue(receiver), nameToIrName(name)); | 1248 return associateNode( |
| 1249 new ir.PropertyGet(visitForValue(receiver), nameToIrName(name)), node); |
| 1249 } | 1250 } |
| 1250 | 1251 |
| 1251 @override | 1252 @override |
| 1252 ir.MethodInvocation visitDynamicPropertyInvoke( | 1253 ir.MethodInvocation visitDynamicPropertyInvoke( |
| 1253 Send node, Node receiver, NodeList arguments, Selector selector, _) { | 1254 Send node, Node receiver, NodeList arguments, Selector selector, _) { |
| 1254 return buildInvokeSelector( | 1255 return associateNode( |
| 1255 visitForValue(receiver), selector, buildArguments(arguments)); | 1256 buildInvokeSelector( |
| 1257 visitForValue(receiver), selector, buildArguments(arguments)), |
| 1258 node); |
| 1256 } | 1259 } |
| 1257 | 1260 |
| 1258 @override | 1261 @override |
| 1259 ir.Expression handleDynamicCompounds( | 1262 ir.Expression handleDynamicCompounds( |
| 1260 Send node, Node receiver, Name name, CompoundRhs rhs, _) { | 1263 Send node, Node receiver, Name name, CompoundRhs rhs, _) { |
| 1261 ir.Expression receiverNode = | 1264 ir.Expression receiverNode = |
| 1262 receiver == null ? new ir.ThisExpression() : visitForValue(receiver); | 1265 receiver == null ? new ir.ThisExpression() : visitForValue(receiver); |
| 1263 return buildCompound( | 1266 ir.Expression compound = buildCompound( |
| 1264 PropertyAccessor.make(receiverNode, nameToIrName(name), null, null), | 1267 PropertyAccessor.make(receiverNode, nameToIrName(name), null, null), |
| 1265 rhs); | 1268 rhs); |
| 1269 if (compound is ir.VariableSet) { |
| 1270 associateNode(compound.value, node); |
| 1271 } else { |
| 1272 associateNode(compound, node); |
| 1273 } |
| 1274 return compound; |
| 1266 } | 1275 } |
| 1267 | 1276 |
| 1268 @override | 1277 @override |
| 1269 ir.PropertySet visitDynamicPropertySet( | 1278 ir.PropertySet visitDynamicPropertySet( |
| 1270 SendSet node, Node receiver, Name name, Node rhs, _) { | 1279 SendSet node, Node receiver, Name name, Node rhs, _) { |
| 1271 ir.Expression value = visitForValue(rhs); | 1280 ir.Expression value = visitForValue(rhs); |
| 1272 return new ir.PropertySet( | 1281 return new ir.PropertySet( |
| 1273 visitForValue(receiver), nameToIrName(name), value); | 1282 visitForValue(receiver), nameToIrName(name), value); |
| 1274 } | 1283 } |
| 1275 | 1284 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1307 } | 1316 } |
| 1308 | 1317 |
| 1309 ir.MethodInvocation buildBinaryOperator( | 1318 ir.MethodInvocation buildBinaryOperator( |
| 1310 Node left, String operator, Node right) { | 1319 Node left, String operator, Node right) { |
| 1311 ir.Name name = kernel.irName(operator, currentElement); | 1320 ir.Name name = kernel.irName(operator, currentElement); |
| 1312 return makeBinary(visitForValue(left), name, null, visitForValue(right)); | 1321 return makeBinary(visitForValue(left), name, null, visitForValue(right)); |
| 1313 } | 1322 } |
| 1314 | 1323 |
| 1315 @override | 1324 @override |
| 1316 ir.MethodInvocation visitEquals(Send node, Node left, Node right, _) { | 1325 ir.MethodInvocation visitEquals(Send node, Node left, Node right, _) { |
| 1317 return buildBinaryOperator(left, '==', right); | 1326 return associateNode(buildBinaryOperator(left, '==', right), node); |
| 1318 } | 1327 } |
| 1319 | 1328 |
| 1320 @override | 1329 @override |
| 1321 ir.MethodInvocation visitExpressionInvoke(Send node, Node expression, | 1330 ir.MethodInvocation visitExpressionInvoke(Send node, Node expression, |
| 1322 NodeList arguments, CallStructure callStructure, _) { | 1331 NodeList arguments, CallStructure callStructure, _) { |
| 1323 return buildCall(visitForValue(expression), callStructure, arguments); | 1332 return associateNode( |
| 1333 buildCall(visitForValue(expression), callStructure, arguments), node); |
| 1324 } | 1334 } |
| 1325 | 1335 |
| 1326 @override | 1336 @override |
| 1327 IrFunction visitFactoryConstructorDeclaration(FunctionExpression node, | 1337 IrFunction visitFactoryConstructorDeclaration(FunctionExpression node, |
| 1328 ConstructorElement constructor, NodeList parameters, Node body, _) { | 1338 ConstructorElement constructor, NodeList parameters, Node body, _) { |
| 1329 return buildIrFunction(ir.ProcedureKind.Factory, constructor, body); | 1339 return buildIrFunction(ir.ProcedureKind.Factory, constructor, body); |
| 1330 } | 1340 } |
| 1331 | 1341 |
| 1332 @override | 1342 @override |
| 1333 ir.InvocationExpression visitFactoryConstructorInvoke( | 1343 ir.InvocationExpression visitFactoryConstructorInvoke( |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1549 kernel.functionToIr(superConstructor), new ir.Arguments.empty()); | 1559 kernel.functionToIr(superConstructor), new ir.Arguments.empty()); |
| 1550 } | 1560 } |
| 1551 | 1561 |
| 1552 Accessor buildIndexAccessor(Node receiver, Node index) { | 1562 Accessor buildIndexAccessor(Node receiver, Node index) { |
| 1553 return IndexAccessor.make( | 1563 return IndexAccessor.make( |
| 1554 visitForValue(receiver), visitForValue(index), null, null); | 1564 visitForValue(receiver), visitForValue(index), null, null); |
| 1555 } | 1565 } |
| 1556 | 1566 |
| 1557 @override | 1567 @override |
| 1558 ir.Expression visitIndex(Send node, Node receiver, Node index, _) { | 1568 ir.Expression visitIndex(Send node, Node receiver, Node index, _) { |
| 1559 return buildIndexAccessor(receiver, index).buildSimpleRead(); | 1569 return associateNode( |
| 1570 buildIndexAccessor(receiver, index).buildSimpleRead(), node); |
| 1560 } | 1571 } |
| 1561 | 1572 |
| 1562 ir.Expression buildIndexPostfix(Accessor accessor, IncDecOperator operator) { | 1573 ir.Expression buildIndexPostfix(Accessor accessor, IncDecOperator operator) { |
| 1563 ir.Name name = kernel.irName(operator.selectorName, currentElement); | 1574 ir.Name name = kernel.irName(operator.selectorName, currentElement); |
| 1564 return accessor.buildPostfixIncrement(name, voidContext: isVoidContext); | 1575 return accessor.buildPostfixIncrement(name, voidContext: isVoidContext); |
| 1565 } | 1576 } |
| 1566 | 1577 |
| 1567 @override | 1578 @override |
| 1568 ir.Expression visitIndexPostfix( | 1579 ir.Expression visitIndexPostfix( |
| 1569 Send node, Node receiver, Node index, IncDecOperator operator, _) { | 1580 Send node, Node receiver, Node index, IncDecOperator operator, _) { |
| 1570 return buildIndexPostfix(buildIndexAccessor(receiver, index), operator); | 1581 return buildIndexPostfix(buildIndexAccessor(receiver, index), operator); |
| 1571 } | 1582 } |
| 1572 | 1583 |
| 1573 ir.Expression buildIndexPrefix(Accessor accessor, IncDecOperator operator) { | 1584 ir.Expression buildIndexPrefix(Accessor accessor, IncDecOperator operator) { |
| 1574 ir.Name name = kernel.irName(operator.selectorName, currentElement); | 1585 ir.Name name = kernel.irName(operator.selectorName, currentElement); |
| 1575 return accessor.buildPrefixIncrement(name, voidContext: isVoidContext); | 1586 return accessor.buildPrefixIncrement(name, voidContext: isVoidContext); |
| 1576 } | 1587 } |
| 1577 | 1588 |
| 1578 @override | 1589 @override |
| 1579 ir.Expression visitIndexPrefix( | 1590 ir.Expression visitIndexPrefix( |
| 1580 Send node, Node receiver, Node index, IncDecOperator operator, _) { | 1591 Send node, Node receiver, Node index, IncDecOperator operator, _) { |
| 1581 return buildIndexPrefix(buildIndexAccessor(receiver, index), operator); | 1592 return buildIndexPrefix(buildIndexAccessor(receiver, index), operator); |
| 1582 } | 1593 } |
| 1583 | 1594 |
| 1584 @override | 1595 @override |
| 1585 ir.Expression visitIndexSet( | 1596 ir.Expression visitIndexSet( |
| 1586 SendSet node, Node receiver, Node index, Node rhs, _) { | 1597 SendSet node, Node receiver, Node index, Node rhs, _) { |
| 1587 return buildIndexAccessor(receiver, index) | 1598 return associateNode( |
| 1588 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); | 1599 buildIndexAccessor(receiver, index) |
| 1600 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext), |
| 1601 node); |
| 1589 } | 1602 } |
| 1590 | 1603 |
| 1591 ir.Initializer buildInitializingFormal(InitializingFormalElement parameter) { | 1604 ir.Initializer buildInitializingFormal(InitializingFormalElement parameter) { |
| 1592 FieldElement field = parameter.fieldElement; | 1605 FieldElement field = parameter.fieldElement; |
| 1593 if (kernel.isSyntheticError(field)) { | 1606 if (kernel.isSyntheticError(field)) { |
| 1594 return new ir.InvalidInitializer(); | 1607 return new ir.InvalidInitializer(); |
| 1595 } else { | 1608 } else { |
| 1596 return new ir.FieldInitializer( | 1609 return new ir.FieldInitializer( |
| 1597 kernel.fieldToIr(field), buildLocalGet(parameter)); | 1610 kernel.fieldToIr(field), buildLocalGet(parameter)); |
| 1598 } | 1611 } |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1704 case CompoundKind.ASSIGNMENT: | 1717 case CompoundKind.ASSIGNMENT: |
| 1705 return accessor.buildCompoundAssignment(name, visitForValue(rhs.rhs), | 1718 return accessor.buildCompoundAssignment(name, visitForValue(rhs.rhs), |
| 1706 voidContext: isVoidContext); | 1719 voidContext: isVoidContext); |
| 1707 } | 1720 } |
| 1708 } | 1721 } |
| 1709 | 1722 |
| 1710 @override | 1723 @override |
| 1711 ir.Expression handleLocalCompounds( | 1724 ir.Expression handleLocalCompounds( |
| 1712 SendSet node, LocalElement local, CompoundRhs rhs, _, | 1725 SendSet node, LocalElement local, CompoundRhs rhs, _, |
| 1713 {bool isSetterValid}) { | 1726 {bool isSetterValid}) { |
| 1714 return buildCompound(new VariableAccessor(getLocal(local)), rhs); | 1727 ir.Expression compound = |
| 1728 buildCompound(new VariableAccessor(getLocal(local)), rhs); |
| 1729 if (compound is ir.VariableSet) { |
| 1730 associateNode(compound.value, node); |
| 1731 } else { |
| 1732 associateNode(compound, node); |
| 1733 } |
| 1734 return compound; |
| 1715 } | 1735 } |
| 1716 | 1736 |
| 1717 @override | 1737 @override |
| 1718 ir.VariableSet handleLocalSet( | 1738 ir.VariableSet handleLocalSet( |
| 1719 SendSet node, LocalElement element, Node rhs, _) { | 1739 SendSet node, LocalElement element, Node rhs, _) { |
| 1720 return new ir.VariableSet(getLocal(element), visitForValue(rhs)); | 1740 return new ir.VariableSet(getLocal(element), visitForValue(rhs)); |
| 1721 } | 1741 } |
| 1722 | 1742 |
| 1723 @override | 1743 @override |
| 1724 ir.VariableSet handleImmutableLocalSet( | 1744 ir.VariableSet handleImmutableLocalSet( |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1754 return internalError(node, "NamedParameterDeclaration"); | 1774 return internalError(node, "NamedParameterDeclaration"); |
| 1755 } | 1775 } |
| 1756 | 1776 |
| 1757 @override | 1777 @override |
| 1758 ir.Not visitNot(Send node, Node expression, _) { | 1778 ir.Not visitNot(Send node, Node expression, _) { |
| 1759 return new ir.Not(visitForValue(expression)); | 1779 return new ir.Not(visitForValue(expression)); |
| 1760 } | 1780 } |
| 1761 | 1781 |
| 1762 @override | 1782 @override |
| 1763 ir.Not visitNotEquals(Send node, Node left, Node right, _) { | 1783 ir.Not visitNotEquals(Send node, Node left, Node right, _) { |
| 1764 return new ir.Not(buildBinaryOperator(left, '==', right)); | 1784 return associateNode( |
| 1785 new ir.Not(associateNode(buildBinaryOperator(left, '==', right), node)), |
| 1786 node); |
| 1765 } | 1787 } |
| 1766 | 1788 |
| 1767 @override | 1789 @override |
| 1768 ir.Initializer visitOptionalInitializingFormalDeclaration( | 1790 ir.Initializer visitOptionalInitializingFormalDeclaration( |
| 1769 VariableDefinitions node, | 1791 VariableDefinitions node, |
| 1770 Node definition, | 1792 Node definition, |
| 1771 InitializingFormalElement parameter, | 1793 InitializingFormalElement parameter, |
| 1772 ConstantExpression defaultValue, | 1794 ConstantExpression defaultValue, |
| 1773 int index, | 1795 int index, |
| 1774 _) { | 1796 _) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1790 @override | 1812 @override |
| 1791 visitParameterDeclaration(VariableDefinitions node, Node definition, | 1813 visitParameterDeclaration(VariableDefinitions node, Node definition, |
| 1792 ParameterElement parameter, int index, _) { | 1814 ParameterElement parameter, int index, _) { |
| 1793 // Shouldn't be called, we handle parameters via [FunctionSignture]. | 1815 // Shouldn't be called, we handle parameters via [FunctionSignture]. |
| 1794 return internalError(node, "ParameterDeclaration"); | 1816 return internalError(node, "ParameterDeclaration"); |
| 1795 } | 1817 } |
| 1796 | 1818 |
| 1797 @override | 1819 @override |
| 1798 ir.MethodInvocation handleLocalInvoke(Send node, LocalElement element, | 1820 ir.MethodInvocation handleLocalInvoke(Send node, LocalElement element, |
| 1799 NodeList arguments, CallStructure callStructure, _) { | 1821 NodeList arguments, CallStructure callStructure, _) { |
| 1800 return buildCall(buildLocalGet(element), callStructure, arguments); | 1822 return associateNode( |
| 1823 buildCall(buildLocalGet(element), callStructure, arguments), node); |
| 1801 } | 1824 } |
| 1802 | 1825 |
| 1803 @override | 1826 @override |
| 1804 ir.Expression handleLocalSetIfNulls( | 1827 ir.Expression handleLocalSetIfNulls( |
| 1805 SendSet node, LocalElement local, Node rhs, _, | 1828 SendSet node, LocalElement local, Node rhs, _, |
| 1806 {bool isSetterValid}) { | 1829 {bool isSetterValid}) { |
| 1807 return new VariableAccessor(getLocal(local)).buildNullAwareAssignment( | 1830 return new VariableAccessor(getLocal(local)).buildNullAwareAssignment( |
| 1808 visitForValue(rhs), | 1831 visitForValue(rhs), |
| 1809 voidContext: isVoidContext); | 1832 voidContext: isVoidContext); |
| 1810 } | 1833 } |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1892 } | 1915 } |
| 1893 | 1916 |
| 1894 @override | 1917 @override |
| 1895 ir.Expression handleStaticFieldGet(Send node, FieldElement field, _) { | 1918 ir.Expression handleStaticFieldGet(Send node, FieldElement field, _) { |
| 1896 return buildStaticGet(field); | 1919 return buildStaticGet(field); |
| 1897 } | 1920 } |
| 1898 | 1921 |
| 1899 @override | 1922 @override |
| 1900 ir.MethodInvocation handleStaticFieldInvoke(Send node, FieldElement field, | 1923 ir.MethodInvocation handleStaticFieldInvoke(Send node, FieldElement field, |
| 1901 NodeList arguments, CallStructure callStructure, _) { | 1924 NodeList arguments, CallStructure callStructure, _) { |
| 1902 return buildCall(buildStaticGet(field), callStructure, arguments); | 1925 return associateNode( |
| 1926 buildCall(buildStaticGet(field), callStructure, arguments), node); |
| 1903 } | 1927 } |
| 1904 | 1928 |
| 1905 @override | 1929 @override |
| 1906 ir.Expression handleStaticFieldSet( | 1930 ir.Expression handleStaticFieldSet( |
| 1907 SendSet node, FieldElement field, Node rhs, _) { | 1931 SendSet node, FieldElement field, Node rhs, _) { |
| 1908 return buildStaticFieldSet(field, rhs); | 1932 return buildStaticFieldSet(field, rhs); |
| 1909 } | 1933 } |
| 1910 | 1934 |
| 1911 @override | 1935 @override |
| 1912 ir.Expression handleStaticSetIfNulls( | 1936 ir.Expression handleStaticSetIfNulls( |
| (...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2384 return buildSuperMethodInvoke(method, arguments); | 2408 return buildSuperMethodInvoke(method, arguments); |
| 2385 } | 2409 } |
| 2386 | 2410 |
| 2387 @override | 2411 @override |
| 2388 ir.SuperMethodInvocation visitSuperMethodInvoke( | 2412 ir.SuperMethodInvocation visitSuperMethodInvoke( |
| 2389 Send node, | 2413 Send node, |
| 2390 MethodElement method, | 2414 MethodElement method, |
| 2391 NodeList arguments, | 2415 NodeList arguments, |
| 2392 CallStructure callStructure, | 2416 CallStructure callStructure, |
| 2393 _) { | 2417 _) { |
| 2394 return buildSuperMethodInvoke(method, arguments); | 2418 return associateNode(buildSuperMethodInvoke(method, arguments), node); |
| 2395 } | 2419 } |
| 2396 | 2420 |
| 2397 @override | 2421 @override |
| 2398 ir.Expression visitSuperMethodSet( | 2422 ir.Expression visitSuperMethodSet( |
| 2399 Send node, MethodElement method, Node rhs, _) { | 2423 Send node, MethodElement method, Node rhs, _) { |
| 2400 return buildSuperPropertyAccessor(method) | 2424 return buildSuperPropertyAccessor(method) |
| 2401 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); | 2425 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); |
| 2402 } | 2426 } |
| 2403 | 2427 |
| 2404 @override | 2428 @override |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2458 Send node, NodeList arguments, CallStructure callStructure, _) { | 2482 Send node, NodeList arguments, CallStructure callStructure, _) { |
| 2459 return buildCall(new ir.ThisExpression(), callStructure, arguments); | 2483 return buildCall(new ir.ThisExpression(), callStructure, arguments); |
| 2460 } | 2484 } |
| 2461 | 2485 |
| 2462 Accessor buildThisPropertyAccessor(Name name) { | 2486 Accessor buildThisPropertyAccessor(Name name) { |
| 2463 return new ThisPropertyAccessor(nameToIrName(name), null, null); | 2487 return new ThisPropertyAccessor(nameToIrName(name), null, null); |
| 2464 } | 2488 } |
| 2465 | 2489 |
| 2466 @override | 2490 @override |
| 2467 ir.Expression visitThisPropertyGet(Send node, Name name, _) { | 2491 ir.Expression visitThisPropertyGet(Send node, Name name, _) { |
| 2468 return buildThisPropertyAccessor(name).buildSimpleRead(); | 2492 return associateNode( |
| 2493 buildThisPropertyAccessor(name).buildSimpleRead(), node); |
| 2469 } | 2494 } |
| 2470 | 2495 |
| 2471 @override | 2496 @override |
| 2472 ir.MethodInvocation visitThisPropertyInvoke( | 2497 ir.MethodInvocation visitThisPropertyInvoke( |
| 2473 Send node, NodeList arguments, Selector selector, _) { | 2498 Send node, NodeList arguments, Selector selector, _) { |
| 2474 return buildInvokeSelector( | 2499 return associateNode( |
| 2475 new ir.ThisExpression(), selector, buildArguments(arguments)); | 2500 buildInvokeSelector( |
| 2501 new ir.ThisExpression(), selector, buildArguments(arguments)), |
| 2502 node); |
| 2476 } | 2503 } |
| 2477 | 2504 |
| 2478 @override | 2505 @override |
| 2479 ir.Expression visitThisPropertySet(SendSet node, Name name, Node rhs, _) { | 2506 ir.Expression visitThisPropertySet(SendSet node, Name name, Node rhs, _) { |
| 2480 return buildThisPropertyAccessor(name) | 2507 return buildThisPropertyAccessor(name) |
| 2481 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); | 2508 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); |
| 2482 } | 2509 } |
| 2483 | 2510 |
| 2484 @override | 2511 @override |
| 2485 ir.Expression visitTopLevelConstantDeclaration(VariableDefinitions node, | 2512 ir.Expression visitTopLevelConstantDeclaration(VariableDefinitions node, |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2583 @override | 2610 @override |
| 2584 ir.Expression handleTypeLiteralConstantSetIfNulls( | 2611 ir.Expression handleTypeLiteralConstantSetIfNulls( |
| 2585 SendSet node, ConstantExpression constant, Node rhs, _) { | 2612 SendSet node, ConstantExpression constant, Node rhs, _) { |
| 2586 // Degenerate case: ignores [rhs] as a type literal is never null. | 2613 // Degenerate case: ignores [rhs] as a type literal is never null. |
| 2587 return buildTypeLiteral(constant); | 2614 return buildTypeLiteral(constant); |
| 2588 } | 2615 } |
| 2589 | 2616 |
| 2590 @override | 2617 @override |
| 2591 ir.MethodInvocation visitUnary( | 2618 ir.MethodInvocation visitUnary( |
| 2592 Send node, UnaryOperator operator, Node expression, _) { | 2619 Send node, UnaryOperator operator, Node expression, _) { |
| 2593 return new ir.MethodInvocation( | 2620 return associateNode( |
| 2594 visitForValue(expression), | 2621 new ir.MethodInvocation( |
| 2595 kernel.irName(operator.selectorName, currentElement), | 2622 visitForValue(expression), |
| 2596 new ir.Arguments.empty()); | 2623 kernel.irName(operator.selectorName, currentElement), |
| 2624 new ir.Arguments.empty()), |
| 2625 node); |
| 2597 } | 2626 } |
| 2598 | 2627 |
| 2599 @override | 2628 @override |
| 2600 visitConditionalUri(ConditionalUri node) { | 2629 visitConditionalUri(ConditionalUri node) { |
| 2601 // Shouldn't be called, handled by library loader. | 2630 // Shouldn't be called, handled by library loader. |
| 2602 return internalError(node, "ConditionalUri"); | 2631 return internalError(node, "ConditionalUri"); |
| 2603 } | 2632 } |
| 2604 | 2633 |
| 2605 @override | 2634 @override |
| 2606 visitDottedName(DottedName node) { | 2635 visitDottedName(DottedName node) { |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2719 : this(null, true, node, initializers); | 2748 : this(null, true, node, initializers); |
| 2720 | 2749 |
| 2721 accept(ir.Visitor v) => throw "unsupported"; | 2750 accept(ir.Visitor v) => throw "unsupported"; |
| 2722 | 2751 |
| 2723 visitChildren(ir.Visitor v) => throw "unsupported"; | 2752 visitChildren(ir.Visitor v) => throw "unsupported"; |
| 2724 | 2753 |
| 2725 String toString() { | 2754 String toString() { |
| 2726 return "IrFunction($kind, $isConstructor, $node, $initializers)"; | 2755 return "IrFunction($kind, $isConstructor, $node, $initializers)"; |
| 2727 } | 2756 } |
| 2728 } | 2757 } |
| OLD | NEW |