aboutsummaryrefslogtreecommitdiff
path: root/tests/neg/validate.scala
blob: 38da83fd714b06fd73c0146155b673e757bba89e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
trait X {
  type Y
  abstract val v: Y // error: abstract term
  abstract def y: Y // error: abstract term
}

implicit object Z { // error: implict at toplevel
  implicit case class C() // error: implicit classes may not be case classes
  implicit type T = Int // error: implicit modifier cannot be used for types or traits
  implicit trait U // error: implicit modifier cannot be used for types or traits
  val x: X = new X {
    type Y = Int
    val v: Int = 1
  }
  var y: Int // error: only classes can have declared but undefined members
  val z: Int = {
    val u: Int // error: only classes can have declared but undefined members
    1
  }
}

trait T {
  type X
  def foo: Unit = {
    var x: Int // error: only classes can have declared but undefined members
    ()
  }
  private def bar: Int // error: abstract member may not have private modifier
  final def baz: Int // error: abstract member may not have final modifier
}

final sealed class A { // error: illegal combination of modifiers: final and sealed
  private protected def f: Int = 1 // error: illegal combination of modifiers: private and protected
}


class E extends T {
  abstract override def foo: Unit // error: abstract override only allowed for members of traits
}

trait U extends T {
  abstract override type X // error: `abstract override' incompatible with type definition
  @native def f(): Unit = 1 // error: `@native' members may not have implementation
}

trait TT extends AnyVal // error: trait TT annot extend AnyVal

final trait UU  // error: trait UU may not be `final'