| 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 /** A formal parameter to a [Method]. */ | 5 /** A formal parameter to a [Method]. */ |
| 6 class Parameter { | 6 class Parameter { |
| 7 FormalNode definition; | 7 FormalNode definition; |
| 8 | 8 |
| 9 String name; | 9 String name; |
| 10 Type type; | 10 Type type; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 Library get library() => declaringType.library; | 108 Library get library() => declaringType.library; |
| 109 | 109 |
| 110 bool get isPrivate() => name.startsWith('_'); | 110 bool get isPrivate() => name.startsWith('_'); |
| 111 | 111 |
| 112 bool get isConstructor() => false; | 112 bool get isConstructor() => false; |
| 113 bool get isField() => false; | 113 bool get isField() => false; |
| 114 bool get isMethod() => false; | 114 bool get isMethod() => false; |
| 115 bool get isProperty() => false; | 115 bool get isProperty() => false; |
| 116 bool get isAbstract() => false; | 116 bool get isAbstract() => false; |
| 117 | 117 |
| 118 bool get isFinal() => false; |
| 119 |
| 118 // TODO(jmesserly): these only makes sense on methods, but because of | 120 // TODO(jmesserly): these only makes sense on methods, but because of |
| 119 // ConcreteMember we need to support them on Member. | 121 // ConcreteMember we need to support them on Member. |
| 120 bool get isConst() => false; | 122 bool get isConst() => false; |
| 121 bool get isFactory() => false; | 123 bool get isFactory() => false; |
| 122 | 124 |
| 123 bool get isOperator() => name.startsWith('\$'); | 125 bool get isOperator() => name.startsWith('\$'); |
| 124 bool get isCallMethod() => name == '\$call'; | 126 bool get isCallMethod() => name == '\$call'; |
| 125 | 127 |
| 126 bool get prefersPropertySyntax() => true; | 128 bool get prefersPropertySyntax() => true; |
| 127 bool get requiresFieldSyntax() => false; | 129 bool get requiresFieldSyntax() => false; |
| 128 | 130 |
| 129 bool get isNative() => false; | 131 bool get isNative() => false; |
| 130 String get constructorName() { | 132 String get constructorName() { |
| 131 world.internalError('can not be a constructor', span); | 133 world.internalError('can not be a constructor', span); |
| 132 } | 134 } |
| 133 | 135 |
| 134 // Don't display an error here; we'll get a better error later. | 136 // Don't display an error here; we'll get a better error later. |
| 135 void provideFieldSyntax() {} | 137 void provideFieldSyntax() {} |
| 136 void providePropertySyntax() {} | 138 void providePropertySyntax() {} |
| 137 | 139 |
| 138 Member get initDelegate() { | 140 Member get initDelegate() { |
| 139 world.internalError('cannot have initializers', span); | 141 world.internalError('cannot have initializers', span); |
| 140 } | 142 } |
| 141 Member set initDelegate(ctor) { | 143 Member set initDelegate(ctor) { |
| 142 world.internalError('cannot have initializers', span); | 144 world.internalError('cannot have initializers', span); |
| 143 } | 145 } |
| 144 | 146 |
| 147 Value computeValue() { |
| 148 world.internalError('cannot have value', span); |
| 149 } |
| 150 |
| 145 /** | 151 /** |
| 146 * The inferred returnType. Right now this is just used to track | 152 * The inferred returnType. Right now this is just used to track |
| 147 * non-nullable bools. | 153 * non-nullable bools. |
| 148 */ | 154 */ |
| 149 Type get inferredResult() { | 155 Type get inferredResult() { |
| 150 var t = returnType; | 156 var t = returnType; |
| 151 if (t.isBool && (library.isCore || library.isCoreImpl)) { | 157 if (t.isBool && (library.isCore || library.isCoreImpl)) { |
| 152 // We trust our core libraries not to return null from bools. | 158 // We trust our core libraries not to return null from bools. |
| 153 // I hope this trust is well placed! | 159 // I hope this trust is well placed! |
| 154 return world.nonNullBool; | 160 return world.nonNullBool; |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 549 } | 555 } |
| 550 } | 556 } |
| 551 } | 557 } |
| 552 | 558 |
| 553 SourceSpan get span() => baseMember.span; | 559 SourceSpan get span() => baseMember.span; |
| 554 | 560 |
| 555 bool get isStatic() => baseMember.isStatic; | 561 bool get isStatic() => baseMember.isStatic; |
| 556 bool get isAbstract() => baseMember.isAbstract; | 562 bool get isAbstract() => baseMember.isAbstract; |
| 557 bool get isConst() => baseMember.isConst; | 563 bool get isConst() => baseMember.isConst; |
| 558 bool get isFactory() => baseMember.isFactory; | 564 bool get isFactory() => baseMember.isFactory; |
| 565 bool get isFinal() => baseMember.isFinal; |
| 559 | 566 |
| 560 String get jsname() => baseMember.jsname; | 567 String get jsname() => baseMember.jsname; |
| 561 set jsname(String name) => | 568 set jsname(String name) => |
| 562 world.internalError('bad set of jsname on ConcreteMember'); | 569 world.internalError('bad set of jsname on ConcreteMember'); |
| 563 | 570 |
| 564 | 571 |
| 565 bool get canGet() => baseMember.canGet; | 572 bool get canGet() => baseMember.canGet; |
| 566 bool get canSet() => baseMember.canSet; | 573 bool get canSet() => baseMember.canSet; |
| 567 bool canInvoke(MethodGenerator context, Arguments args) => | 574 bool canInvoke(MethodGenerator context, Arguments args) => |
| 568 baseMember.canInvoke(context, args); | 575 baseMember.canInvoke(context, args); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 585 | 592 |
| 586 // TODO(sigmund): this is EGREGIOUS | 593 // TODO(sigmund): this is EGREGIOUS |
| 587 Member get initDelegate() => baseMember.initDelegate; | 594 Member get initDelegate() => baseMember.initDelegate; |
| 588 Member set initDelegate(ctor) { baseMember.initDelegate = ctor; } | 595 Member set initDelegate(ctor) { baseMember.initDelegate = ctor; } |
| 589 | 596 |
| 590 Type resolveType(TypeReference node, bool isRequired) { | 597 Type resolveType(TypeReference node, bool isRequired) { |
| 591 var type = baseMember.resolveType(node, isRequired); | 598 var type = baseMember.resolveType(node, isRequired); |
| 592 return type.resolveTypeParams(declaringType); | 599 return type.resolveTypeParams(declaringType); |
| 593 } | 600 } |
| 594 | 601 |
| 602 Value computeValue() => baseMember.computeValue(); |
| 603 |
| 595 // TODO(jimhug): Add support for type params. | 604 // TODO(jimhug): Add support for type params. |
| 596 bool override(Member other) => baseMember.override(other); | 605 bool override(Member other) => baseMember.override(other); |
| 597 | 606 |
| 598 Value _get(MethodGenerator context, Node node, Value target, | 607 Value _get(MethodGenerator context, Node node, Value target, |
| 599 [bool isDynamic=false]) { | 608 [bool isDynamic=false]) { |
| 600 Value ret = baseMember._get(context, node, target, isDynamic); | 609 Value ret = baseMember._get(context, node, target, isDynamic); |
| 601 return new Value(inferredResult, ret.code, node.span); | 610 return new Value(inferredResult, ret.code, node.span); |
| 602 } | 611 } |
| 603 | 612 |
| 604 Value _set(MethodGenerator context, Node node, Value target, Value value, | 613 Value _set(MethodGenerator context, Node node, Value target, Value value, |
| (...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1689 } | 1698 } |
| 1690 | 1699 |
| 1691 void forEach(void f(Member member)) { | 1700 void forEach(void f(Member member)) { |
| 1692 factories.forEach((_, Map constructors) { | 1701 factories.forEach((_, Map constructors) { |
| 1693 constructors.forEach((_, Member member) { | 1702 constructors.forEach((_, Member member) { |
| 1694 f(member); | 1703 f(member); |
| 1695 }); | 1704 }); |
| 1696 }); | 1705 }); |
| 1697 } | 1706 } |
| 1698 } | 1707 } |
| OLD | NEW |