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

Side by Side Diff: dart/lib/compiler/implementation/elements/elements.dart

Issue 10892005: Revert "Support unary - operator." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | dart/lib/compiler/implementation/lib/interceptors.dart » ('j') | 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 #library('elements'); 5 #library('elements');
6 6
7 #import('dart:uri'); 7 #import('dart:uri');
8 8
9 #import('../tree/tree.dart'); 9 #import('../tree/tree.dart');
10 #import('../scanner/scannerlib.dart'); 10 #import('../scanner/scannerlib.dart');
(...skipping 1445 matching lines...) Expand 10 before | Expand all | Expand 10 after
1456 static SourceString constructConstructorName(SourceString receiver, 1456 static SourceString constructConstructorName(SourceString receiver,
1457 SourceString selector) { 1457 SourceString selector) {
1458 String r = receiver.slowToString(); 1458 String r = receiver.slowToString();
1459 String s = selector.slowToString(); 1459 String s = selector.slowToString();
1460 return new SourceString('$r\$$s'); 1460 return new SourceString('$r\$$s');
1461 } 1461 }
1462 1462
1463 static const SourceString OPERATOR_EQUALS = 1463 static const SourceString OPERATOR_EQUALS =
1464 const SourceString(@'operator$eq'); 1464 const SourceString(@'operator$eq');
1465 1465
1466 static SourceString constructOperatorName(SourceString selector, 1466 static SourceString constructOperatorName(SourceString receiver,
1467 bool isUnary) { 1467 SourceString selector,
1468 [bool isUnary = false]) {
1468 String str = selector.stringValue; 1469 String str = selector.stringValue;
1469 if (str === '==' || str === '!=') return OPERATOR_EQUALS; 1470 if (str === '==' || str === '!=') return OPERATOR_EQUALS;
1470 1471
1471 if (str === '~') { 1472 if (str === '~') str = 'not';
1472 str = 'not'; 1473 else if (str === 'negate' || (str === '-' && isUnary)) str = 'negate';
1473 } else if (str === '-' && isUnary) { 1474 else if (str === '[]') str = 'index';
1474 // TODO(ahe): Return something like 'unary -'. 1475 else if (str === '[]=') str = 'indexSet';
1475 return const SourceString('negate'); 1476 else if (str === '*' || str === '*=') str = 'mul';
1476 } else if (str === '[]') { 1477 else if (str === '/' || str === '/=') str = 'div';
1477 str = 'index'; 1478 else if (str === '%' || str === '%=') str = 'mod';
1478 } else if (str === '[]=') { 1479 else if (str === '~/' || str === '~/=') str = 'tdiv';
1479 str = 'indexSet'; 1480 else if (str === '+' || str === '+=') str = 'add';
1480 } else if (str === '*' || str === '*=') { 1481 else if (str === '-' || str === '-=') str = 'sub';
1481 str = 'mul'; 1482 else if (str === '<<' || str === '<<=') str = 'shl';
1482 } else if (str === '/' || str === '/=') { 1483 else if (str === '>>' || str === '>>=') str = 'shr';
1483 str = 'div'; 1484 else if (str === '>=') str = 'ge';
1484 } else if (str === '%' || str === '%=') { 1485 else if (str === '>') str = 'gt';
1485 str = 'mod'; 1486 else if (str === '<=') str = 'le';
1486 } else if (str === '~/' || str === '~/=') { 1487 else if (str === '<') str = 'lt';
1487 str = 'tdiv'; 1488 else if (str === '&' || str === '&=') str = 'and';
1488 } else if (str === '+' || str === '+=') { 1489 else if (str === '^' || str === '^=') str = 'xor';
1489 str = 'add'; 1490 else if (str === '|' || str === '|=') str = 'or';
1490 } else if (str === '-' || str === '-=') { 1491 else {
1491 str = 'sub';
1492 } else if (str === '<<' || str === '<<=') {
1493 str = 'shl';
1494 } else if (str === '>>' || str === '>>=') {
1495 str = 'shr';
1496 } else if (str === '>=') {
1497 str = 'ge';
1498 } else if (str === '>') {
1499 str = 'gt';
1500 } else if (str === '<=') {
1501 str = 'le';
1502 } else if (str === '<') {
1503 str = 'lt';
1504 } else if (str === '&' || str === '&=') {
1505 str = 'and';
1506 } else if (str === '^' || str === '^=') {
1507 str = 'xor';
1508 } else if (str === '|' || str === '|=') {
1509 str = 'or';
1510 } else if (selector == const SourceString('negate')) {
1511 // TODO(ahe): Remove this case: Legacy support for pre-0.11 spec.
1512 return selector;
1513 } else {
1514 throw new Exception('Unhandled selector: ${selector.slowToString()}'); 1492 throw new Exception('Unhandled selector: ${selector.slowToString()}');
1515 } 1493 }
1516 return new SourceString('operator\$$str'); 1494 return new SourceString('$receiver\$$str');
1517 } 1495 }
1518 1496
1519 static bool isStringSupertype(Element element, Compiler compiler) { 1497 static bool isStringSupertype(Element element, Compiler compiler) {
1520 LibraryElement coreLibrary = compiler.coreLibrary; 1498 LibraryElement coreLibrary = compiler.coreLibrary;
1521 return (element == coreLibrary.find(const SourceString('Comparable'))) 1499 return (element == coreLibrary.find(const SourceString('Comparable')))
1522 || (element == coreLibrary.find(const SourceString('Hashable'))) 1500 || (element == coreLibrary.find(const SourceString('Hashable')))
1523 || (element == coreLibrary.find(const SourceString('Pattern'))); 1501 || (element == coreLibrary.find(const SourceString('Pattern')));
1524 } 1502 }
1525 1503
1526 static bool isListSupertype(Element element, Compiler compiler) { 1504 static bool isListSupertype(Element element, Compiler compiler) {
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1651 1629
1652 MetadataAnnotation ensureResolved(Compiler compiler) { 1630 MetadataAnnotation ensureResolved(Compiler compiler) {
1653 if (resolutionState == STATE_NOT_STARTED) { 1631 if (resolutionState == STATE_NOT_STARTED) {
1654 compiler.resolver.resolveMetadataAnnotation(this); 1632 compiler.resolver.resolveMetadataAnnotation(this);
1655 } 1633 }
1656 return this; 1634 return this;
1657 } 1635 }
1658 1636
1659 String toString() => 'MetadataAnnotation($value, $resolutionState)'; 1637 String toString() => 'MetadataAnnotation($value, $resolutionState)';
1660 } 1638 }
OLDNEW
« no previous file with comments | « no previous file | dart/lib/compiler/implementation/lib/interceptors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698