summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-04-07 15:20:15 +0000
committerMartin Odersky <odersky@gmail.com>2003-04-07 15:20:15 +0000
commit00699895d9fff134025ef84d321671e27a7cb102 (patch)
treea9148cab97258a0677f8b4d0a5afc7c127190c16 /sources/scalac/symtab
parent2ff2f6e02918278290095dd153e2af4b28d447a8 (diff)
downloadscala-00699895d9fff134025ef84d321671e27a7cb102.tar.gz
scala-00699895d9fff134025ef84d321671e27a7cb102.tar.bz2
scala-00699895d9fff134025ef84d321671e27a7cb102.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/symtab')
-rw-r--r--sources/scalac/symtab/Type.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/sources/scalac/symtab/Type.java b/sources/scalac/symtab/Type.java
index d579ea9685..b61f9141ab 100644
--- a/sources/scalac/symtab/Type.java
+++ b/sources/scalac/symtab/Type.java
@@ -514,7 +514,8 @@ public class Type implements Modifiers, Kinds, TypeTags {
}
}
- /** Is this type of the form scala.FunctionN[T_1, ..., T_n, +T]?
+ /** Is this type of the form scala.FunctionN[T_1, ..., T_n, +T] or
+ * scala.Object with scala.FunctionN[T_1, ..., T_n, +T]?
*/
public boolean isFunctionType() {
switch (this) {
@@ -524,6 +525,12 @@ public class Type implements Modifiers, Kinds, TypeTags {
if (args[i].isCovarType()) return false;
return args.length > 0 && args[args.length - 1].isCovarType();
}
+ break;
+ case CompoundType(Type[] parents, Scope members):
+ return members.elems == Scope.Entry.NONE &&
+ parents.length == 2 &&
+ parents[0].symbol().fullName() == Names.scala_Object &&
+ parents[1].isFunctionType();
}
return false;
}
@@ -2129,7 +2136,7 @@ public class Type implements Modifiers, Kinds, TypeTags {
}
}
Type pre1 = (Global.instance.debug) ? pre : pre.expandModuleThis();
- String result = pre1.prefixString() + sym.nameString() + sym.idString();
+ String result = pre1.prefixString() + sym.nameString() + sym.idString();
if (args.length != 0)
result = result + ArrayApply.toString(args, "[", ",", "]");
return result;
@@ -2190,7 +2197,7 @@ public class Type implements Modifiers, Kinds, TypeTags {
}
private String prefixString() {
- if ((this == localThisType || symbol().isRoot()) && !Global.instance.debug) {
+ if ((symbol().kind == NONE || symbol().isRoot()) && !Global.instance.debug) {
return "";
} else {
String spre = toString();