summaryrefslogtreecommitdiff
path: root/test/scaladoc/resources/SI-3314.scala
blob: 9e0afdce9dd315105b1a708609ea8e881d52d854 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package scala.test.scaladoc {

  // testing inherited <documented> templates (Enum.Value is included in the source, thus is documented in scaladoc)
  package test1 {
    class Enum {
      abstract class Value
      class Val extends Value
      def Value(): Value = new Val
    }

    object Constants extends Enum {
      def a = Value
    }
  }

  // testing inherited <not documented> templates (scala.Enumeration.Value is taken from the library, thus is not
  // documented in the scaladoc pages -- but should be inherited to make things clear!)
  package test2 {
    trait WeekDayTrait extends Enumeration {
      type WeekDay = Value
      val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
    }

    class WeekDayClass extends Enumeration {
      type WeekDay = Value
      val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
    }

    object WeekDayObject extends Enumeration {
      type WeekDay = Value
      val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
    }

    object UserObject {
      def isWorkingDay1(d: scala.test.scaladoc.test2.WeekDayClass#Value) = false
      def isWorkingDay2(d: scala.test.scaladoc.test2.WeekDayClass#WeekDay) = false
      def isWorkingDay3(d: scala.test.scaladoc.test2.WeekDayTrait#Value) = false
      def isWorkingDay4(d: scala.test.scaladoc.test2.WeekDayTrait#WeekDay) = false
      def isWorkingDay5(d: scala.test.scaladoc.test2.WeekDayObject.Value) = false
      def isWorkingDay6(d: scala.test.scaladoc.test2.WeekDayObject.WeekDay) = false
      import WeekDayObject._
      def isWorkingDay7(d: Value) = ! (d == Sat || d == Sun)
      def isWorkingDay8(d: WeekDay) = ! (d == Sat || d == Sun)
      def isWorkingDay9(d: WeekDayObject.Value) = ! (d == Sat || d == Sun)
    }

    class UserClass {
      def isWorkingDay1(d: scala.test.scaladoc.test2.WeekDayClass#Value) = false
      def isWorkingDay2(d: scala.test.scaladoc.test2.WeekDayClass#WeekDay) = false
      def isWorkingDay3(d: scala.test.scaladoc.test2.WeekDayTrait#Value) = false
      def isWorkingDay4(d: scala.test.scaladoc.test2.WeekDayTrait#WeekDay) = false
      def isWorkingDay5(d: scala.test.scaladoc.test2.WeekDayObject.Value) = false
      def isWorkingDay6(d: scala.test.scaladoc.test2.WeekDayObject.WeekDay) = false
      import WeekDayObject._
      def isWorkingDay7(d: Value) = ! (d == Sat || d == Sun)
      def isWorkingDay8(d: WeekDay) = ! (d == Sat || d == Sun)
      def isWorkingDay9(d: WeekDayObject.Value) = ! (d == Sat || d == Sun)
    }

    trait UserTrait {
      def isWorkingDay1(d: scala.test.scaladoc.test2.WeekDayClass#Value) = false
      def isWorkingDay2(d: scala.test.scaladoc.test2.WeekDayClass#WeekDay) = false
      def isWorkingDay3(d: scala.test.scaladoc.test2.WeekDayTrait#Value) = false
      def isWorkingDay4(d: scala.test.scaladoc.test2.WeekDayTrait#WeekDay) = false
      def isWorkingDay5(d: scala.test.scaladoc.test2.WeekDayObject.Value) = false
      def isWorkingDay6(d: scala.test.scaladoc.test2.WeekDayObject.WeekDay) = false
      import WeekDayObject._
      def isWorkingDay7(d: Value) = ! (d == Sat || d == Sun)
      def isWorkingDay8(d: WeekDay) = ! (d == Sat || d == Sun)
      def isWorkingDay9(d: WeekDayObject.Value) = ! (d == Sat || d == Sun)
    }
  }

  // testing type lambdas and useless prefixes (should be referenced as T instead of foo.T in the first example)
  package test3 {
    import language.higherKinds
    object `package` {
      trait T
      trait A
      trait X
      def foo[T](x: T) = 7
      def bar[A](x: ({type Lambda[X] <: Either[A, X]})#Lambda[String]) = 5
    }
  }
}