diff options
author | Som Snytt <som.snytt@gmail.com> | 2013-05-12 12:09:12 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2013-05-12 12:09:12 -0700 |
commit | 135cfa88814ea5391c50bdeb2b2aaadfebd6da67 (patch) | |
tree | f6fae022488347aa44d21eb45d5ead888584d1ee | |
parent | da91728a0b1d5e449eb13b697993d056e7ad53d6 (diff) | |
download | scala-135cfa88814ea5391c50bdeb2b2aaadfebd6da67.tar.gz scala-135cfa88814ea5391c50bdeb2b2aaadfebd6da67.tar.bz2 scala-135cfa88814ea5391c50bdeb2b2aaadfebd6da67.zip |
SI-6406 Restore deprecated API
The original patch for SI-6406 was intended for 2.10 but during
those volatile weeks of early autumn, it missed the boat.
A deprecated method was incorrectly tagged at 2.10 and later
removed; this restores the method and its test, and resets
the deprecation clock to 2.11.
The deprecation tool should confirm that changes occur on the
git timeline as claimed.
-rw-r--r-- | src/library/scala/util/matching/Regex.scala | 14 | ||||
-rw-r--r-- | test/files/neg/t6406-regextract.check | 9 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/library/scala/util/matching/Regex.scala b/src/library/scala/util/matching/Regex.scala index 8d135ecf02..8eac0a2520 100644 --- a/src/library/scala/util/matching/Regex.scala +++ b/src/library/scala/util/matching/Regex.scala @@ -205,6 +205,20 @@ class Regex private[matching](val pattern: Pattern, groupNames: String*) extends else if (m.matcher.pattern == this.pattern) Some(1 to m.groupCount map m.group) else unapplySeq(m.matched) + /** Tries to match target. + * @param target The string to match + * @return The matches + */ + @deprecated("Extracting a match result from anything but a CharSequence or Match is deprecated", "2.11.0") + def unapplySeq(target: Any): Option[List[String]] = target match { + case s: CharSequence => + val m = pattern matcher s + if (runMatcher(m)) Some((1 to m.groupCount).toList map m.group) + else None + case m: Match => unapplySeq(m.matched) + case _ => None + } + // @see UnanchoredRegex protected def runMatcher(m: Matcher) = m.matches() diff --git a/test/files/neg/t6406-regextract.check b/test/files/neg/t6406-regextract.check index 4fea66f760..19425a68b0 100644 --- a/test/files/neg/t6406-regextract.check +++ b/test/files/neg/t6406-regextract.check @@ -1,7 +1,6 @@ -t6406-regextract.scala:4: error: cannot resolve overloaded unapply +t6406-regextract.scala:4: warning: method unapplySeq in class Regex is deprecated: Extracting a match result from anything but a CharSequence or Match is deprecated List(1) collect { case r(i) => i } ^ -t6406-regextract.scala:4: error: not found: value i - List(1) collect { case r(i) => i } - ^ -two errors found +error: No warnings can be incurred under -Xfatal-warnings. +one warning found +one error found |