summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-10-16 15:38:40 +0000
committerMartin Odersky <odersky@gmail.com>2009-10-16 15:38:40 +0000
commit136c1cce62ab8a35d7f0a515d7456fe4764611c3 (patch)
tree8dd0f923e82158ea72f5ccd997bd96dba8185c7c /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parent8ce658f6653bc6fedb7c7f43f9e307fe55847297 (diff)
downloadscala-136c1cce62ab8a35d7f0a515d7456fe4764611c3.tar.gz
scala-136c1cce62ab8a35d7f0a515d7456fe4764611c3.tar.bz2
scala-136c1cce62ab8a35d7f0a515d7456fe4764611c3.zip
moved Range and GenericRange to collection.immu...
moved Range and GenericRange to collection.immutable, with alias for Range in scala package object; made Range strict. moved from filter to withFilter in translation for for expressions.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 3d88493c86..d9cdb79ea4 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -3709,7 +3709,27 @@ trait Typers { self: Analyzer =>
if (util.Statistics.enabled) selcnt += 1
var qual1 = checkDead(typedQualifier(qual, mode))
if (name.isTypeName) qual1 = checkStable(qual1)
- val tree1 = typedSelect(qual1, name)
+
+ val tree1 = // temporarily use `filter' and an alternative for `withFilter'
+ if (name == nme.withFilter)
+ silent(_ => typedSelect(qual1, name)) match {
+ case result1: Tree =>
+ result1
+ case ex1: TypeError =>
+ silent(_ => typed1(Select(qual1, nme.filter) setPos tree.pos, mode, pt)) match {
+ case result2: Tree =>
+ unit.deprecationWarning(
+ tree.pos, "`withFilter' method does not yet exist on "+qual1.tpe.widen+
+ ", using `filter' method instead")
+ result2
+ case ex2: TypeError =>
+ reportTypeError(tree.pos, ex1)
+ setError(tree)
+ }
+ }
+ else
+ typedSelect(qual1, name)
+
if (qual1.symbol == RootPackage) treeCopy.Ident(tree1, name)
else tree1