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

Side by Side Diff: frog/member.dart

Issue 8879006: frog: detect when getter/setter has incorrect number of arguments. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 9 years 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 | frog/minfrog » ('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 Member method; 8 Member method;
9 9
10 String name; 10 String name;
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 parent = c.baseMember; 528 parent = c.baseMember;
529 } else { 529 } else {
530 parent = parentMember; 530 parent = parentMember;
531 } 531 }
532 532
533 if (getter == null) getter = parent.getter; 533 if (getter == null) getter = parent.getter;
534 if (setter == null) setter = parent.setter; 534 if (setter == null) setter = parent.setter;
535 } 535 }
536 536
537 resolve() { 537 resolve() {
538 if (getter != null) getter.resolve(); 538 if (getter != null) {
539 if (setter != null) setter.resolve(); 539 getter.resolve();
540 if (getter.parameters.length != 0) {
541 world.error('getter methods should take no arguments',
542 getter.definition.span);
543 }
544 }
545 if (setter != null) {
546 setter.resolve();
547 if (setter.parameters.length != 1) {
Jennifer Messerly 2011/12/08 03:22:30 is it worth warning if getter.returnType.isVoid, o
Siggi Cherem (dart-lang) 2011/12/08 20:43:53 addressing in follow up CL.
548 world.error('setter methods should take a single argument',
549 setter.definition.span);
550 }
551 }
540 552
541 library._addMember(this); 553 library._addMember(this);
542 } 554 }
543 } 555 }
544 556
545 557
546 class ConcreteMember extends Member { 558 class ConcreteMember extends Member {
547 final Member baseMember; 559 final Member baseMember;
548 Type returnType; 560 Type returnType;
549 List<Parameter> parameters; 561 List<Parameter> parameters;
(...skipping 1197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1747 } 1759 }
1748 1760
1749 void forEach(void f(Member member)) { 1761 void forEach(void f(Member member)) {
1750 factories.forEach((_, Map constructors) { 1762 factories.forEach((_, Map constructors) {
1751 constructors.forEach((_, Member member) { 1763 constructors.forEach((_, Member member) {
1752 f(member); 1764 f(member);
1753 }); 1765 });
1754 }); 1766 });
1755 } 1767 }
1756 } 1768 }
OLDNEW
« no previous file with comments | « no previous file | frog/minfrog » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698