summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-03-04 15:20:12 +0000
committerMartin Odersky <odersky@gmail.com>2003-03-04 15:20:12 +0000
commite9e6e2ee0d5d12853d2d6f9ce2a6bc3148fd4c40 (patch)
treee0a36ec3beb00f77c4c95f208b3f270b4c3a136e /sources
parentc92e218894312499145816a5ad1f70f042e112b1 (diff)
downloadscala-e9e6e2ee0d5d12853d2d6f9ce2a6bc3148fd4c40.tar.gz
scala-e9e6e2ee0d5d12853d2d6f9ce2a6bc3148fd4c40.tar.bz2
scala-e9e6e2ee0d5d12853d2d6f9ce2a6bc3148fd4c40.zip
*** empty log message ***
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/runtime/ResultOrException.java1
-rw-r--r--sources/scalac/symtab/Symbol.java2
-rw-r--r--sources/scalac/symtab/Type.java17
-rw-r--r--sources/scalac/transformer/LambdaLiftPhase.java2
4 files changed, 16 insertions, 6 deletions
diff --git a/sources/scala/runtime/ResultOrException.java b/sources/scala/runtime/ResultOrException.java
index e264acd354..870ed2ce50 100644
--- a/sources/scala/runtime/ResultOrException.java
+++ b/sources/scala/runtime/ResultOrException.java
@@ -27,7 +27,6 @@ public class ResultOrException {
this.exc = exc;
}
-
/** @meta method [?A] (def ?A) scala.runtime.ResultOrException[?A];
*/
public static ResultOrException tryBlock(scala.Function0 block) {
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index e77de471a9..48e07b4021 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -1101,7 +1101,7 @@ public class ClassSymbol extends TypeSymbol {
*/
private Type thistp = Type.ThisType(this);
- /** Principal Constructor for module classes and classes with static members.
+ /** Principal Constructor
*/
public ClassSymbol(int pos, Name name, Symbol owner, int flags) {
super(CLASS, pos, name, owner, flags);
diff --git a/sources/scalac/symtab/Type.java b/sources/scalac/symtab/Type.java
index e7a701ce6d..c239146f78 100644
--- a/sources/scalac/symtab/Type.java
+++ b/sources/scalac/symtab/Type.java
@@ -585,9 +585,9 @@ public class Type implements Modifiers, Kinds, TypeTags {
return tp;
} else {
Scope members2 = new Scope();
- Type tp1 = compoundType(parts1, members2);
- //Type tp1 = (tp.symbol().isCompoundSym()) ? compoundType(parts1, members2)
- // : compoundType(parts1, members2, tp.symbol());
+ //Type tp1 = compoundType(parts1, members2);
+ Type tp1 = (tp.symbol().isCompoundSym()) ? compoundType(parts1, members2)
+ : compoundType(parts1, members2, tp.symbol());
Symbol[] syms1 = members1.elements();
Symbol[] syms2 = new Symbol[syms1.length];
for (int i = 0; i < syms2.length; i++) {
@@ -695,6 +695,17 @@ public class Type implements Modifiers, Kinds, TypeTags {
public Symbol map(Symbol sym) { return sym; }
public Symbol[] map(Symbol[] syms) { return syms; }
public Scope map(Scope s) { return s; }
+ public Type map(Type tp) {
+ switch (tp) {
+ case CompoundType(Type[] parts, Scope members):
+ if (!tp.symbol().isCompoundSym()) {
+ Type[] parts1 = map(parts);
+ if (parts1 == parts) return tp;
+ else return compoundType(parts1, members, tp.symbol());
+ }
+ }
+ return super.map(tp);
+ }
}
// baseType and asSeenFrom --------------------------------------------------------
diff --git a/sources/scalac/transformer/LambdaLiftPhase.java b/sources/scalac/transformer/LambdaLiftPhase.java
index 35e3e44ff0..4208e6ede1 100644
--- a/sources/scalac/transformer/LambdaLiftPhase.java
+++ b/sources/scalac/transformer/LambdaLiftPhase.java
@@ -47,7 +47,7 @@ public class LambdaLiftPhase extends PhaseDescriptor implements Kinds, Modifiers
global.log("transform info for " + sym + sym.locationString());
Type tp1 = tp;
if (sym != Symbol.NONE) {
- switch (sym.type()) {
+ switch (tp) {
case MethodType(_, _):
case PolyType(_, _):
tp1 = transform(tp, sym);