Skip to content

Commit c7c5d8e

Browse files
committed
Drop support for -Xsource:2.10
Assume 2.11 or higher source level.
1 parent 0abf7b8 commit c7c5d8e

File tree

14 files changed

+13
-117
lines changed

14 files changed

+13
-117
lines changed

src/compiler/scala/tools/nsc/settings/ScalaSettings.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ trait ScalaSettings extends AbsScalaSettings
9696
* The previous "-source" option is intended to be used mainly
9797
* though this helper.
9898
*/
99-
private[this] val version211 = ScalaVersion("2.11.0")
100-
def isScala211: Boolean = source.value >= version211
10199
private[this] val version212 = ScalaVersion("2.12.0")
102100
def isScala212: Boolean = source.value >= version212
103101
private[this] val version213 = ScalaVersion("2.13.0")

src/compiler/scala/tools/nsc/typechecker/Implicits.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1672,9 +1672,9 @@ trait Implicits {
16721672
val outSym = out.typeSymbol
16731673

16741674
val fail =
1675-
if (out.annotations.isEmpty && (outSym == ObjectClass || (settings.isScala211 && outSym == AnyValClass)))
1675+
if (out.annotations.isEmpty && (outSym == ObjectClass || outSym == AnyValClass))
16761676
maybeInvalidConversionError(s"the result type of an implicit conversion must be more specific than $out")
1677-
else if (settings.isScala211 && in.annotations.isEmpty && in.typeSymbol == NullClass)
1677+
else if (in.annotations.isEmpty && in.typeSymbol == NullClass)
16781678
maybeInvalidConversionError("an expression of type Null is ineligible for implicit conversion")
16791679
else false
16801680

src/compiler/scala/tools/nsc/typechecker/RefChecks.scala

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,7 @@ abstract class RefChecks extends Transform {
140140
case MethodType(params, restpe) => (params exists (_.hasDefault)) || hasDefaultParam(restpe)
141141
case _ => false
142142
}
143-
val haveDefaults = methods filter (
144-
if (settings.isScala211)
145-
(sym => mexists(sym.info.paramss)(_.hasDefault) && !nme.isProtectedAccessorName(sym.name))
146-
else
147-
(sym => hasDefaultParam(sym.info) && !nme.isProtectedAccessorName(sym.name))
148-
)
143+
val haveDefaults = methods.filter(sym => mexists(sym.info.paramss)(_.hasDefault) && !nme.isProtectedAccessorName(sym.name))
149144

150145
if (haveDefaults.lengthCompare(1) > 0) {
151146
val owners = haveDefaults map (_.owner)

src/compiler/scala/tools/nsc/typechecker/Typers.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1864,7 +1864,7 @@ trait Typers extends Adaptations with Tags with TypersTracking with PatternTyper
18641864

18651865
val impl2 = finishMethodSynthesis(impl1, clazz, context)
18661866

1867-
if (settings.isScala211 && mdef.symbol == PredefModule)
1867+
if (mdef.symbol == PredefModule)
18681868
ensurePredefParentsAreInSameSourceFile(impl2)
18691869

18701870
treeCopy.ModuleDef(mdef, typedMods, mdef.name, impl2) setType NoType

src/reflect/scala/reflect/internal/Definitions.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -549,10 +549,9 @@ trait Definitions extends api.StandardDefinitions {
549549
lazy val TypeCreatorClass = getClassIfDefined("scala.reflect.api.TypeCreator") // defined in scala-reflect.jar, so we need to be careful
550550
lazy val TreeCreatorClass = getClassIfDefined("scala.reflect.api.TreeCreator") // defined in scala-reflect.jar, so we need to be careful
551551

552-
private def Context_210 = if (settings.isScala211) NoSymbol else getClassIfDefined("scala.reflect.macros.Context") // needed under -Xsource:2.10
553-
lazy val BlackboxContextClass = getClassIfDefined("scala.reflect.macros.blackbox.Context").orElse(Context_210) // defined in scala-reflect.jar, so we need to be careful
552+
lazy val BlackboxContextClass = getClassIfDefined("scala.reflect.macros.blackbox.Context") // defined in scala-reflect.jar, so we need to be careful
554553

555-
lazy val WhiteboxContextClass = getClassIfDefined("scala.reflect.macros.whitebox.Context").orElse(Context_210) // defined in scala-reflect.jar, so we need to be careful
554+
lazy val WhiteboxContextClass = getClassIfDefined("scala.reflect.macros.whitebox.Context") // defined in scala-reflect.jar, so we need to be careful
556555
def MacroContextPrefix = BlackboxContextClass.map(sym => getMemberMethod(sym, nme.prefix))
557556
def MacroContextPrefixType = BlackboxContextClass.map(sym => getTypeMember(sym, tpnme.PrefixType))
558557
def MacroContextUniverse = BlackboxContextClass.map(sym => getMemberMethod(sym, nme.universe))

src/reflect/scala/reflect/internal/Variances.scala

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,12 @@ trait Variances {
7777
* leading to unsoundness (see scala/bug#6566).
7878
*/
7979
def relativeVariance(tvar: Symbol): Variance = {
80-
def nextVariance(sym: Symbol, v: Variance): Variance = (
80+
def nextVariance(sym: Symbol, v: Variance): Variance =
8181
if (shouldFlip(sym, tvar)) v.flip
8282
else if (isExemptFromVariance(sym)) Bivariant
83-
else if (sym.isAliasType) (
84-
// Unsound pre-2.11 behavior preserved under -Xsource:2.10
85-
if (settings.isScala211 || sym.isOverridingSymbol) Invariant
86-
else {
87-
currentRun.reporting.deprecationWarning(sym.pos, "Construct depends on unsound variance analysis and will not compile in scala 2.11 and beyond", "2.11.0")
88-
Bivariant
89-
}
90-
)
83+
else if (sym.isAliasType) Invariant
9184
else v
92-
)
85+
9386
def loop(sym: Symbol, v: Variance): Variance = (
9487
if (sym == tvar.owner || v.isBivariant) v
9588
else loop(sym.owner, nextVariance(sym, v))

src/reflect/scala/reflect/internal/settings/MutableSettings.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ abstract class MutableSettings extends AbsSettings {
6363

6464
def Yrecursion: IntSetting
6565

66-
def isScala211: Boolean
6766
def isScala212: Boolean
6867
private[scala] def isScala213: Boolean
6968
}

src/reflect/scala/reflect/internal/tpe/TypeComparers.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@ trait TypeComparers {
187187
// scala/bug#2066 This prevents overrides with incompatible variance in higher order type parameters.
188188
private def methodHigherOrderTypeParamsSameVariance(sym1: Symbol, sym2: Symbol) = {
189189
def ignoreVariance(sym: Symbol) = !(sym.isHigherOrderTypeParameter && sym.logicallyEnclosingMember.isMethod)
190-
!settings.isScala211 || ignoreVariance(sym1) || ignoreVariance(sym2) || sym1.variance == sym2.variance
190+
ignoreVariance(sym1) || ignoreVariance(sym2) || sym1.variance == sym2.variance
191191
}
192192

193193
private def methodHigherOrderTypeParamsSubVariance(low: Symbol, high: Symbol) =
194-
!settings.isScala211 || methodHigherOrderTypeParamsSameVariance(low, high) || low.variance.isInvariant
194+
methodHigherOrderTypeParamsSameVariance(low, high) || low.variance.isInvariant
195195

196196
def isSameType2(tp1: Type, tp2: Type): Boolean = {
197197
def retry() = {

src/reflect/scala/reflect/runtime/Settings.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ private[reflect] class Settings extends MutableSettings {
6060
val YstatisticsEnabled = new BooleanSetting(false)
6161

6262
val Yrecursion = new IntSetting(0)
63-
def isScala211 = true
6463
def isScala212 = true
6564
private[scala] def isScala213 = false
6665
}

test/files/neg/t8265.check

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
t8265.scala:3: warning: Construct depends on unsound variance analysis and will not compile in scala 2.11 and beyond
1+
t8265.scala:3: error: covariant type CC occurs in invariant position in type CC[_] of type Coll
22
class Foo[+CC[X]] { type Coll = CC[_] }
33
^
4-
error: No warnings can be incurred under -Xfatal-warnings.
5-
one warning found
64
one error found

test/files/neg/t8265.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
// scalac: -Xsource:2.10 -deprecation -language:higherKinds -Xfatal-warnings
1+
// scalac: -deprecation -language:higherKinds
22
//
33
class Foo[+CC[X]] { type Coll = CC[_] }

test/files/pos/implicit-anyval-2.10.scala

Lines changed: 0 additions & 4 deletions
This file was deleted.

test/files/pos/t2066-2.10-compat.scala

Lines changed: 0 additions & 74 deletions
This file was deleted.

test/files/pos/t8157-2.10.scala

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)