summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-08-29 12:28:23 +0000
committerschinz <schinz@epfl.ch>2003-08-29 12:28:23 +0000
commit10f1c3abfb0c0e7a31bc5da2c277033f53ec2f0e (patch)
treed67522ff8b07433b9a4789ba248b62eeb3ec6a48 /sources
parenteb89bf0481db0feda7523ae5bf08bda268f22e12 (diff)
downloadscala-10f1c3abfb0c0e7a31bc5da2c277033f53ec2f0e.tar.gz
scala-10f1c3abfb0c0e7a31bc5da2c277033f53ec2f0e.tar.bz2
scala-10f1c3abfb0c0e7a31bc5da2c277033f53ec2f0e.zip
- handle return
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/ast/printer/TextTreePrinter.java9
-rw-r--r--sources/scalac/backend/jvm/GenJVM.java6
2 files changed, 13 insertions, 2 deletions
diff --git a/sources/scalac/ast/printer/TextTreePrinter.java b/sources/scalac/ast/printer/TextTreePrinter.java
index ca93dac976..e4889b9bc2 100644
--- a/sources/scalac/ast/printer/TextTreePrinter.java
+++ b/sources/scalac/ast/printer/TextTreePrinter.java
@@ -159,7 +159,6 @@ public class TextTreePrinter implements TreePrinter {
protected static final Text KW_IF = Text.Keyword("if");
protected static final Text KW_IMPORT = Text.Keyword("import");
protected static final Text KW_INTERFACE = Text.Keyword("interface");
- protected static final Text KW_LET = Text.Keyword("let");
protected static final Text KW_OBJECT = Text.Keyword("object");
protected static final Text KW_NEW = Text.Keyword("new");
protected static final Text KW_NULL = Text.Keyword("null");
@@ -168,7 +167,7 @@ public class TextTreePrinter implements TreePrinter {
protected static final Text KW_PACKAGE = Text.Keyword("package");
protected static final Text KW_PRIVATE = Text.Keyword("private");
protected static final Text KW_PROTECTED = Text.Keyword("protected");
- protected static final Text KW_QUALIFIED = Text.Keyword("qualified");
+ protected static final Text KW_RETURN = Text.Keyword("return");
protected static final Text KW_STATIC = Text.Keyword("static");
protected static final Text KW_SUPER = Text.Keyword("super");
protected static final Text KW_THIS = Text.Keyword("this");
@@ -481,6 +480,12 @@ public class TextTreePrinter implements TreePrinter {
print(TXT_BLOCK_END);
break;
+ case Return(Tree expr):
+ print(KW_RETURN);
+ print(Text.Space);
+ print(expr);
+ break;
+
case New(Tree.Template templ):
printTemplate(KW_NEW, templ, false);
printType(tree);
diff --git a/sources/scalac/backend/jvm/GenJVM.java b/sources/scalac/backend/jvm/GenJVM.java
index dbf25a0dc2..78a259da7d 100644
--- a/sources/scalac/backend/jvm/GenJVM.java
+++ b/sources/scalac/backend/jvm/GenJVM.java
@@ -168,6 +168,12 @@ class GenJVM {
leaveMethod(ctx1);
} break;
+ case Return(Tree expr): {
+ JType retType = ctx.method.getReturnType();
+ genLoad(ctx, expr, retType);
+ ctx.code.emitRETURN(retType);
+ } break;
+
case Typed(Tree expr, _):
gen(ctx, expr);
break;