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

Side by Side Diff: frog/member.dart

Issue 8536056: better errors and error locations (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 9 years, 1 month 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 | « frog/frogsh ('k') | frog/type.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) 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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 bool get isOptional() => definition != null && definition.value != null; 71 bool get isOptional() => definition != null && definition.value != null;
72 } 72 }
73 73
74 74
75 interface Named { 75 interface Named {
76 String get name(); 76 String get name();
77 Library get library(); 77 Library get library();
78 bool get isNative(); 78 bool get isNative();
79 String get jsname(); 79 String get jsname();
80 set jsname(String name); 80 set jsname(String name);
81
82 SourceSpan get span();
81 } 83 }
82 84
83 class Member implements Named { 85 class Member implements Named {
84 final String name; 86 final String name;
85 final Type declaringType; 87 final Type declaringType;
86 88
87 String _jsname; 89 String _jsname;
88 90
89 bool isGenerated; 91 bool isGenerated;
90 MethodGenerator generator; 92 MethodGenerator generator;
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 246
245 void resolve(Type inType) {} 247 void resolve(Type inType) {}
246 248
247 Value _get(MethodGenerator context, Node node, Value target, 249 Value _get(MethodGenerator context, Node node, Value target,
248 [bool isDynamic=false]) { 250 [bool isDynamic=false]) {
249 return new Value.type(type, node.span); 251 return new Value.type(type, node.span);
250 } 252 }
251 253
252 Value _set(MethodGenerator context, Node node, Value target, Value value, 254 Value _set(MethodGenerator context, Node node, Value target, Value value,
253 [bool isDynamic=false]) { 255 [bool isDynamic=false]) {
254 world.error('can not set type', node.span); 256 world.error('cannot set type', node.span);
255 } 257 }
256 258
257 Value invoke(MethodGenerator context, Node node, Value target, Arguments args, 259 Value invoke(MethodGenerator context, Node node, Value target, Arguments args,
258 [bool isDynamic=false]) { 260 [bool isDynamic=false]) {
259 world.error('can not invoke type', node.span); 261 world.error('cannot invoke type', node.span);
260 } 262 }
261 } 263 }
262 264
263 /** Represents a Dart field from source code. */ 265 /** Represents a Dart field from source code. */
264 class FieldMember extends Member { 266 class FieldMember extends Member {
265 final VariableDefinition definition; 267 final VariableDefinition definition;
266 final Expression value; 268 final Expression value;
267 269
268 Type type; 270 Type type;
269 Value _computedValue; 271 Value _computedValue;
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 } 750 }
749 return -1; 751 return -1;
750 } 752 }
751 753
752 bool get prefersPropertySyntax() => true; 754 bool get prefersPropertySyntax() => true;
753 bool get requiresFieldSyntax() => false; 755 bool get requiresFieldSyntax() => false;
754 756
755 void provideFieldSyntax() { _provideFieldSyntax = true; } 757 void provideFieldSyntax() { _provideFieldSyntax = true; }
756 void providePropertySyntax() { _providePropertySyntax = true; } 758 void providePropertySyntax() { _providePropertySyntax = true; }
757 759
758 Value _set(MethodGenerator context, Node, Value target, Value value, 760 Value _set(MethodGenerator context, Node node, Value target, Value value,
759 [bool isDynamic=false]) { 761 [bool isDynamic=false]) {
760 world.error('can not set method', definition.span); 762 world.error('cannot set method', node.span);
761 } 763 }
762 764
763 Value _get(MethodGenerator context, Node node, Value target, 765 Value _get(MethodGenerator context, Node node, Value target,
764 [bool isDynamic=false]) { 766 [bool isDynamic=false]) {
765 // TODO(jimhug): Would prefer to invoke! 767 // TODO(jimhug): Would prefer to invoke!
766 declaringType.genMethod(this); 768 declaringType.genMethod(this);
767 _provideOptionalParamInfo = true; 769 _provideOptionalParamInfo = true;
768 if (isStatic) { 770 if (isStatic) {
769 // ensure the type is generated. 771 // ensure the type is generated.
770 // TODO(sigmund): can we avoid generating the entire type, but only what 772 // TODO(sigmund): can we avoid generating the entire type, but only what
(...skipping 923 matching lines...) Expand 10 before | Expand all | Expand 10 after
1694 } 1696 }
1695 1697
1696 void forEach(void f(Member member)) { 1698 void forEach(void f(Member member)) {
1697 factories.forEach((_, Map constructors) { 1699 factories.forEach((_, Map constructors) {
1698 constructors.forEach((_, Member member) { 1700 constructors.forEach((_, Member member) {
1699 f(member); 1701 f(member);
1700 }); 1702 });
1701 }); 1703 });
1702 } 1704 }
1703 } 1705 }
OLDNEW
« no previous file with comments | « frog/frogsh ('k') | frog/type.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698