| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 interface HVisitor<R> { | 5 interface HVisitor<R> { |
| 6 R visitAdd(HAdd node); | 6 R visitAdd(HAdd node); |
| 7 R visitBitAnd(HBitAnd node); | 7 R visitBitAnd(HBitAnd node); |
| 8 R visitBitNot(HBitNot node); | 8 R visitBitNot(HBitNot node); |
| 9 R visitBitOr(HBitOr node); | 9 R visitBitOr(HBitOr node); |
| 10 R visitBitXor(HBitXor node); | 10 R visitBitXor(HBitXor node); |
| (...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 744 | 744 |
| 745 // TODO(ngeoffray): Add a HPrimitiveType to get rid of the flag. | 745 // TODO(ngeoffray): Add a HPrimitiveType to get rid of the flag. |
| 746 const HNonPrimitiveType(Type this.type) : super(HType.FLAG_NON_PRIMITIVE); | 746 const HNonPrimitiveType(Type this.type) : super(HType.FLAG_NON_PRIMITIVE); |
| 747 | 747 |
| 748 HType combine(HType other) { | 748 HType combine(HType other) { |
| 749 if (other.isNonPrimitive()) { | 749 if (other.isNonPrimitive()) { |
| 750 HNonPrimitiveType temp = other; | 750 HNonPrimitiveType temp = other; |
| 751 if (this.type === temp.type) return this; | 751 if (this.type === temp.type) return this; |
| 752 } | 752 } |
| 753 if (other.isUnknown()) return this; | 753 if (other.isUnknown()) return this; |
| 754 return CONFLICTING; | 754 return HType.CONFLICTING; |
| 755 } | 755 } |
| 756 | 756 |
| 757 String toString() => type.toString(); | 757 String toString() => type.toString(); |
| 758 Element lookupMember(SourceString name) => type.element.lookupMember(name); | 758 Element lookupMember(SourceString name) => type.element.lookupMember(name); |
| 759 } | 759 } |
| 760 | 760 |
| 761 class HInstruction implements Hashable { | 761 class HInstruction implements Hashable { |
| 762 Element sourceElement; | 762 Element sourceElement; |
| 763 | 763 |
| 764 final int id; | 764 final int id; |
| (...skipping 1532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2297 final bool isAnd; | 2297 final bool isAnd; |
| 2298 final SubExpression left; | 2298 final SubExpression left; |
| 2299 final SubExpression right; | 2299 final SubExpression right; |
| 2300 final HBasicBlock joinBlock; | 2300 final HBasicBlock joinBlock; |
| 2301 HAndOrBlockInformation(this.isAnd, | 2301 HAndOrBlockInformation(this.isAnd, |
| 2302 this.left, | 2302 this.left, |
| 2303 this.right, | 2303 this.right, |
| 2304 this.joinBlock); | 2304 this.joinBlock); |
| 2305 bool accept(HBlockInformationVisitor visitor) => visitor.visitAndOrInfo(this); | 2305 bool accept(HBlockInformationVisitor visitor) => visitor.visitAndOrInfo(this); |
| 2306 } | 2306 } |
| OLD | NEW |