summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/transform/Erasure.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2008-07-31 13:38:46 +0000
committerMartin Odersky <odersky@gmail.com>2008-07-31 13:38:46 +0000
commit076db04123bf5d983c45029fc3338861b0c4410f (patch)
tree9a8e2eaafd6e62abae0d9caf94b7bc1dec56543a /src/compiler/scala/tools/nsc/transform/Erasure.scala
parent9cfe5e961e5fe9d13b4029cf78b2253c85d3f503 (diff)
downloadscala-076db04123bf5d983c45029fc3338861b0c4410f.tar.gz
scala-076db04123bf5d983c45029fc3338861b0c4410f.tar.bz2
scala-076db04123bf5d983c45029fc3338861b0c4410f.zip
-Xexperimental changes for #1093
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/Erasure.scala')
-rw-r--r--src/compiler/scala/tools/nsc/transform/Erasure.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala
index a9baef9176..4c65f76c97 100644
--- a/src/compiler/scala/tools/nsc/transform/Erasure.scala
+++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala
@@ -312,6 +312,16 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
private def isSeqClass(sym: Symbol) =
(SeqClass isNonBottomSubClass sym) && (sym != ObjectClass)
+ /** The symbol which is called by a bridge;
+ * @pre phase > erasure
+ */
+ def bridgedSym(bridge: Symbol) =
+ bridge.owner.info.nonPrivateDecl(bridge.name) suchThat {
+ sym => !(sym hasFlag BRIDGE) &&
+ matchesType(sym.tpe, bridge.tpe, true) &&
+ sym.tpe.resultType <:< bridge.tpe.resultType
+ }
+
// -------- boxing/unboxing --------------------------------------------------------
override def newTyper(context: Context) = new Eraser(context)