1
+ package org .scala .syntax
2
+ package test
3
+
4
+
5
+ class TreeMap [A <: Comparable [A ], B ] { }
6
+ class List [A ] { }
7
+ class I extends Comparable [I ] {}
8
+
9
+ class F [M [_], X ] { }
10
+ class S [K <: String ] {}
11
+ class G [M [ Z <: I ], I ] { }
12
+
13
+ case class Bird (val name : String @ suspendable) extends Object {
14
+ def fly (height : Int @ suspendable) = ???
15
+ def walk [T1 : T2 ](_distance : Int , empty_? : Int , `yield` : String , αρετη : Boolean )(implicit fa : Functor [T1 ]) = ???
16
+ def c (x : Int ) (y : String , z : String ): String = ???
17
+ def union [A <: Comparable [A ]] (x : Set [A ], xs : Set [A ]): Set [A ]
18
+ }
19
+
20
+ trait Iterable [+ X ] {
21
+ def flatMap [newType[+ X ] <: Iterable [X ], S ](f : X => newType[S ]): newType[S ]
22
+ }
23
+
24
+ package org .scala {
25
+ class List [+ T ]
26
+ class Set [- T ]
27
+ }
28
+
29
+ class A [+ T ] {}
30
+ class B extends A [B ]
31
+ class C extends A [C ]
32
+
33
+
34
+
35
+ abstract class AbstractClass
36
+ sealed trait Sealed
37
+
38
+ object Types {
39
+ val x : String @ suspendable = " "
40
+
41
+ def infix () : T1 \/ T2 = ???
42
+
43
+ type Z1 = Ref [T ] forSome { type T <: java.lang.Number }
44
+ type Z2 = Ref [x.T ] forSome { val x : Outer }
45
+ type Z3 = Ref [x_type # T ] forSome { type x_type <: Outer with Singleton }
46
+
47
+ def complexBounds [A , B >: A , C >: A <: B ]()
48
+ def complexBounds2 [M [X <: Bound [X ]], Bound [_]]
49
+ def complexBounds3 [@ specialized T , U ]()
50
+
51
+ def compare [T ](a : T = 0 )(b : T = a) = (a == b)
52
+ def f (a : Int = 0 )(b : Int = a + 1 ) = b
53
+
54
+ def whileLoop (cond : => Boolean ) (stat : => Unit ): Unit
55
+
56
+ def sum (args : Int * ) = {
57
+ var result = 0
58
+ for (arg <- args) result += arg
59
+ result
60
+ }
61
+
62
+ def write (str : String ) { System .out.println(str) }
63
+ def write (str : String ): Unit = { System .out.println(str) }
64
+
65
+
66
+
67
+ type Pair [+ A , + B ] = Tuple2 [A , B ]
68
+ object Pair {
69
+ { import M .{one , z => zero , _ }; add(zero, one) }
70
+ def apply [A , B ](x : A , y : B ) = Tuple2 (x, y)
71
+ def unapply [A , B ](x : Tuple2 [A , B ]): Option [Tuple2 [A , B ]] = Some (x)
72
+ }
73
+ }
74
+
75
+ object ValueDefinitions {
76
+ val pi = 3.1415
77
+ val pi : Double = 3.1415 // equivalent to first definition
78
+ val Some (x) = f() // a pattern definition
79
+ val x :: xs = mylist // an infix pattern definition
80
+ }
81
+
82
+ class Iter extends StringIterator with RichIterator { }
83
+ trait A extends Root { type T <: A }
84
+
85
+ class Modifiers {
86
+ final val x = e
87
+ override def f ()
88
+ private val y = " "
89
+ abstract override def g ()
90
+ private lazy final val h = 3
91
+ }
92
+
93
+ object m {
94
+ abstract sealed class C (x : Int ) {
95
+ def nextC = new C (x + 1 ) {}
96
+ }
97
+ val empty = new C (0 ) {}
98
+ }
99
+
100
+ class LinkedList [A ]() { self : List with Seq =>
101
+ var head = ???
102
+ var tail = null
103
+ def isEmpty = tail != null
104
+ def this (head : A ) = { this (); this .head = head }
105
+ def this (head : A , tail : List [A ]) = { this (head); this .tail = tail }
106
+ }
107
+
108
+ case class Lambda (x : String , e : Expr ) extends Expr
109
+
110
+ trait Comparable [T <: Comparable [T ]] { self : T =>
111
+ def < (that : T ): Boolean
112
+ def <= (that : T ): Boolean = this < that || this == that
113
+ def > (that : T ): Boolean = that < this
114
+ def >= (that : T ): Boolean = that <= this
115
+ }
116
+
117
+ class A extends Root { override def x = " A" ; def superA = super .x }
118
+
119
+ object Appl {
120
+ def sum (xs : Int * ) = (0 /: xs) ((x, y) => x + y)
121
+ sum(List (1 , 2 , 3 , 4 ): _* )
122
+
123
+ val x : S = new Z
124
+ val y : S = new Z {
125
+ val x = 5
126
+ }
127
+
128
+ def matmul (xss : Array [Array [Double ]], yss : Array [Array [Double ]]) = {
129
+ val zss : Array [Array [Double ]] = new Array (xss.length, yss(0 ).length)
130
+ var i = 0
131
+ while (i < xss.length) {
132
+ var j = 0
133
+ while (j < yss(0 ).length) {
134
+ var acc = 0.0
135
+ var k = 0
136
+ while (k < yss.length) {
137
+ acc = acc + xss(i)(k) * yss(k)(j)
138
+ k += 1
139
+ }
140
+ zss(i)(j) = acc
141
+ j += 1
142
+ }
143
+ i += 1
144
+ }
145
+ zss
146
+ }
147
+
148
+ def whileLoop (cond : => Boolean )(body : => Unit ): Unit =
149
+ if (cond) { body ; whileLoop(cond)(body) } else {}
150
+
151
+ do {x += 2 } while (x < 100 )
152
+
153
+ for { i <- 1 until n
154
+ j <- 1 until i
155
+ if isPrime(i+ j)
156
+ } yield (i, j)
157
+
158
+ (1 until n)
159
+ .flatMap {
160
+ case i => (1 until i)
161
+ .withFilter { j => isPrime(i+ j) }
162
+ .map { case j => (i, j) } }
163
+
164
+ try {
165
+ throw ex;
166
+ } catch {
167
+ case NonFatal (e) => throw e;
168
+ case other => throw other
169
+ }
170
+ }
171
+
172
+ object Inline {
173
+ val summ = (x : Int ,y : Int ) => x + y
174
+ }
175
+
176
+ object Monoids {
177
+ implicit object stringMonoid extends Monoid [String ] {
178
+ def add (x : String , y : String ): String = x.concat(y)
179
+ def unit : String = " "
180
+ }
181
+ }
182
+
183
+ object A1 {
184
+ def sum [A ](xs : List [A ])(implicit m : Monoid [A ]): A =
185
+ if (xs.isEmpty) m.unit
186
+ else m.add(xs.head, sum(xs.tail))
187
+
188
+ implicit def list2ordered [A ](x : List [A ])
189
+ (implicit elem2ordered : A => Ordered [A ]): Ordered [List [A ]]
190
+ }
191
+
192
+ object PatternMatching {
193
+ def f (x : Int , y : Int ) = x match {
194
+ case `y` =>
195
+ case s @ Seq (_, _, _) =>
196
+ case Seq (first, tail @ _* ) =>
197
+ case first +: tail =>
198
+ case 3 | 5 | 6 =>
199
+ case y : Number => y.n
200
+ case Lit (n) => n
201
+ case IsZero (u) => eval(u) == 0
202
+ case _ => 15
203
+ }
204
+
205
+ }
206
+
207
+ package p1 {
208
+ package p2 {
209
+ object Kitten
210
+ }
211
+ }
212
+
213
+ package a .b {
214
+ class A {
215
+ val x = new _root_.b.B
216
+ }
217
+ }
218
+
219
+ object HelloWorld {
220
+ def main (args : Array [String ]) { println(" Hello World" ) }
221
+ }
222
+
223
+ object HelloWorld extends App {
224
+ println(" Hello World" )
225
+ }
226
+
227
+ @ SerialVersionUID (12345 )
228
+ object Annotations {
229
+ @ deprecated(" Use D" , " 1.0" ) class C { }
230
+ @ transient @ volatile var m : Int
231
+
232
+ def f (x : Option [Int ]) = (x : @ unchecked) match {
233
+ case Some (y) => y
234
+ }
235
+
236
+ trait Function0 [@ specialized(Unit , Int , Double ) T ] {
237
+ def apply : T
238
+ }
239
+
240
+ @ UserDefinedUpperCase def x
241
+ @ userDefinedLowerCase def y
242
+ }
0 commit comments