summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2005-11-29 12:05:40 +0000
committermichelou <michelou@epfl.ch>2005-11-29 12:05:40 +0000
commit630b3717fc18e606442dde271ec189a785957791 (patch)
tree2568f1261d5ce3028102eb3ced314976f3512fda
parent9bcec1fcbd498aa28a9db73fb95e5a0bad95d60f (diff)
downloadscala-630b3717fc18e606442dde271ec189a785957791.tar.gz
scala-630b3717fc18e606442dde271ec189a785957791.tar.bz2
scala-630b3717fc18e606442dde271ec189a785957791.zip
- added methods 'cloneTypes' and 'getTypeMap'
-rw-r--r--sources/scalac/symtab/SymbolCloner.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/sources/scalac/symtab/SymbolCloner.java b/sources/scalac/symtab/SymbolCloner.java
index a1a534fab6..d07717bdc7 100644
--- a/sources/scalac/symtab/SymbolCloner.java
+++ b/sources/scalac/symtab/SymbolCloner.java
@@ -1,6 +1,6 @@
/* ____ ____ ____ ____ ______ *\
** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
-** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002-2005, LAMP/EPFL **
** /_____/\____/\___/\____/____/ **
\* */
@@ -8,8 +8,8 @@
package scalac.symtab;
-import java.util.Map;
import java.util.HashMap;
+import java.util.Map;
import scalac.util.Debug;
@@ -128,6 +128,14 @@ public class SymbolCloner {
return cloner.apply(type);
}
+ /** Clones the given types. */
+ public Type[] cloneTypes(Type[] types) {
+ Type[] clones = new Type[types.length];
+ for (int i = 0; i < types.length; i++)
+ clones[i] = cloner.apply(types[i]);
+ return clones;
+ }
+
//########################################################################
// Public Methods - Mapping symbols
@@ -145,6 +153,12 @@ public class SymbolCloner {
return mapper.apply(type);
}
+ /** Returns the type map built during symbol cloning. */
+ // used in scalac/ast/TreeCloner.java
+ public Type.Map getTypeMap() {
+ return cloner;
+ }
+
//########################################################################
// Private Method