| 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 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 } | 547 } |
| 542 } | 548 } |
| 543 } | 549 } |
| 544 | 550 |
| 545 SourceSpan get span() => baseMember.span; | 551 SourceSpan get span() => baseMember.span; |
| 546 | 552 |
| 547 bool get isStatic() => baseMember.isStatic; | 553 bool get isStatic() => baseMember.isStatic; |
| 548 bool get isAbstract() => baseMember.isAbstract; | 554 bool get isAbstract() => baseMember.isAbstract; |
| 549 bool get isConst() => baseMember.isConst; | 555 bool get isConst() => baseMember.isConst; |
| 550 bool get isFactory() => baseMember.isFactory; | 556 bool get isFactory() => baseMember.isFactory; |
| 557 bool get isFinal() => baseMember.isFinal; |
| 551 | 558 |
| 552 String get jsname() => baseMember.jsname; | 559 String get jsname() => baseMember.jsname; |
| 553 set jsname(String name) => | 560 set jsname(String name) => |
| 554 world.internalError('bad set of jsname on ConcreteMember'); | 561 world.internalError('bad set of jsname on ConcreteMember'); |
| 555 | 562 |
| 556 | 563 |
| 557 bool get canGet() => baseMember.canGet; | 564 bool get canGet() => baseMember.canGet; |
| 558 bool get canSet() => baseMember.canSet; | 565 bool get canSet() => baseMember.canSet; |
| 559 bool canInvoke(MethodGenerator context, Arguments args) => | 566 bool canInvoke(MethodGenerator context, Arguments args) => |
| 560 baseMember.canInvoke(context, args); | 567 baseMember.canInvoke(context, args); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 577 | 584 |
| 578 // TODO(sigmund): this is EGREGIOUS | 585 // TODO(sigmund): this is EGREGIOUS |
| 579 Member get initDelegate() => baseMember.initDelegate; | 586 Member get initDelegate() => baseMember.initDelegate; |
| 580 Member set initDelegate(ctor) { baseMember.initDelegate = ctor; } | 587 Member set initDelegate(ctor) { baseMember.initDelegate = ctor; } |
| 581 | 588 |
| 582 Type resolveType(TypeReference node, bool isRequired) { | 589 Type resolveType(TypeReference node, bool isRequired) { |
| 583 var type = baseMember.resolveType(node, isRequired); | 590 var type = baseMember.resolveType(node, isRequired); |
| 584 return type.resolveTypeParams(declaringType); | 591 return type.resolveTypeParams(declaringType); |
| 585 } | 592 } |
| 586 | 593 |
| 594 Value computeValue() => baseMember.computeValue(); |
| 595 |
| 587 // TODO(jimhug): Add support for type params. | 596 // TODO(jimhug): Add support for type params. |
| 588 bool override(Member other) => baseMember.override(other); | 597 bool override(Member other) => baseMember.override(other); |
| 589 | 598 |
| 590 Value _get(MethodGenerator context, Node node, Value target, | 599 Value _get(MethodGenerator context, Node node, Value target, |
| 591 [bool isDynamic=false]) { | 600 [bool isDynamic=false]) { |
| 592 Value ret = baseMember._get(context, node, target, isDynamic); | 601 Value ret = baseMember._get(context, node, target, isDynamic); |
| 593 return new Value(inferredResult, ret.code, node.span); | 602 return new Value(inferredResult, ret.code, node.span); |
| 594 } | 603 } |
| 595 | 604 |
| 596 Value _set(MethodGenerator context, Node node, Value target, Value value, | 605 Value _set(MethodGenerator context, Node node, Value target, Value value, |
| (...skipping 1046 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1643 } | 1652 } |
| 1644 | 1653 |
| 1645 void forEach(void f(Member member)) { | 1654 void forEach(void f(Member member)) { |
| 1646 factories.forEach((_, Map constructors) { | 1655 factories.forEach((_, Map constructors) { |
| 1647 constructors.forEach((_, Member member) { | 1656 constructors.forEach((_, Member member) { |
| 1648 f(member); | 1657 f(member); |
| 1649 }); | 1658 }); |
| 1650 }); | 1659 }); |
| 1651 } | 1660 } |
| 1652 } | 1661 } |
| OLD | NEW |