Skip to content

Commit deafdfa

Browse files
committed
add tests extracted from scalameta
1 parent fa20971 commit deafdfa

24 files changed

+545
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package example
2+
3+
class Access {
4+
private def m1 = ???
5+
private[this] def m2 = ???
6+
private[Access] def m3 = ???
7+
protected def m4 = ???
8+
protected[this] def m5 = ???
9+
protected[example] def m6 = ???
10+
def m7 = ???
11+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package example
2+
3+
import scala.language.existentials
4+
import scala.language.higherKinds
5+
import scala.language.reflectiveCalls
6+
7+
class AdvC[T] {
8+
def t: T = ???
9+
}
10+
11+
class Structural {
12+
def s1: { val x: Int } = ???
13+
def s2 = new { val x: Int = ??? }
14+
def s3 = new { def m(x: Int): Int = ??? }
15+
}
16+
17+
class Existential {
18+
def e1: List[_] = ???
19+
}
20+
21+
class AdvD[CC[B]] extends AdvC[CC[B]]
22+
23+
object AdvTest {
24+
val s = new Structural
25+
val s1 = s.s1
26+
val s2 = s.s2
27+
val s3 = s.s3
28+
29+
val e = new Existential
30+
val e1 = e.e1
31+
val e1x = e.e1.head
32+
locally {
33+
(??? : Any) match {
34+
case e3: List[_] =>
35+
val e3x = e3.head
36+
()
37+
}
38+
}
39+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package example
2+
import scala.language.higherKinds
3+
4+
class Anonymous {
5+
this: Anonymous =>
6+
7+
def m1[T[_], B] = ???
8+
def m2: Map[_, List[_]] = ???
9+
locally {
10+
??? match { case _: List[_] => }
11+
}
12+
locally {
13+
val x: Int => Int = _ => ???
14+
}
15+
16+
trait Foo
17+
var x = new Foo {}
18+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package example
2+
3+
class C1(val x1: Int) extends AnyVal
4+
5+
class C2(val x2: Int) extends AnyVal
6+
object C2
7+
8+
case class C3(x: Int)
9+
10+
case class C4(x: Int)
11+
object C4
12+
13+
object M {
14+
implicit class C5(x: Int)
15+
}
16+
17+
case class C6(private val x: Int)
18+
19+
class C7(x: Int)
20+
21+
class C8(private[this] val x: Int)
22+
23+
class C9(private[this] var x: Int)
24+
25+
object N {
26+
val anonClass = new C7(42) {
27+
val local = ???
28+
}
29+
val anonFun = List(1).map { i =>
30+
val local = 2
31+
local + 2
32+
}
33+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package example
2+
3+
class AdvA {
4+
def b: AdvB = ???
5+
}
6+
7+
class AdvB {
8+
def a: AdvA = ???
9+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package example
2+
3+
object EmptyObject {}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package example
2+
3+
import scala.concurrent.Future
4+
5+
object OExample { self =>
6+
new scala.collection.mutable.Stack[Int]()
7+
def main(args: Array[String]): Unit = {
8+
println(1)
9+
}
10+
val x = scala.reflect.classTag[Int]
11+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package example
2+
3+
// This class should be excluded by semanticdb.
4+
class Exclude
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package example
2+
3+
package object p {
4+
private lazy val x = 1
5+
protected implicit var y: Int = 2
6+
def z(pp: Int) = 3
7+
def m[TT] = ???
8+
abstract class C[+T, -U, V](x: T, y: U, z: V) {
9+
def this() = this(???, ???, ???)
10+
def w: Int
11+
}
12+
type T1 = Int
13+
type T2[T] = S[T]
14+
type U <: Int
15+
type V >: Int
16+
case object X
17+
final class Y
18+
sealed trait Z
19+
class AA(x: Int, val y: Int, var z: Int)
20+
class S[@specialized T]
21+
val List(xs1) = ???
22+
??? match { case List(xs2) => ??? }
23+
??? match { case _: List[t] => ??? }
24+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import scala.util.control.NonFatal
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// See https://github.com/scalameta/scalameta/issues/1749
2+
package example
3+
4+
import scala.math.Ordered.orderingToOrdered
5+
6+
class Issue1749 {
7+
val x1 = 42
8+
val x2 = 42
9+
(x1, x1)
10+
.compare((x2, x2))
11+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package example
2+
3+
object Test {
4+
val xs = {
5+
val x = 42
6+
List(x)
7+
}
8+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package example
2+
3+
//@MacroAnnotation
4+
class MacroAnnotations
5+
object MacroAnnotations
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package example
2+
3+
class MethodUsages {
4+
val m = new Methods[Int]
5+
m.m1
6+
m.m2()
7+
m.m3(0)
8+
m.m4(0)(0)
9+
m.m5("")
10+
m.m5(0)
11+
m.m6(0)
12+
m.m6(new m.List[Int])
13+
m.m6(Nil)
14+
m.m7a(m, new m.List[Int])
15+
m.m7b(new m.List[Int])
16+
m.`m8().`()
17+
m.m9(null)
18+
m.m10(null)
19+
m.m11(Predef)
20+
m.m11(OExample)
21+
m.m12a(null)
22+
m.m12b(null)
23+
m.m13(0)
24+
m.m15(0)
25+
m.m16(0)
26+
m.m16(0)
27+
m.m17.m()
28+
m.m17(1)
29+
m.m17("")
30+
m.m18.m()
31+
m.m18(1)
32+
m.m18("")
33+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package example
2+
3+
import scala.math.Ordering
4+
import scala.language.existentials
5+
6+
class Methods[T] {
7+
class List[T]
8+
type AList[T] = List[T]
9+
def m1 = ???
10+
def m2() = ???
11+
def m3(x: Int) = ???
12+
def m4(x: Int)(y: Int) = ???
13+
def m5(x: String) = ???
14+
def m5(x: Int) = ???
15+
def m6(x: Int) = ???
16+
def m6(x: List[T]) = ???
17+
def m6(x: scala.List[T]) = ???
18+
def m7a[U: Ordering](c: Methods[T], l: List[U]) = ???
19+
def m7b[U <: T](l: List[U]) = ???
20+
def `m8().`() = ???
21+
class `m9().`
22+
def m9(x: `m9().`) = ???
23+
def m10(x: AList[T]) = ???
24+
def m11(x: Predef.type) = ???
25+
def m11(x: OExample.type) = ???
26+
def m12a(x: {}) = ???
27+
def m12b(x: { val x: Int }) = ???
28+
def m13(x: Int @unchecked) = ???
29+
def m15(x: => Int) = ???
30+
def m16(x: Int*) = ???
31+
object m17 { def m() = ??? }
32+
def m17(a: Int) = ???
33+
def m17(b: String) = ???
34+
val m18 = m17
35+
def m18(a: Int) = ???
36+
def m18(b: String) = ???
37+
def m19(x: Int, y: Int = 2)(z: Int = 3) = ???
38+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package example
2+
3+
object X {
4+
object Y
5+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package example
2+
3+
trait OveA { def foo: Int }
4+
class OveB() extends OveA { def foo: Int = 2 }
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package example
2+
3+
class PrefC {
4+
type T
5+
def m1: T = ???
6+
7+
object N {
8+
type U
9+
}
10+
def k1: N.U = ???
11+
}
12+
13+
object PrefM {
14+
type T
15+
def n1: T = ???
16+
}
17+
18+
object PrefO extends PrefC {
19+
def o1: T = ???
20+
}
21+
22+
object PrefTest {
23+
val c: PrefC = ???
24+
def m2: c.T = ???
25+
def k2: c.N.U = ???
26+
import c.N._
27+
def k3: U = ???
28+
29+
def n2: PrefM.T = ???
30+
31+
import PrefM._
32+
def n3: T = ???
33+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package example
2+
3+
class B
4+
5+
class AC1 extends B { self =>
6+
}
7+
8+
class AC2 extends B { self: B =>
9+
}
10+
11+
abstract class AC3 extends B { self: B with Int =>
12+
}
13+
14+
class AC4 extends B { a =>
15+
}
16+
17+
class AC5 extends B { a : B =>
18+
}
19+
20+
class AC6 extends B { this: B =>
21+
}
22+
23+
abstract class AC7 { a: B =>
24+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package example
2+
3+
class Synthetic {
4+
List(1).map(_ + 2)
5+
Array.empty[Int].headOption
6+
"fooo".stripPrefix("o")
7+
8+
// See https://github.com/scalameta/scalameta/issues/977
9+
val Name = "name:(.*)".r
10+
val x #:: xs = Stream(1, 2)
11+
val Name(name) = "name:foo"
12+
1 #:: 2 #:: Stream.empty
13+
14+
val lst = 1 #:: 2 #:: Stream.empty
15+
lst + "foo"
16+
17+
for (x <- 1 to 10; y <- 0 until 10) println(x -> x)
18+
for (i <- 1 to 10; j <- 0 until 10) yield (i, j)
19+
for (i <- 1 to 10; j <- 0 until 10 if i % 2 == 0) yield (i, j)
20+
21+
object s {
22+
def apply() = 2
23+
s()
24+
s.apply()
25+
case class Bar()
26+
Bar()
27+
null.asInstanceOf[Int => Int](2)
28+
}
29+
30+
class J[T: Manifest] { val arr = Array.empty[T] }
31+
32+
class F
33+
implicit val ordering: Ordering[F] = ???
34+
val f: Ordered[F] = new F
35+
36+
import scala.concurrent.ExecutionContext.Implicits.global
37+
for {
38+
a <- scala.concurrent.Future.successful(1)
39+
b <- scala.concurrent.Future.successful(2)
40+
} println(a)
41+
for {
42+
a <- scala.concurrent.Future.successful(1)
43+
b <- scala.concurrent.Future.successful(2)
44+
if a < b
45+
} yield a
46+
47+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package example
2+
3+
trait T {
4+
def x = 2
5+
}
6+
7+
sealed trait U
8+
object U {
9+
def u: U = new U {}
10+
}
11+
12+
class C
13+
trait V { self: C =>
14+
}

0 commit comments

Comments
 (0)