Skip to content

Commit 6525fd3

Browse files
committed
Make into and allowConversions experimental
1 parent b2a7932 commit 6525fd3

File tree

7 files changed

+15
-1
lines changed

7 files changed

+15
-1
lines changed

compiler/src/dotty/tools/dotc/config/Feature.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ object Feature:
2828
val symbolLiterals = deprecated("symbolLiterals")
2929
val fewerBraces = experimental("fewerBraces")
3030
val saferExceptions = experimental("saferExceptions")
31+
val into = experimental("into")
3132

3233
/** Is `feature` enabled by by a command-line setting? The enabling setting is
3334
*

compiler/src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1907,7 +1907,9 @@ object Parsers {
19071907
core()
19081908

19091909
private def maybeInto(tp: () => Tree) =
1910-
if in.isIdent(nme.into) && canStartTypeTokens.contains(in.lookahead.token)
1910+
if in.isIdent(nme.into)
1911+
&& in.featureEnabled(Feature.into)
1912+
&& canStartTypeTokens.contains(in.lookahead.token)
19111913
then atSpan(in.skipToken()) { Into(tp()) }
19121914
else tp()
19131915

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package scala.annotation
2+
import annotation.experimental
23

34
/** An annotation on a parameter type that allows implicit conversions
45
* for its arguments. Intended for use by Scala 2, to annotate Scala 2
56
* libraries. Scala 3 uses the `convertibleTo` modifier on the parameter
67
* type instead.
78
*/
9+
@experimental
810
class allowConversions extends scala.annotation.StaticAnnotation

library/src/scala/runtime/stdLibPatches/language.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ object language:
6060
@compileTimeOnly("`saferExceptions` can only be used at compile time in import statements")
6161
object saferExceptions
6262

63+
@compileTimeOnly("`into` can only be used at compile time in import statements")
64+
object into
65+
6366
end experimental
6467

6568
/** The deprecated object contains features that are no longer officially suypported in Scala.

tests/neg-custom-args/feature/convertible.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import language.experimental.into
2+
13
class Text(val str: String)
24

35
object Test:

tests/run-custom-args/fatal-warnings/convertible.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import language.experimental.into
2+
13
class Text(val str: String)
24

35
given Conversion[String, Text] = Text(_)

tests/run/Parser.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import language.experimental.into
2+
13
type Input = List[String]
24

35
trait ParseResult[+T]

0 commit comments

Comments
 (0)