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

Unified Diff: frog/var_member.dart

Issue 9270048: Lots of frog cleanup (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« frog/gen.dart ('K') | « frog/value.dart ('k') | frog/world.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/var_member.dart
diff --git a/frog/var_member.dart b/frog/var_member.dart
index 720d314882b5f792c083b88067f997171b2c31d1..ef7960ef8290885be514f9eb688da707b18ea48e 100644
--- a/frog/var_member.dart
+++ b/frog/var_member.dart
@@ -11,9 +11,11 @@ class VarMember {
abstract void generate(CodeWriter code);
+ String get body() => null;
+
Type get returnType() => world.varType;
- Value invoke(MethodGenerator context, Node node, Value target, Arguments args) {
+ Value invoke(CallingContext context, Node node, Value target, Arguments args) {
return new Value(returnType,
'${target.code}.$name(${args.getCode()})', node.span);
}
@@ -73,7 +75,7 @@ class VarFunctionStub extends VarMember {
world.gen.genMethod(world.functionImplType.getMember('_genStub'));
}
- Value invoke(MethodGenerator context, Node node, Value target,
+ Value invoke(CallingContext context, Node node, Value target,
Arguments args) {
return super.invoke(context, node, target, args);
}
@@ -218,14 +220,14 @@ class VarMethodSet extends VarMember {
: super(name), args = callArgs.toCallStubArgs() {
}
- Value invoke(MethodGenerator context, Node node, Value target,
+ Value invoke(CallingContext context, Node node, Value target,
Arguments args) {
_invokeMembers(context, node);
return super.invoke(context, node, target, args);
}
/** Invokes members to ensure they're generated. */
- _invokeMembers(MethodGenerator context, Node node) {
+ _invokeMembers(CallingContext context, Node node) {
if (invoked) return;
invoked = true;
@@ -235,7 +237,7 @@ class VarMethodSet extends VarMember {
// then create the stub method.
final type = member.declaringType;
final target = new Value(type, 'this', node.span);
- var result = member.invoke(context, node, target, args, isDynamic:true);
+ var result = member.invoke(context, node, target, args);
var stub = new VarMethodStub(name, member, args, 'return ' + result.code);
type.varStubs[stub.name] = stub;
if (type.isObject) hasObjectType = true;
@@ -261,14 +263,14 @@ String _getCallStubName(String name, Arguments args) {
// to have methods called 'foo' and 'foo$0'.
final nameBuilder = new StringBuffer('${name}\$${args.bareCount}');
for (int i = args.bareCount; i < args.length; i++) {
- var name = args.getName(i);
+ var argName = args.getName(i);
nameBuilder.add('\$');
- if (name.contains('\$')) {
+ if (argName.contains('\$')) {
// Disambiguate "a:b:" from "a$b:". Using the length works well because
// the names can't start with digits.
- nameBuilder.add('${name.length}');
+ nameBuilder.add('${argName.length}');
}
- nameBuilder.add(name);
+ nameBuilder.add(argName);
}
return nameBuilder.toString();
}
« frog/gen.dart ('K') | « frog/value.dart ('k') | frog/world.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698