Repository navigation
Expand file tree
/
Copy pathclasses.kt
More file actions
162 lines (132 loc) · 2.77 KB
/
Copy pathclasses.kt
File metadata and controls
162 lines (132 loc) · 2.77 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
class ClassOne { }
class ClassTwo (val arg: Int) {
val x: Int = 3
}
abstract class ClassThree {
abstract fun foo(arg: Int)
}
open class ClassFour: ClassThree() {
override fun foo(arg: Int) {
}
}
class ClassFive: ClassFour() {
}
interface IF1 {
fun funIF1() {}
}
interface IF2 {
fun funIF2() {}
}
class ClassSix(): ClassFour(), IF1, IF2 {
constructor(i: Int): this(){ }
}
fun f(s: String) {}
class ClassSeven {
constructor(i: String) {
f(i)
}
init {
f("init1")
}
val x: Int = 3
init {
f("init2")
}
}
enum class Direction {
NORTH, SOUTH, WEST, EAST
}
enum class Color(val rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF)
}
interface Interface1 {}
interface Interface2 {}
interface Interface3<T> {}
class Class1 {
private fun getObject1(b: Boolean) : Any {
if (b)
return object : Interface1, Interface2 { }
else
return object : Interface1, Interface2, Interface3<String> { }
}
private fun getObject2() : Interface1 {
return object : Interface1, Interface2 {
val x = 1
fun foo(): Any {
return object { }
}
}
}
private fun getObject3() : Any {
return object : Interface1 { }
}
private fun getObject4() : Any {
return object { }
}
private fun getObject5() : Any {
return object : Interface3<Int?> { }
}
}
public class pulicClass {}
private class privateClass {}
internal class internalClass {}
class noExplicitVisibilityClass {}
class nestedClassVisibilities {
public class pulicNestedClass {}
protected class protectedNestedClass {}
private class privateNestedClass {}
internal class internalNestedClass {}
class noExplicitVisibilityNestedClass {}
}
sealed class sealedClass {}
open class openClass {}
class C1 {
fun fn1(p: Int) {
class Local1<T1> {
fun foo(p: Int) { }
}
Local1<Int>().foo(p)
}
fun fn2(p: Int) {
fun localFn() {
class Local2<T1> {
fun foo(p: Int) { }
}
Local2<Int>().foo(p)
}
}
fun fn3(p: Int): Any {
return object {
fun fn() {
class Local3<T1> {
fun foo(p: Int) { }
}
Local3<Int>().foo(p)
}
}
}
}
class Cl0<U0> {
fun <U1> func1() {
fun <U2> func2() {
class Cl1<U3>{
fun fn() {
val x = Cl1<U3>()
}
}
}
}
}
class Cl00<U0> {
class Cl01<U1>{
fun fn() {
val x = Cl01<U1>()
}
}
}
fun fn1() {
class X {}
}
fun fn2() = object { }