Skip to content

Commit fb8426a

Browse files
committed
Move tests from neg-custom-args/fatal-warnings to neg
1 parent 46f2db6 commit fb8426a

10 files changed

+311
-0
lines changed

tests/neg/i17612a.check

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:18:15 -----------------------------------------------------
2+
18 | class Derived(x : Int, y: Int, z2: Int) extends Base(x, y + 1, z2): // error // error / for x, y translated to private[this] x field & shadowing var Base.x, Base.y
3+
| ^
4+
| value x in class Derived shadows field x inherited from class Base
5+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:18:24 -----------------------------------------------------
6+
18 | class Derived(x : Int, y: Int, z2: Int) extends Base(x, y + 1, z2): // error // error / for x, y translated to private[this] x field & shadowing var Base.x, Base.y
7+
| ^
8+
| value y in class Derived shadows field y inherited from class Base
9+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:20:2 ------------------------------------------------------
10+
20 | private val shadowed2 = 2 + 2 // error (In Scala 2 we cannot do that got the warning)
11+
| ^
12+
| value shadowed2 in class Derived shadows field shadowed2 inherited from class Base
13+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:21:2 ------------------------------------------------------
14+
21 | private[this] val shadowed3 = 3 + 3 // error
15+
| ^
16+
| value shadowed3 in class Derived shadows field shadowed3 inherited from class Base
17+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:23:2 ------------------------------------------------------
18+
23 | private val shadowed5 = 5 + 5 // error
19+
| ^
20+
| value shadowed5 in class Derived shadows field shadowed5 inherited from class Base
21+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:34:20 -----------------------------------------------------
22+
34 | class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, y, z) // error // error // error
23+
| ^
24+
| value x in class UnderDerived shadows field x inherited from class Base
25+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:34:28 -----------------------------------------------------
26+
34 | class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, y, z) // error // error // error
27+
| ^
28+
| value y in class UnderDerived shadows field y inherited from class Base
29+
-- Error: tests/neg-custom-args/fatal-warnings/i17612a.scala:34:36 -----------------------------------------------------
30+
34 | class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, y, z) // error // error // error
31+
| ^
32+
| value z in class UnderDerived shadows field z inherited from class Base

tests/neg/i17612a.scala

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// scalac: -Xlint:private-shadow
2+
3+
object i17612a:
4+
class Base(var x: Int, val y: Int, var z: Int):
5+
var shadowed2 = 2
6+
val shadowed3 = 3
7+
val shadowed4 = 4
8+
protected var shadowed5 = 5
9+
//var shadowed6 = 6
10+
11+
val notShadowed = -1
12+
private val notShadowed2 = -2
13+
//val fatalOverride = 0
14+
15+
def increment(): Unit =
16+
x = x + 1
17+
18+
class Derived(x : Int, y: Int, z2: Int) extends Base(x, y + 1, z2): // error // error / for x, y translated to private[this] x field & shadowing var Base.x, Base.y
19+
private def hello() = 4
20+
private val shadowed2 = 2 + 2 // error (In Scala 2 we cannot do that got the warning)
21+
private[this] val shadowed3 = 3 + 3 // error
22+
//private[Derived] val fatalOverride = 0 // value fatalOverride of type Int has weaker access privileges; it should be public
23+
private val shadowed5 = 5 + 5 // error
24+
private val notShadowed2 = -4
25+
//protected var shadowed6 = 6 + 6 // variable shadowed6 of type Int has weaker access privileges; it should be public
26+
27+
def inFunctionScope() =
28+
val notShadowed = -2 // OK
29+
-2
30+
31+
override def toString =
32+
s"x : ${x.toString}, y : ${y.toString}"
33+
34+
class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, y, z) // error // error // error
35+
36+
def main(args: Array[String]) =
37+
val derived = new Derived(1, 1, 1)
38+
println(derived.toString) // yields x: '1', as expected
39+
derived.increment()
40+
println(derived.toString) // still x: '1', probably unexpected, for y it never prints the super value, less surprising
41+
println(derived.shadowed2)
42+
println(derived.shadowed3)

tests/neg/i17612b.check

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:21:15 ---------------------------------------------
2+
21 | class Derived(x : Int, x3: Int, y: Int, z2: Int) extends BaseB, BaseC(x3), Base(x, y + 1, z2): // error // error / for x, y translated to private[this] x field & shadowing var Base.x, Base.y
3+
| ^
4+
| value x in class Derived shadows field x inherited from trait Base
5+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:21:33 ---------------------------------------------
6+
21 | class Derived(x : Int, x3: Int, y: Int, z2: Int) extends BaseB, BaseC(x3), Base(x, y + 1, z2): // error // error / for x, y translated to private[this] x field & shadowing var Base.x, Base.y
7+
| ^
8+
| value y in class Derived shadows field y inherited from trait Base
9+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:23:2 ----------------------------------------------
10+
23 | private val shadowed2 = 2 + 2 // error (In Scala 2 we cannot do that got the warning)
11+
| ^
12+
| value shadowed2 in class Derived shadows field shadowed2 inherited from trait Base
13+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:24:2 ----------------------------------------------
14+
24 | private[this] val shadowed3 = 3 + 3 // error
15+
| ^
16+
| value shadowed3 in class Derived shadows field shadowed3 inherited from trait Base
17+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:26:2 ----------------------------------------------
18+
26 | private val shadowed5 = 5 + 5 // error
19+
| ^
20+
| value shadowed5 in class Derived shadows field shadowed5 inherited from trait Base
21+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:41:20 ---------------------------------------------
22+
41 | class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, 1, y, z) // error // error // error
23+
| ^
24+
| value x in class UnderDerived shadows field x inherited from trait Base
25+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:41:28 ---------------------------------------------
26+
41 | class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, 1, y, z) // error // error // error
27+
| ^
28+
| value y in class UnderDerived shadows field y inherited from trait Base
29+
-- Error: tests/neg-custom-args/fatal-warnings/i17612b/i17612b.scala:41:36 ---------------------------------------------
30+
41 | class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, 1, y, z) // error // error // error
31+
| ^
32+
| value z in class UnderDerived shadows field z inherited from trait Base

tests/neg/i17612b/i17612b.scala

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// scalac: -Xlint:private-shadow
2+
3+
object i17612b:
4+
5+
trait Base(var x: Int, val y: Int, var z: Int):
6+
var shadowed2 = 2
7+
val shadowed3 = 3
8+
val shadowed4 = 4
9+
protected var shadowed5 = 5
10+
11+
val notShadowed = -1
12+
private val notShadowed2 = -2
13+
val notShadowedbyLambda = -2
14+
15+
def increment(): Unit =
16+
x = x + 1
17+
18+
trait BaseB
19+
trait BaseC(var x2: Int)
20+
21+
class Derived(x : Int, x3: Int, y: Int, z2: Int) extends BaseB, BaseC(x3), Base(x, y + 1, z2): // error // error / for x, y translated to private[this] x field & shadowing var Base.x, Base.y
22+
private def hello() = 4
23+
private val shadowed2 = 2 + 2 // error (In Scala 2 we cannot do that got the warning)
24+
private[this] val shadowed3 = 3 + 3 // error
25+
26+
private val shadowed5 = 5 + 5 // error
27+
private val notShadowed2 = -4
28+
29+
val lambda: Int => Int => Int =
30+
notShadowedbyLambda =>
31+
notShadowedbyLambda =>
32+
notShadowedbyLambda * 2
33+
34+
def inFunctionScope() =
35+
val notShadowed = -2 // OK
36+
-2
37+
38+
override def toString =
39+
s"x : ${x.toString}, y : ${y.toString}"
40+
41+
class UnderDerived(x: Int, y: Int, z: Int) extends Derived(x, 1, y, z) // error // error // error
42+
43+
def main(args: Array[String]) =
44+
val derived = new Derived(1, 1, 1, 1)

tests/neg/i17612b/importTry.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
object importTry:
2+
3+
trait ImTrait
4+
5+
class ImClass

tests/neg/i17613a.check

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-- Error: tests/neg-custom-args/fatal-warnings/i17613a.scala:8:13 ------------------------------------------------------
2+
8 | def foobar[D](in: D) = in.toString // error method parameter shadows some other type
3+
| ^
4+
| Type parameter D for method foobar shadows the type defined by trait D in class B
5+
-- Error: tests/neg-custom-args/fatal-warnings/i17613a.scala:9:13 ------------------------------------------------------
6+
9 | type MySeq[D] = Seq[D] // error type member's parameter shadows some other type
7+
| ^
8+
| Type parameter D for type MySeq shadows the type defined by trait D in class B
9+
-- Error: tests/neg-custom-args/fatal-warnings/i17613a.scala:11:12 -----------------------------------------------------
10+
11 | class Foo[T](t: T): // error class parameter shadows some other type
11+
| ^
12+
| Type parameter T for class Foo shadows the type defined by type T in class B
13+
-- Error: tests/neg-custom-args/fatal-warnings/i17613a.scala:12:11 -----------------------------------------------------
14+
12 | def bar[T](w: T) = w.toString // error a type parameter shadows another type parameter
15+
| ^
16+
| Type parameter T for method bar shadows the type defined by type T in class Foo
17+
-- Error: tests/neg-custom-args/fatal-warnings/i17613a.scala:15:12 -----------------------------------------------------
18+
15 | class C[M[List[_]]] // error
19+
| ^^^^^^^
20+
| Type parameter List for class C shadows the type defined by type List in package scala
21+
-- Error: tests/neg-custom-args/fatal-warnings/i17613a.scala:16:11 -----------------------------------------------------
22+
16 | type E[M[List[_]]] = Int // error
23+
| ^^^^^^^
24+
| Type parameter List for type E shadows the type defined by type List in package scala
25+
-- Error: tests/neg-custom-args/fatal-warnings/i17613a.scala:17:14 -----------------------------------------------------
26+
17 | def foo[N[M[List[_]]]] = ??? // error
27+
| ^^^^^^^
28+
| Type parameter List for method foo shadows the type defined by type List in package scala

tests/neg/i17613a.scala

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// scalac: -Xlint:type-parameter-shadow
2+
3+
object i17613a:
4+
class B:
5+
type T = Int
6+
trait D
7+
8+
def foobar[D](in: D) = in.toString // error method parameter shadows some other type
9+
type MySeq[D] = Seq[D] // error type member's parameter shadows some other type
10+
11+
class Foo[T](t: T): // error class parameter shadows some other type
12+
def bar[T](w: T) = w.toString // error a type parameter shadows another type parameter
13+
14+
// even deeply nested...
15+
class C[M[List[_]]] // error
16+
type E[M[List[_]]] = Int // error
17+
def foo[N[M[List[_]]]] = ??? // error
18+
19+
// ...but not between type parameters in the same list
20+
class F[A, M[N[A]]]
21+
type G[A, M[L[A]]] = Int
22+
def bar[A, N[M[L[A]]]] = ???
23+
def main(args: Array[String]) = println("Test for type parameter shadow")

tests/neg/i17613b.check

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:9:13 ----------------------------------------------
2+
9 | def foobar[ImTrait](in: D) = in.toString // error
3+
| ^^^^^^^
4+
| Type parameter ImTrait for method foobar shadows the type defined by trait ImTrait in object importTry
5+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:10:13 ---------------------------------------------
6+
10 | type MySeq[ImTrait] = Seq[D] // error
7+
| ^^^^^^^
8+
| Type parameter ImTrait for type MySeq shadows the type defined by trait ImTrait in object importTry
9+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:12:14 ---------------------------------------------
10+
12 | def foobar2[ImClass](in: D) = in.toString // error
11+
| ^^^^^^^
12+
| Type parameter ImClass for method foobar2 shadows the type defined by class ImClass in object importTry
13+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:13:14 ---------------------------------------------
14+
13 | type MySeq2[ImClass] = Seq[D] // error
15+
| ^^^^^^^
16+
| Type parameter ImClass for type MySeq2 shadows the type defined by class ImClass in object importTry
17+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:16:24 ---------------------------------------------
18+
16 | type TypeLambda[A] = [ImTrait] =>> Map[ImTrait, B] // error
19+
| ^^^^^^^
20+
| Type parameter ImTrait for type TypeLambda shadows the type defined by trait ImTrait in object importTry
21+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:17:21 ---------------------------------------------
22+
17 | type PolyFun[A] = [ImTrait] => ImTrait => B // error
23+
| ^^^^^^^
24+
| Type parameter ImTrait for type PolyFun shadows the type defined by trait ImTrait in object importTry
25+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:23:12 ---------------------------------------------
26+
23 | class Foo[T](t: T): // error class parameter shadows some other type
27+
| ^
28+
| Type parameter T for class Foo shadows the type defined by type T in class B
29+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:27:15 ---------------------------------------------
30+
27 | def intType[List1](x: T) = x.toString() // error
31+
| ^^^^^
32+
| Type parameter List1 for method intType shadows an explicitly renamed type : List1
33+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:32:10 ---------------------------------------------
34+
32 | given [Int]: Ordering[Int]() // error
35+
| ^^^
36+
| Type parameter Int for method given_Ordering_Int shadows the type defined by class Int in package scala
37+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:34:12 ---------------------------------------------
38+
34 | class C[M[List[_]]] // error List not renamed here
39+
| ^^^^^^^
40+
| Type parameter List for class C shadows the type defined by type List in package scala
41+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:35:11 ---------------------------------------------
42+
35 | type E[M[Int[_]]] = Int // error
43+
| ^^^^^^
44+
| Type parameter Int for type E shadows the type defined by class Int in package scala
45+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:37:14 ---------------------------------------------
46+
37 | def foo[N[M[List[_]]]] = // error
47+
| ^^^^^^^
48+
| Type parameter List for method foo shadows the type defined by type List in package scala
49+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:40:11 ---------------------------------------------
50+
40 | type Z[ImClassR] = Int // error
51+
| ^^^^^^^^
52+
| Type parameter ImClassR for type Z shadows an explicitly renamed type : ImClassR
53+
-- Error: tests/neg-custom-args/fatal-warnings/i17613b/i17613b.scala:41:18 ---------------------------------------------
54+
41 | class InnerCl[ImClassR] // error
55+
| ^^^^^^^^
56+
| Type parameter ImClassR for class InnerCl shadows an explicitly renamed type : ImClassR

tests/neg/i17613b/i17613b.scala

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// scalac: -Xlint:type-parameter-shadow
2+
3+
object i17613b:
4+
import importTry._
5+
class B:
6+
type T = Int
7+
trait D
8+
9+
def foobar[ImTrait](in: D) = in.toString // error
10+
type MySeq[ImTrait] = Seq[D] // error
11+
12+
def foobar2[ImClass](in: D) = in.toString // error
13+
type MySeq2[ImClass] = Seq[D] // error
14+
15+
given [A]: Ordering[Int]()
16+
type TypeLambda[A] = [ImTrait] =>> Map[ImTrait, B] // error
17+
type PolyFun[A] = [ImTrait] => ImTrait => B // error
18+
type MatchType[A] = A match {
19+
case String => Int
20+
case ImTrait => Boolean
21+
}
22+
23+
class Foo[T](t: T): // error class parameter shadows some other type
24+
import scala.collection.immutable.{List => List1}
25+
def bar[List](w: T) = w.toString // no warning due to the explicit import renaming
26+
27+
def intType[List1](x: T) = x.toString() // error
28+
29+
type Y[List] = Int // no warning
30+
31+
given [A]: Ordering[A]()
32+
given [Int]: Ordering[Int]() // error
33+
34+
class C[M[List[_]]] // error List not renamed here
35+
type E[M[Int[_]]] = Int // error
36+
37+
def foo[N[M[List[_]]]] = // error
38+
import importTry.{ImClass => ImClassR}
39+
def inner[ImClass] = // no warning
40+
type Z[ImClassR] = Int // error
41+
class InnerCl[ImClassR] // error
42+
5
43+
44+
def main(args: Array[String]) = println("Test for type parameter shadow")

tests/neg/i17613b/importTry.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
object importTry:
2+
3+
trait ImTrait
4+
5+
class ImClass

0 commit comments

Comments
 (0)