1*af87fb4bSXin Li /* 2*af87fb4bSXin Li * Copyright 2020 Google LLC 3*af87fb4bSXin Li * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. 4*af87fb4bSXin Li * 5*af87fb4bSXin Li * Licensed under the Apache License, Version 2.0 (the "License"); 6*af87fb4bSXin Li * you may not use this file except in compliance with the License. 7*af87fb4bSXin Li * You may obtain a copy of the License at 8*af87fb4bSXin Li * 9*af87fb4bSXin Li * http://www.apache.org/licenses/LICENSE-2.0 10*af87fb4bSXin Li * 11*af87fb4bSXin Li * Unless required by applicable law or agreed to in writing, software 12*af87fb4bSXin Li * distributed under the License is distributed on an "AS IS" BASIS, 13*af87fb4bSXin Li * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*af87fb4bSXin Li * See the License for the specific language governing permissions and 15*af87fb4bSXin Li * limitations under the License. 16*af87fb4bSXin Li */ 17*af87fb4bSXin Li 18*af87fb4bSXin Li // TEST PROCESSOR: DocStringProcessor 19*af87fb4bSXin Li // EXPECTED: 20*af87fb4bSXin Li // <init>: \n This is a java doc\n\n This is a second line\n\n more lines\n 21*af87fb4bSXin Li // <init>: \n inner class\n 22*af87fb4bSXin Li // <init>: \n nest class\n 23*af87fb4bSXin Li // <init>: \n top level class\n\n doc can have multiple lines\n\n third non-empty line\n 24*af87fb4bSXin Li // Inner: \n inner class\n 25*af87fb4bSXin Li // JavaSrc: \n This is a java doc\n\n This is a second line\n\n more lines\n 26*af87fb4bSXin Li // Nested: \n nest class\n 27*af87fb4bSXin Li // TopClass: \n top level class\n\n doc can have multiple lines\n\n third non-empty line\n 28*af87fb4bSXin Li // f1: \n top level function\n 29*af87fb4bSXin Li // f2: \n member function\n 30*af87fb4bSXin Li // foo: \n\n\n member function\n\n 31*af87fb4bSXin Li // j1: \n field\n 32*af87fb4bSXin Li // j2: null 33*af87fb4bSXin Li // j3: null 34*af87fb4bSXin Li // v1: \n\n top level property\n\n 35*af87fb4bSXin Li // v2: Irregular doc comment 1 36*af87fb4bSXin Li // v3: \n Irregular doc comment 2 37*af87fb4bSXin Li // v4: Irregular doc comment 3 *\n 38*af87fb4bSXin Li // v5: \n owned doc comment\n 39*af87fb4bSXin Li // v6: null 40*af87fb4bSXin Li // v7: null 41*af87fb4bSXin Li // v8: \n member property\n 42*af87fb4bSXin Li // END 43*af87fb4bSXin Li // FILE: KotlinSrc.kt 44*af87fb4bSXin Li 45*af87fb4bSXin Li /** 46*af87fb4bSXin Li * top level function 47*af87fb4bSXin Li */ f1null48*af87fb4bSXin Lifun f1() = 0 49*af87fb4bSXin Li 50*af87fb4bSXin Li /** 51*af87fb4bSXin Li * 52*af87fb4bSXin Li * top level property 53*af87fb4bSXin Li * 54*af87fb4bSXin Li */ 55*af87fb4bSXin Li val v1 = 0 56*af87fb4bSXin Li 57*af87fb4bSXin Li 58*af87fb4bSXin Li /** * Irregular doc comment 1***/ 59*af87fb4bSXin Li val v2 = 0 60*af87fb4bSXin Li 61*af87fb4bSXin Li /** 62*af87fb4bSXin Li * Irregular doc comment 2*/ 63*af87fb4bSXin Li val v3 = 0 64*af87fb4bSXin Li 65*af87fb4bSXin Li /** Irregular doc comment 3 * 66*af87fb4bSXin Li */ 67*af87fb4bSXin Li val v4 = 0 68*af87fb4bSXin Li 69*af87fb4bSXin Li /** 70*af87fb4bSXin Li * unassociated doc comment 71*af87fb4bSXin Li */ 72*af87fb4bSXin Li /** 73*af87fb4bSXin Li * owned doc comment 74*af87fb4bSXin Li */ 75*af87fb4bSXin Li val v5 = 0 76*af87fb4bSXin Li 77*af87fb4bSXin Li /* Not doc comment 1 */ 78*af87fb4bSXin Li val v6 = 0 79*af87fb4bSXin Li 80*af87fb4bSXin Li // Not doc comment 2 81*af87fb4bSXin Li val v7 = 0 82*af87fb4bSXin Li 83*af87fb4bSXin Li /** 84*af87fb4bSXin Li * top level class 85*af87fb4bSXin Li * 86*af87fb4bSXin Li * doc can have multiple lines 87*af87fb4bSXin Li * 88*af87fb4bSXin Li * third non-empty line 89*af87fb4bSXin Li */ 90*af87fb4bSXin Li class TopClass { 91*af87fb4bSXin Li /** 92*af87fb4bSXin Li * nest class 93*af87fb4bSXin Li */ 94*af87fb4bSXin Li class Nested 95*af87fb4bSXin Li 96*af87fb4bSXin Li /** 97*af87fb4bSXin Li * inner class 98*af87fb4bSXin Li */ 99*af87fb4bSXin Li class Inner 100*af87fb4bSXin Li 101*af87fb4bSXin Li /** 102*af87fb4bSXin Li * member function 103*af87fb4bSXin Li */ 104*af87fb4bSXin Li fun f2() = 0 105*af87fb4bSXin Li 106*af87fb4bSXin Li /** 107*af87fb4bSXin Li * member property 108*af87fb4bSXin Li */ 109*af87fb4bSXin Li val v8 = 0 110*af87fb4bSXin Li } 111*af87fb4bSXin Li 112*af87fb4bSXin Li // FILE: JavaSrc.java 113*af87fb4bSXin Li /** 114*af87fb4bSXin Li * This is a java doc 115*af87fb4bSXin Li * 116*af87fb4bSXin Li * This is a second line 117*af87fb4bSXin Li * 118*af87fb4bSXin Li * more lines 119*af87fb4bSXin Li */ 120*af87fb4bSXin Li class JavaSrc { 121*af87fb4bSXin Li /** 122*af87fb4bSXin Li * 123*af87fb4bSXin Li * 124*af87fb4bSXin Li * member function 125*af87fb4bSXin Li * 126*af87fb4bSXin Li */ 127*af87fb4bSXin Li int foo() { 128*af87fb4bSXin Li return 0; 129*af87fb4bSXin Li } 130*af87fb4bSXin Li 131*af87fb4bSXin Li /** 132*af87fb4bSXin Li * field 133*af87fb4bSXin Li */ 134*af87fb4bSXin Li int j1 = 0; 135*af87fb4bSXin Li 136*af87fb4bSXin Li // Not a doc 137*af87fb4bSXin Li int j2 = 0; 138*af87fb4bSXin Li 139*af87fb4bSXin Li /* Not a doc */ 140*af87fb4bSXin Li int j3 = 0; 141*af87fb4bSXin Li } 142