xref: /aosp_15_r20/external/dokka/test/playground.kt (revision 1b2d298c530bf0473cc943e8414a5ff577a994bc)
1*1b2d298cSOwner Cleanup Bot // this file is not included in sources or tests, you can play with it for debug purposes
2*1b2d298cSOwner Cleanup Bot // Console run configuration will analyse it and provide lots of debug output
3*1b2d298cSOwner Cleanup Bot package dokka.playground
4*1b2d298cSOwner Cleanup Bot 
topLevelFunctionnull5*1b2d298cSOwner Cleanup Bot fun topLevelFunction() {
6*1b2d298cSOwner Cleanup Bot }
7*1b2d298cSOwner Cleanup Bot 
8*1b2d298cSOwner Cleanup Bot val topLevelConstantValue = "Hello"
9*1b2d298cSOwner Cleanup Bot 
10*1b2d298cSOwner Cleanup Bot val topLevelValue: String
11*1b2d298cSOwner Cleanup Bot     get() = "Bye bye"
12*1b2d298cSOwner Cleanup Bot 
13*1b2d298cSOwner Cleanup Bot var topLevelVariable: String
14*1b2d298cSOwner Cleanup Bot     get() = "Modify me!"
15*1b2d298cSOwner Cleanup Bot     set(value) {
16*1b2d298cSOwner Cleanup Bot     }
17*1b2d298cSOwner Cleanup Bot 
18*1b2d298cSOwner Cleanup Bot /**
19*1b2d298cSOwner Cleanup Bot  * This is a class
20*1b2d298cSOwner Cleanup Bot  */
21*1b2d298cSOwner Cleanup Bot class Class {
memberFunctionnull22*1b2d298cSOwner Cleanup Bot     fun memberFunction() {
23*1b2d298cSOwner Cleanup Bot     }
24*1b2d298cSOwner Cleanup Bot 
25*1b2d298cSOwner Cleanup Bot     val memberValue = "Member"
26*1b2d298cSOwner Cleanup Bot }
27*1b2d298cSOwner Cleanup Bot 
28*1b2d298cSOwner Cleanup Bot /**
29*1b2d298cSOwner Cleanup Bot  * This is a class with constructor and space after doc
30*1b2d298cSOwner Cleanup Bot  */
31*1b2d298cSOwner Cleanup Bot 
32*1b2d298cSOwner Cleanup Bot class ClassWithConstructor(
33*1b2d298cSOwner Cleanup Bot         /** Doc at parameter */ val name: Class)
34*1b2d298cSOwner Cleanup Bot 
35*1b2d298cSOwner Cleanup Bot /**
36*1b2d298cSOwner Cleanup Bot  * This is data class with constructor and two properties
37*1b2d298cSOwner Cleanup Bot  * Also look at [Employee]
38*1b2d298cSOwner Cleanup Bot  *
39*1b2d298cSOwner Cleanup Bot  * $name Person's name
40*1b2d298cSOwner Cleanup Bot  * $age Person's age
41*1b2d298cSOwner Cleanup Bot  *
42*1b2d298cSOwner Cleanup Bot  */
43*1b2d298cSOwner Cleanup Bot data class Person(val name: ClassWithConstructor, val age: Int) {}
44*1b2d298cSOwner Cleanup Bot 
45*1b2d298cSOwner Cleanup Bot data class Employee(val name: ClassWithConstructor, val age: Int) {}
46*1b2d298cSOwner Cleanup Bot 
<lambda>null47*1b2d298cSOwner Cleanup Bot object Object {
48*1b2d298cSOwner Cleanup Bot     throws(javaClass<IllegalArgumentException>())
49*1b2d298cSOwner Cleanup Bot     fun objectFunction() {
50*1b2d298cSOwner Cleanup Bot     }
51*1b2d298cSOwner Cleanup Bot 
52*1b2d298cSOwner Cleanup Bot     val objectValue: String
53*1b2d298cSOwner Cleanup Bot             /** one line getter doc */
54*1b2d298cSOwner Cleanup Bot         get() = "Member"
55*1b2d298cSOwner Cleanup Bot 
56*1b2d298cSOwner Cleanup Bot     public val String.valueWithReceiver: Int
57*1b2d298cSOwner Cleanup Bot         get() = 1
58*1b2d298cSOwner Cleanup Bot 
59*1b2d298cSOwner Cleanup Bot }
60*1b2d298cSOwner Cleanup Bot 
61*1b2d298cSOwner Cleanup Bot enum class Color(r: Int, g: Int, b: Int) {
62*1b2d298cSOwner Cleanup Bot     Red : Color(100,0,0)
63*1b2d298cSOwner Cleanup Bot     Green : Color(0,100,0)
64*1b2d298cSOwner Cleanup Bot     Blue : Color(0,0,100)
65*1b2d298cSOwner Cleanup Bot }
66*1b2d298cSOwner Cleanup Bot 
67*1b2d298cSOwner Cleanup Bot class OuterClass {
68*1b2d298cSOwner Cleanup Bot 
69*1b2d298cSOwner Cleanup Bot     /**
70*1b2d298cSOwner Cleanup Bot      * $T type of the item
71*1b2d298cSOwner Cleanup Bot      */
72*1b2d298cSOwner Cleanup Bot     class NestedClass<T> {
nestedClassFunctionnull73*1b2d298cSOwner Cleanup Bot         fun nestedClassFunction(item: T) {
74*1b2d298cSOwner Cleanup Bot         }
75*1b2d298cSOwner Cleanup Bot 
functionWithReceivernull76*1b2d298cSOwner Cleanup Bot         fun String.functionWithReceiver(): Int = 1
77*1b2d298cSOwner Cleanup Bot 
78*1b2d298cSOwner Cleanup Bot     }
79*1b2d298cSOwner Cleanup Bot 
80*1b2d298cSOwner Cleanup Bot     inner class InnerClass {
81*1b2d298cSOwner Cleanup Bot         open fun innerClassFunction<
82*1b2d298cSOwner Cleanup Bot                 /** doc for R1 type param */
83*1b2d298cSOwner Cleanup Bot                 R1,
84*1b2d298cSOwner Cleanup Bot                 /** doc for R2 type param */
85*1b2d298cSOwner Cleanup Bot                 R2
86*1b2d298cSOwner Cleanup Bot                 >() {
87*1b2d298cSOwner Cleanup Bot         }
88*1b2d298cSOwner Cleanup Bot     }
89*1b2d298cSOwner Cleanup Bot 
90*1b2d298cSOwner Cleanup Bot     object NestedObject {
nestedObjectFunctionnull91*1b2d298cSOwner Cleanup Bot         protected open fun nestedObjectFunction() {
92*1b2d298cSOwner Cleanup Bot         }
93*1b2d298cSOwner Cleanup Bot     }
94*1b2d298cSOwner Cleanup Bot }
95*1b2d298cSOwner Cleanup Bot 
96*1b2d298cSOwner Cleanup Bot trait Interface {
workernull97*1b2d298cSOwner Cleanup Bot     fun worker()
98*1b2d298cSOwner Cleanup Bot     val extra: String
99*1b2d298cSOwner Cleanup Bot }