Moved tests
that are used both for codegen & diagnostics to codegen/box/diagnostics
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
tailRecursive fun test(x : Int = 0, e : Any = "a") {
|
||||
if (!e.equals("a")) {
|
||||
throw IllegalArgumentException()
|
||||
}
|
||||
if (x > 0) {
|
||||
test(x - 1)
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
test(100000)
|
||||
return "OK"
|
||||
}
|
||||
+231
@@ -0,0 +1,231 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@3['Exception'] {
|
||||
typeConstructor = LazyJavaClassTypeConstructor@4['Exception']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@5['IllegalArgumentException'] {
|
||||
constructors = ArrayList@6[4] { JavaConstructorDescriptor@7['<init>'], JavaConstructorDescriptor@8['<init>'], JavaConstructorDescriptor@9['<init>'], ... } // through LazyJavaClassMemberScope@10
|
||||
defaultType = JetTypeImpl@11['IllegalArgumentException']
|
||||
functionTypeForSamInterface = null
|
||||
typeConstructor = LazyJavaClassTypeConstructor@12['IllegalArgumentException']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@13['RuntimeException'] {
|
||||
typeConstructor = LazyJavaClassTypeConstructor@14['RuntimeException']
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@4['Exception'] {
|
||||
parameters = ArrayList@15[empty]
|
||||
supertypes = ArrayList@16[1] { LazyJavaClassifierType@17['Throwable'] }
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@12['IllegalArgumentException'] {
|
||||
parameters = ArrayList@18[empty]
|
||||
supertypes = ArrayList@19[1] { LazyJavaClassifierType@20['RuntimeException'] }
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@14['RuntimeException'] {
|
||||
parameters = ArrayList@21[empty]
|
||||
supertypes = ArrayList@22[1] { LazyJavaClassifierType@23['Exception'] }
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@23['Exception'] {
|
||||
arguments = ArrayList@24[empty]
|
||||
classifier = JavaClassImpl@25['Exception']
|
||||
typeConstructor = LazyJavaClassTypeConstructor@4['Exception']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@20['RuntimeException'] {
|
||||
arguments = ArrayList@26[empty]
|
||||
classifier = JavaClassImpl@27['RuntimeException']
|
||||
typeConstructor = LazyJavaClassTypeConstructor@14['RuntimeException']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@28['String'] {
|
||||
arguments = ArrayList@29[empty]
|
||||
classifier = JavaClassImpl@30['String']
|
||||
nullable = 'false': Boolean@31
|
||||
typeConstructor = DeserializedClassTypeConstructor@32
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@33['String'] {
|
||||
arguments = ArrayList@34[empty]
|
||||
classifier = JavaClassImpl@35['String']
|
||||
nullable = 'false': Boolean@31
|
||||
typeConstructor = DeserializedClassTypeConstructor@32
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@36['String'] {
|
||||
arguments = ArrayList@37[empty]
|
||||
classifier = JavaClassImpl@35['String']
|
||||
nullable = 'true': Boolean@38
|
||||
typeConstructor = DeserializedClassTypeConstructor@32
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@39['String'] {
|
||||
arguments = ArrayList@40[empty]
|
||||
classifier = JavaClassImpl@30['String']
|
||||
nullable = 'true': Boolean@38
|
||||
typeConstructor = DeserializedClassTypeConstructor@32
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@41['Throwable'] {
|
||||
arguments = ArrayList@42[empty]
|
||||
classifier = JavaClassImpl@43['Throwable']
|
||||
nullable = 'false': Boolean@31
|
||||
typeConstructor = DeserializedClassTypeConstructor@44
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@45['Throwable'] {
|
||||
arguments = ArrayList@46[empty]
|
||||
classifier = JavaClassImpl@47['Throwable']
|
||||
nullable = 'false': Boolean@31
|
||||
typeConstructor = DeserializedClassTypeConstructor@44
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@48['Throwable'] {
|
||||
arguments = ArrayList@49[empty]
|
||||
classifier = JavaClassImpl@47['Throwable']
|
||||
nullable = 'true': Boolean@38
|
||||
typeConstructor = DeserializedClassTypeConstructor@44
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@50['Throwable'] {
|
||||
arguments = ArrayList@51[empty]
|
||||
classifier = JavaClassImpl@43['Throwable']
|
||||
nullable = 'true': Boolean@38
|
||||
typeConstructor = DeserializedClassTypeConstructor@44
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@17['Throwable'] {
|
||||
arguments = ArrayList@52[empty]
|
||||
classifier = JavaClassImpl@53['Throwable']
|
||||
typeConstructor = DeserializedClassTypeConstructor@44
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@54 {
|
||||
packageFragments('<root>': FqName@55) = LazyJavaPackageFragment@56['<root>']
|
||||
packageFragments('Any': FqName@57) = null
|
||||
packageFragments('Int': FqName@58) = null
|
||||
packageFragments('String': FqName@59) = null
|
||||
packageFragments('java': FqName@60) = LazyJavaPackageFragment@61['java']
|
||||
packageFragments('java.lang': FqName@62) = LazyJavaPackageFragment@63['lang']
|
||||
packageFragments('java.lang.Any': FqName@64) = null
|
||||
packageFragments('java.lang.Int': FqName@65) = null
|
||||
packageFragments('java.lang.String': FqName@66) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@67) = null
|
||||
packageFragments('kotlin': FqName@68) = null
|
||||
packageFragments('kotlin.Any': FqName@69) = null
|
||||
packageFragments('kotlin.Int': FqName@70) = null
|
||||
packageFragments('kotlin.String': FqName@71) = null
|
||||
packageFragments('kotlin.io': FqName@72) = null
|
||||
packageFragments('kotlin.jvm': FqName@73) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@74) = null
|
||||
packageFragments('tailRecursive': FqName@75) = null
|
||||
topLevelClasses(JavaClassImpl@25['Exception']) = LazyJavaClassDescriptor@3['Exception']
|
||||
topLevelClasses(JavaClassImpl@76['IllegalArgumentException']) = LazyJavaClassDescriptor@5['IllegalArgumentException']
|
||||
topLevelClasses(JavaClassImpl@27['RuntimeException']) = LazyJavaClassDescriptor@13['RuntimeException']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@56['<root>'] {
|
||||
classes('Any': Name@77) = null // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
classes('IllegalArgumentException': Name@79) = null // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
classes('Int': Name@80) = null // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
classes('String': Name@81) = null // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
classes('tailRecursive': Name@82) = null // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
classes('test': Name@83) = null // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
deserializedPackageScope = Empty@84 // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
functions('IllegalArgumentException': Name@79) = EmptyList@85[empty] // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
functions('test': Name@83) = EmptyList@85[empty] // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
memberIndex = computeMemberIndex$1@86 // through LazyPackageFragmentScopeForJavaPackage@78
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@61['java'] {
|
||||
classes('lang': Name@87) = null // through LazyPackageFragmentScopeForJavaPackage@88
|
||||
deserializedPackageScope = Empty@84 // through LazyPackageFragmentScopeForJavaPackage@88
|
||||
functions('lang': Name@89) = EmptyList@85[empty] // through LazyPackageFragmentScopeForJavaPackage@88
|
||||
memberIndex = computeMemberIndex$1@90 // through LazyPackageFragmentScopeForJavaPackage@88
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@63['lang'] {
|
||||
classes('IllegalArgumentException': Name@79) = LazyJavaClassDescriptor@5['IllegalArgumentException'] // through LazyPackageFragmentScopeForJavaPackage@91
|
||||
classes('test': Name@83) = null // through LazyPackageFragmentScopeForJavaPackage@91
|
||||
deserializedPackageScope = Empty@84 // through LazyPackageFragmentScopeForJavaPackage@91
|
||||
functions('IllegalArgumentException': Name@79) = EmptyList@85[empty] // through LazyPackageFragmentScopeForJavaPackage@91
|
||||
functions('test': Name@83) = EmptyList@85[empty] // through LazyPackageFragmentScopeForJavaPackage@91
|
||||
memberIndex = computeMemberIndex$1@92 // through LazyPackageFragmentScopeForJavaPackage@91
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@93 {
|
||||
<name not found> = ArrayList@94[1] { ResolutionCandidate@95 }
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@96 {
|
||||
<name not found> = ArrayList@97[1] { ResolutionCandidate@98 }
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@99 {
|
||||
<name not found> = ArrayList@100[1] { ResolutionCandidate@101 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@102 {
|
||||
<name not found> = ArrayList@103[1] { ResolutionCandidate@104 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@105 {
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@107 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@108 {
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@110 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@111 {
|
||||
<name not found> = ArrayList@112[1] { ResolutionCandidate@113 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@114 {
|
||||
<name not found> = ArrayList@115[1] { ResolutionCandidate@116 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@117 {
|
||||
<name not found> = ArrayList@118[4] { ResolutionCandidate@119, ResolutionCandidate@120, ResolutionCandidate@121, ... }
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@122 {
|
||||
<name not found> = ArrayList@123[7] { ResolutionCandidate@124, ResolutionCandidate@125, ResolutionCandidate@126, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@127 {
|
||||
<name not found> = ArrayList@128[8] { ResolutionCandidate@129, ResolutionCandidate@130, ResolutionCandidate@131, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@132[1] { ResolutionCandidate@113 }
|
||||
<name not found> = ArrayList@133[1] { ResolutionCandidate@107 }
|
||||
<name not found> = ArrayList@134[1] { ResolutionCandidate@104 }
|
||||
<name not found> = ArrayList@135[1] { ResolutionCandidate@101 }
|
||||
<name not found> = ArrayList@136[1] { ResolutionCandidate@110 }
|
||||
<name not found> = ArrayList@137[1] { ResolutionCandidate@116 }
|
||||
<name not found> = ArrayList@138[1] { ResolutionCandidate@95 }
|
||||
<name not found> = ArrayList@139[1] { ResolutionCandidate@98 }
|
||||
<name not found> = ArrayList@140[4] { ResolutionCandidate@119, ResolutionCandidate@120, ResolutionCandidate@121, ... }
|
||||
<name not found> = ArrayList@141[7] { ResolutionCandidate@124, ResolutionCandidate@125, ResolutionCandidate@126, ... }
|
||||
<name not found> = ArrayList@142[8] { ResolutionCandidate@129, ResolutionCandidate@130, ResolutionCandidate@131, ... }
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
<name not found> = EmptyList@85[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int = ..., /*1*/ e: kotlin.Any = ...): kotlin.Unit
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
tailRecursive fun Int.foo(x: Int) {
|
||||
if (x == 0) return
|
||||
return 1.foo(x - 1)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
1.foo(1000000)
|
||||
return "OK"
|
||||
}
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('foo': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('foo': Name@25) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('foo': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('foo': Name@25) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[8] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@59[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@60[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@62[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@63[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@65[8] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun kotlin.Int.foo(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun noTails()<!> {
|
||||
// nothing here
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
noTails()
|
||||
return "OK"
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('String': FqName@6) = null
|
||||
packageFragments('java': FqName@7) = LazyJavaPackageFragment@8['java']
|
||||
packageFragments('java.lang': FqName@9) = LazyJavaPackageFragment@10['lang']
|
||||
packageFragments('java.lang.String': FqName@11) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@12) = null
|
||||
packageFragments('kotlin': FqName@13) = null
|
||||
packageFragments('kotlin.String': FqName@14) = null
|
||||
packageFragments('kotlin.io': FqName@15) = null
|
||||
packageFragments('kotlin.jvm': FqName@16) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@17) = null
|
||||
packageFragments('tailRecursive': FqName@18) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('String': Name@19) = null // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
classes('noTails': Name@21) = null // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
classes('tailRecursive': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
deserializedPackageScope = Empty@23 // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
functions('noTails': Name@21) = EmptyList@24[empty] // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
memberIndex = computeMemberIndex$1@25 // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@8['java'] {
|
||||
classes('lang': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
deserializedPackageScope = Empty@23 // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
functions('lang': Name@28) = EmptyList@24[empty] // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@10['lang'] {
|
||||
classes('noTails': Name@21) = null // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
deserializedPackageScope = Empty@23 // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
functions('noTails': Name@21) = EmptyList@24[empty] // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
memberIndex = computeMemberIndex$1@31 // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@32 {
|
||||
<name not found> = ArrayList@33[1] { ResolutionCandidate@34 }
|
||||
<name not found> = EmptyList@24[empty]
|
||||
<name not found> = EmptyList@24[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@35 {
|
||||
<name not found> = ArrayList@36[1] { ResolutionCandidate@37 }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@38[1] { ResolutionCandidate@37 }
|
||||
<name not found> = ArrayList@39[1] { ResolutionCandidate@34 }
|
||||
<name not found> = EmptyList@24[empty]
|
||||
<name not found> = EmptyList@24[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun noTails(): kotlin.Unit
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
tailRecursive fun badTails(x : Int) : Int {
|
||||
if (x < 50 && x != 10 && x > 0) {
|
||||
return 1 + <!NON_TAIL_RECURSIVE_CALL!>badTails<!>(x - 1)
|
||||
}
|
||||
else if (x == 10) {
|
||||
[suppress("NON_TAIL_RECURSIVE_CALL")]
|
||||
return 1 + badTails(x - 1)
|
||||
} else if (x >= 50) {
|
||||
return badTails(x - 1)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
badTails(1000000)
|
||||
return "OK"
|
||||
}
|
||||
+205
@@ -0,0 +1,205 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['suppress']
|
||||
valueArguments(ValueParameterDescriptorImpl@3['names']) = ArrayValue@4
|
||||
}
|
||||
|
||||
LazyAnnotationDescriptor@5 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@6
|
||||
type = JetTypeImpl@7['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@8 {
|
||||
packageFragments('<root>': FqName@9) = LazyJavaPackageFragment@10['<root>']
|
||||
packageFragments('Int': FqName@11) = null
|
||||
packageFragments('String': FqName@12) = null
|
||||
packageFragments('java': FqName@13) = LazyJavaPackageFragment@14['java']
|
||||
packageFragments('java.lang': FqName@15) = LazyJavaPackageFragment@16['lang']
|
||||
packageFragments('java.lang.Int': FqName@17) = null
|
||||
packageFragments('java.lang.String': FqName@18) = null
|
||||
packageFragments('java.lang.suppress': FqName@19) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@20) = null
|
||||
packageFragments('kotlin': FqName@21) = null
|
||||
packageFragments('kotlin.Int': FqName@22) = null
|
||||
packageFragments('kotlin.String': FqName@23) = null
|
||||
packageFragments('kotlin.io': FqName@24) = null
|
||||
packageFragments('kotlin.jvm': FqName@25) = null
|
||||
packageFragments('kotlin.suppress': FqName@26) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@27) = null
|
||||
packageFragments('suppress': FqName@28) = null
|
||||
packageFragments('tailRecursive': FqName@29) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@10['<root>'] {
|
||||
classes('Int': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
classes('String': Name@32) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
classes('badTails': Name@33) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
classes('suppress': Name@34) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
classes('tailRecursive': Name@35) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@36 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('badTails': Name@33) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@38 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@14['java'] {
|
||||
classes('lang': Name@39) = null // through LazyPackageFragmentScopeForJavaPackage@40
|
||||
deserializedPackageScope = Empty@36 // through LazyPackageFragmentScopeForJavaPackage@40
|
||||
functions('lang': Name@41) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@40
|
||||
memberIndex = computeMemberIndex$1@42 // through LazyPackageFragmentScopeForJavaPackage@40
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@16['lang'] {
|
||||
classes('badTails': Name@33) = null // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
deserializedPackageScope = Empty@36 // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
functions('badTails': Name@33) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
memberIndex = computeMemberIndex$1@44 // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@80 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@81 {
|
||||
<name not found> = ArrayList@82[1] { ResolutionCandidate@83 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@84 {
|
||||
<name not found> = ArrayList@85[1] { ResolutionCandidate@86 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@87 {
|
||||
<name not found> = ArrayList@88[1] { ResolutionCandidate@89 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@90 {
|
||||
<name not found> = ArrayList@91[1] { ResolutionCandidate@92 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@93 {
|
||||
<name not found> = ArrayList@94[1] { ResolutionCandidate@95 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@96 {
|
||||
<name not found> = ArrayList@97[1] { ResolutionCandidate@98 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@99 {
|
||||
<name not found> = ArrayList@100[7] { ResolutionCandidate@101, ResolutionCandidate@102, ResolutionCandidate@103, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@104 {
|
||||
<name not found> = ArrayList@105[7] { ResolutionCandidate@106, ResolutionCandidate@107, ResolutionCandidate@108, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@109 {
|
||||
<name not found> = ArrayList@110[7] { ResolutionCandidate@111, ResolutionCandidate@112, ResolutionCandidate@113, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@114 {
|
||||
<name not found> = ArrayList@115[8] { ResolutionCandidate@116, ResolutionCandidate@117, ResolutionCandidate@118, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@119 {
|
||||
<name not found> = ArrayList@120[8] { ResolutionCandidate@121, ResolutionCandidate@122, ResolutionCandidate@123, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@124 {
|
||||
<name not found> = ArrayList@125[8] { ResolutionCandidate@126, ResolutionCandidate@127, ResolutionCandidate@128, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@129 {
|
||||
<name not found> = ArrayList@130[8] { ResolutionCandidate@131, ResolutionCandidate@132, ResolutionCandidate@133, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@134 {
|
||||
<name not found> = ArrayList@135[8] { ResolutionCandidate@136, ResolutionCandidate@137, ResolutionCandidate@138, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@139[1] { ResolutionCandidate@83 }
|
||||
<name not found> = ArrayList@140[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@141[1] { ResolutionCandidate@95 }
|
||||
<name not found> = ArrayList@142[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@143[1] { ResolutionCandidate@80 }
|
||||
<name not found> = ArrayList@144[1] { ResolutionCandidate@89 }
|
||||
<name not found> = ArrayList@145[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@146[1] { ResolutionCandidate@92 }
|
||||
<name not found> = ArrayList@147[1] { ResolutionCandidate@86 }
|
||||
<name not found> = ArrayList@148[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@149[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@150[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@151[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@152[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@153[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@154[1] { ResolutionCandidate@98 }
|
||||
<name not found> = ArrayList@155[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@156[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@157[7] { ResolutionCandidate@111, ResolutionCandidate@112, ResolutionCandidate@113, ... }
|
||||
<name not found> = ArrayList@158[7] { ResolutionCandidate@101, ResolutionCandidate@102, ResolutionCandidate@103, ... }
|
||||
<name not found> = ArrayList@159[7] { ResolutionCandidate@106, ResolutionCandidate@107, ResolutionCandidate@108, ... }
|
||||
<name not found> = ArrayList@160[8] { ResolutionCandidate@121, ResolutionCandidate@122, ResolutionCandidate@123, ... }
|
||||
<name not found> = ArrayList@161[8] { ResolutionCandidate@126, ResolutionCandidate@127, ResolutionCandidate@128, ... }
|
||||
<name not found> = ArrayList@162[8] { ResolutionCandidate@116, ResolutionCandidate@117, ResolutionCandidate@118, ... }
|
||||
<name not found> = ArrayList@163[8] { ResolutionCandidate@131, ResolutionCandidate@132, ResolutionCandidate@133, ... }
|
||||
<name not found> = ArrayList@164[8] { ResolutionCandidate@136, ResolutionCandidate@137, ResolutionCandidate@138, ... }
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
<name not found> = EmptyList@37[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
kotlin.tailRecursive() internal fun badTails(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
internal fun box(): kotlin.String
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
fun withoutAnnotation(x : Int) : Int {
|
||||
if (x > 0) {
|
||||
return 1 + withoutAnnotation(x - 1)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val r = withoutAnnotation(10)
|
||||
if (r == 10) return "OK"
|
||||
return "Fail $r"
|
||||
}
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
DescriptorResolver@0 {
|
||||
<name not found> = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@1 {
|
||||
packageFragments('<root>': FqName@2) = LazyJavaPackageFragment@3['<root>']
|
||||
packageFragments('Int': FqName@4) = null
|
||||
packageFragments('String': FqName@5) = null
|
||||
packageFragments('java': FqName@6) = LazyJavaPackageFragment@7['java']
|
||||
packageFragments('java.lang': FqName@8) = LazyJavaPackageFragment@9['lang']
|
||||
packageFragments('java.lang.Int': FqName@10) = null
|
||||
packageFragments('java.lang.String': FqName@11) = null
|
||||
packageFragments('kotlin': FqName@12) = null
|
||||
packageFragments('kotlin.Int': FqName@13) = null
|
||||
packageFragments('kotlin.String': FqName@14) = null
|
||||
packageFragments('kotlin.io': FqName@15) = null
|
||||
packageFragments('kotlin.jvm': FqName@16) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@3['<root>'] {
|
||||
classes('Int': Name@17) = null // through LazyPackageFragmentScopeForJavaPackage@18
|
||||
classes('String': Name@19) = null // through LazyPackageFragmentScopeForJavaPackage@18
|
||||
classes('withoutAnnotation': Name@20) = null // through LazyPackageFragmentScopeForJavaPackage@18
|
||||
deserializedPackageScope = Empty@21 // through LazyPackageFragmentScopeForJavaPackage@18
|
||||
functions('withoutAnnotation': Name@20) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@18
|
||||
memberIndex = computeMemberIndex$1@23 // through LazyPackageFragmentScopeForJavaPackage@18
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@7['java'] {
|
||||
classes('lang': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@25
|
||||
deserializedPackageScope = Empty@21 // through LazyPackageFragmentScopeForJavaPackage@25
|
||||
functions('lang': Name@26) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@25
|
||||
memberIndex = computeMemberIndex$1@27 // through LazyPackageFragmentScopeForJavaPackage@25
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['lang'] {
|
||||
classes('withoutAnnotation': Name@20) = null // through LazyPackageFragmentScopeForJavaPackage@28
|
||||
deserializedPackageScope = Empty@21 // through LazyPackageFragmentScopeForJavaPackage@28
|
||||
functions('withoutAnnotation': Name@20) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@28
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@28
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@30 {
|
||||
<name not found> = ArrayList@31[1] { ResolutionCandidate@32 }
|
||||
<name not found> = EmptyList@22[empty]
|
||||
<name not found> = EmptyList@22[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@33 {
|
||||
<name not found> = ArrayList@34[1] { ResolutionCandidate@35 }
|
||||
<name not found> = EmptyList@22[empty]
|
||||
<name not found> = EmptyList@22[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[7] { ResolutionCandidate@53, ResolutionCandidate@54, ResolutionCandidate@55, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@56 {
|
||||
<name not found> = ArrayList@57[8] { ResolutionCandidate@58, ResolutionCandidate@59, ResolutionCandidate@60, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@61 {
|
||||
<name not found> = ArrayList@62[8] { ResolutionCandidate@63, ResolutionCandidate@64, ResolutionCandidate@65, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@66[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@32 }
|
||||
<name not found> = ArrayList@69[1] { ResolutionCandidate@35 }
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@71[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@72[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@73[7] { ResolutionCandidate@53, ResolutionCandidate@54, ResolutionCandidate@55, ... }
|
||||
<name not found> = ArrayList@74[8] { ResolutionCandidate@58, ResolutionCandidate@59, ResolutionCandidate@60, ... }
|
||||
<name not found> = ArrayList@75[8] { ResolutionCandidate@63, ResolutionCandidate@64, ResolutionCandidate@65, ... }
|
||||
<name not found> = EmptyList@22[empty]
|
||||
<name not found> = EmptyList@22[empty]
|
||||
<name not found> = EmptyList@22[empty]
|
||||
<name not found> = EmptyList@22[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
internal fun withoutAnnotation(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,8 @@
|
||||
tailRecursive fun Int.test(x : Int) : Int {
|
||||
if (this > 1) {
|
||||
return (this - 1) test x
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
fun box() : String = if (1000000.test(1000000) == 1) "OK" else "FAIL"
|
||||
@@ -0,0 +1,99 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[7] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@59 {
|
||||
<name not found> = ArrayList@60[8] { ResolutionCandidate@61, ResolutionCandidate@62, ResolutionCandidate@63, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@65[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@66[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@69[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@70[7] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
<name not found> = ArrayList@71[8] { ResolutionCandidate@61, ResolutionCandidate@62, ResolutionCandidate@63, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun kotlin.Int.test(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
tailRecursive fun Int.foo(x: Int) {
|
||||
if (x == 0) return
|
||||
val xx = x - 1
|
||||
return 1 foo xx
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
1 foo 1000000
|
||||
return "OK"
|
||||
}
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
DescriptorResolver@0 {
|
||||
<name not found> = null
|
||||
}
|
||||
|
||||
LazyAnnotationDescriptor@1 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@2
|
||||
type = JetTypeImpl@3['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@4 {
|
||||
packageFragments('<root>': FqName@5) = LazyJavaPackageFragment@6['<root>']
|
||||
packageFragments('Int': FqName@7) = null
|
||||
packageFragments('String': FqName@8) = null
|
||||
packageFragments('java': FqName@9) = LazyJavaPackageFragment@10['java']
|
||||
packageFragments('java.lang': FqName@11) = LazyJavaPackageFragment@12['lang']
|
||||
packageFragments('java.lang.Int': FqName@13) = null
|
||||
packageFragments('java.lang.String': FqName@14) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@15) = null
|
||||
packageFragments('kotlin': FqName@16) = null
|
||||
packageFragments('kotlin.Int': FqName@17) = null
|
||||
packageFragments('kotlin.String': FqName@18) = null
|
||||
packageFragments('kotlin.io': FqName@19) = null
|
||||
packageFragments('kotlin.jvm': FqName@20) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@21) = null
|
||||
packageFragments('tailRecursive': FqName@22) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@6['<root>'] {
|
||||
classes('Int': Name@23) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
classes('String': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
classes('foo': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
classes('tailRecursive': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
functions('foo': Name@26) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
memberIndex = computeMemberIndex$1@30 // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@10['java'] {
|
||||
classes('lang': Name@31) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
functions('lang': Name@33) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
memberIndex = computeMemberIndex$1@34 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@12['lang'] {
|
||||
classes('foo': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('foo': Name@26) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
memberIndex = computeMemberIndex$1@36 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@37 {
|
||||
<name not found> = ArrayList@38[1] { ResolutionCandidate@39 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@40 {
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@42 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@43 {
|
||||
<name not found> = ArrayList@44[1] { ResolutionCandidate@45 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@49 {
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@51 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@52 {
|
||||
<name not found> = ArrayList@53[1] { ResolutionCandidate@54 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@55 {
|
||||
<name not found> = ArrayList@56[1] { ResolutionCandidate@57 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@58 {
|
||||
<name not found> = ArrayList@59[8] { ResolutionCandidate@60, ResolutionCandidate@61, ResolutionCandidate@62, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@63[1] { ResolutionCandidate@51 }
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@54 }
|
||||
<name not found> = ArrayList@65[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@66[1] { ResolutionCandidate@45 }
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@57 }
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@39 }
|
||||
<name not found> = ArrayList@69[1] { ResolutionCandidate@42 }
|
||||
<name not found> = ArrayList@70[8] { ResolutionCandidate@60, ResolutionCandidate@61, ResolutionCandidate@62, ... }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun kotlin.Int.foo(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
@@ -0,0 +1,10 @@
|
||||
tailRecursive fun test(counter : Int) : Int? {
|
||||
if (counter < 0) return null
|
||||
if (counter == 0) return 777
|
||||
|
||||
return <!NON_TAIL_RECURSIVE_CALL!>test<!>(-1) ?: <!NON_TAIL_RECURSIVE_CALL!>test<!>(-2) ?: test(counter - 1)
|
||||
}
|
||||
|
||||
fun box() : String =
|
||||
if (test(100000) == 777) "OK"
|
||||
else "FAIL"
|
||||
+158
@@ -0,0 +1,158 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('equals': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('equals': Name@25) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@27) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@30 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@31) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
functions('lang': Name@33) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
memberIndex = computeMemberIndex$1@34 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('equals': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
classes('test': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('equals': Name@25) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('test': Name@27) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
memberIndex = computeMemberIndex$1@36 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@37 {
|
||||
<name not found> = ArrayList@38[1] { ResolutionCandidate@39 }
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[7] { ResolutionCandidate@80, ResolutionCandidate@81, ResolutionCandidate@82, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@83 {
|
||||
<name not found> = ArrayList@84[8] { ResolutionCandidate@85, ResolutionCandidate@86, ResolutionCandidate@87, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@88 {
|
||||
<name not found> = ArrayList@89[8] { ResolutionCandidate@90, ResolutionCandidate@91, ResolutionCandidate@92, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@93 {
|
||||
<name not found> = ArrayList@94[8] { ResolutionCandidate@95, ResolutionCandidate@96, ResolutionCandidate@97, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@98[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@99[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@100[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@101[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@102[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@103[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@104[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@105[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@108[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@39 }
|
||||
<name not found> = ArrayList@110[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@111[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@112[7] { ResolutionCandidate@80, ResolutionCandidate@81, ResolutionCandidate@82, ... }
|
||||
<name not found> = ArrayList@113[8] { ResolutionCandidate@95, ResolutionCandidate@96, ResolutionCandidate@97, ... }
|
||||
<name not found> = ArrayList@114[8] { ResolutionCandidate@90, ResolutionCandidate@91, ResolutionCandidate@92, ... }
|
||||
<name not found> = ArrayList@115[8] { ResolutionCandidate@85, ResolutionCandidate@86, ResolutionCandidate@87, ... }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ counter: kotlin.Int): kotlin.Int?
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class B {
|
||||
inner class C {
|
||||
tailRecursive fun h(counter : Int) {
|
||||
if (counter > 0) {
|
||||
this@C.h(counter - 1)
|
||||
}
|
||||
}
|
||||
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun h2(x : Any)<!> {
|
||||
this@B.h2("no recursion") // keep vigilance
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun makeC() : C = C()
|
||||
|
||||
fun h2(x : Any) {
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
B().makeC().h(1000000)
|
||||
B().makeC().h2(0)
|
||||
return "OK"
|
||||
}
|
||||
+153
@@ -0,0 +1,153 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyAnnotationDescriptor@3 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@4
|
||||
type = JetTypeImpl@5['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@6 {
|
||||
packageFragments('<root>': FqName@7) = LazyJavaPackageFragment@8['<root>']
|
||||
packageFragments('Any': FqName@9) = null
|
||||
packageFragments('B': FqName@10) = null
|
||||
packageFragments('C': FqName@11) = null
|
||||
packageFragments('Int': FqName@12) = null
|
||||
packageFragments('String': FqName@13) = null
|
||||
packageFragments('java': FqName@14) = LazyJavaPackageFragment@15['java']
|
||||
packageFragments('java.lang': FqName@16) = LazyJavaPackageFragment@17['lang']
|
||||
packageFragments('java.lang.Any': FqName@18) = null
|
||||
packageFragments('java.lang.C': FqName@19) = null
|
||||
packageFragments('java.lang.Int': FqName@20) = null
|
||||
packageFragments('java.lang.String': FqName@21) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@22) = null
|
||||
packageFragments('kotlin': FqName@23) = null
|
||||
packageFragments('kotlin.Any': FqName@24) = null
|
||||
packageFragments('kotlin.C': FqName@25) = null
|
||||
packageFragments('kotlin.Int': FqName@26) = null
|
||||
packageFragments('kotlin.String': FqName@27) = null
|
||||
packageFragments('kotlin.io': FqName@28) = null
|
||||
packageFragments('kotlin.jvm': FqName@29) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@30) = null
|
||||
packageFragments('tailRecursive': FqName@31) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@8['<root>'] {
|
||||
classes('Any': Name@32) = null // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
classes('B': Name@34) = null // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
classes('C': Name@35) = null // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
classes('Int': Name@36) = null // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
classes('String': Name@37) = null // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
classes('tailRecursive': Name@38) = null // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
deserializedPackageScope = Empty@39 // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
functions('B': Name@34) = EmptyList@40[empty] // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
functions('C': Name@35) = EmptyList@40[empty] // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
memberIndex = computeMemberIndex$1@41 // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@15['java'] {
|
||||
classes('lang': Name@42) = null // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
deserializedPackageScope = Empty@39 // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
functions('lang': Name@44) = EmptyList@40[empty] // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
memberIndex = computeMemberIndex$1@45 // through LazyPackageFragmentScopeForJavaPackage@43
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@17['lang'] {
|
||||
classes('B': Name@34) = null // through LazyPackageFragmentScopeForJavaPackage@46
|
||||
classes('C': Name@35) = null // through LazyPackageFragmentScopeForJavaPackage@46
|
||||
deserializedPackageScope = Empty@39 // through LazyPackageFragmentScopeForJavaPackage@46
|
||||
functions('B': Name@34) = EmptyList@40[empty] // through LazyPackageFragmentScopeForJavaPackage@46
|
||||
functions('C': Name@35) = EmptyList@40[empty] // through LazyPackageFragmentScopeForJavaPackage@46
|
||||
memberIndex = computeMemberIndex$1@47 // through LazyPackageFragmentScopeForJavaPackage@46
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@80 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@81 {
|
||||
<name not found> = ArrayList@82[1] { ResolutionCandidate@83 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@84 {
|
||||
<name not found> = ArrayList@85[1] { ResolutionCandidate@86 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@87 {
|
||||
<name not found> = ArrayList@88[7] { ResolutionCandidate@89, ResolutionCandidate@90, ResolutionCandidate@91, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@92 {
|
||||
<name not found> = ArrayList@93[8] { ResolutionCandidate@94, ResolutionCandidate@95, ResolutionCandidate@96, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@97[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@98[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@99[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@100[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@101[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@102[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@103[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@104[1] { ResolutionCandidate@86 }
|
||||
<name not found> = ArrayList@105[1] { ResolutionCandidate@80 }
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@83 }
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@108[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@110[7] { ResolutionCandidate@89, ResolutionCandidate@90, ResolutionCandidate@91, ... }
|
||||
<name not found> = ArrayList@111[8] { ResolutionCandidate@94, ResolutionCandidate@95, ResolutionCandidate@96, ... }
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
<name not found> = EmptyList@40[empty]
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
|
||||
internal final class B {
|
||||
public constructor B()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal final fun h2(/*0*/ x: kotlin.Any): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal final fun makeC(): B.C
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
internal final inner class C {
|
||||
public constructor C()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
kotlin.tailRecursive() internal final fun h(/*0*/ counter: kotlin.Int): kotlin.Unit
|
||||
kotlin.tailRecursive() internal final fun h2(/*0*/ x: kotlin.Any): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
tailRecursive fun test(x : Int) : Int {
|
||||
var z = if (x > 3) 3 else x
|
||||
while (z > 0) {
|
||||
if (z > 10) {
|
||||
return test(x - 1)
|
||||
}
|
||||
<!NON_TAIL_RECURSIVE_CALL!>test<!>(0)
|
||||
z = z - 1
|
||||
}
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
fun box() : String = if (test(100000) == 1) "OK" else "FAIL"
|
||||
@@ -0,0 +1,156 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[7] { ResolutionCandidate@80, ResolutionCandidate@81, ResolutionCandidate@82, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@83 {
|
||||
<name not found> = ArrayList@84[7] { ResolutionCandidate@85, ResolutionCandidate@86, ResolutionCandidate@87, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@88 {
|
||||
<name not found> = ArrayList@89[7] { ResolutionCandidate@90, ResolutionCandidate@91, ResolutionCandidate@92, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@93 {
|
||||
<name not found> = ArrayList@94[8] { ResolutionCandidate@95, ResolutionCandidate@96, ResolutionCandidate@97, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@98 {
|
||||
<name not found> = ArrayList@99[8] { ResolutionCandidate@100, ResolutionCandidate@101, ResolutionCandidate@102, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@103[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@104[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@105[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@108[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@110[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@111[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@112[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@113[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@114[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@115[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@116[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@117[7] { ResolutionCandidate@85, ResolutionCandidate@86, ResolutionCandidate@87, ... }
|
||||
<name not found> = ArrayList@118[7] { ResolutionCandidate@80, ResolutionCandidate@81, ResolutionCandidate@82, ... }
|
||||
<name not found> = ArrayList@119[7] { ResolutionCandidate@90, ResolutionCandidate@91, ResolutionCandidate@92, ... }
|
||||
<name not found> = ArrayList@120[8] { ResolutionCandidate@100, ResolutionCandidate@101, ResolutionCandidate@102, ... }
|
||||
<name not found> = ArrayList@121[8] { ResolutionCandidate@95, ResolutionCandidate@96, ResolutionCandidate@97, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,15 @@
|
||||
tailRecursive fun test(x : Int) : Int {
|
||||
if (x == 1) {
|
||||
if (x != 1) {
|
||||
<!NON_TAIL_RECURSIVE_CALL!>test<!>(0)
|
||||
return test(0)
|
||||
} else {
|
||||
return test(x + <!NON_TAIL_RECURSIVE_CALL!>test<!>(0))
|
||||
}
|
||||
} else if (x > 0) {
|
||||
return test(x - 1)
|
||||
}
|
||||
return -1
|
||||
}
|
||||
|
||||
fun box() : String = if (test(1000000) == -1) "OK" else "FAIL"
|
||||
+188
@@ -0,0 +1,188 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@80 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@81 {
|
||||
<name not found> = ArrayList@82[1] { ResolutionCandidate@83 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@84 {
|
||||
<name not found> = ArrayList@85[1] { ResolutionCandidate@86 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@87 {
|
||||
<name not found> = ArrayList@88[1] { ResolutionCandidate@89 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@90 {
|
||||
<name not found> = ArrayList@91[7] { ResolutionCandidate@92, ResolutionCandidate@93, ResolutionCandidate@94, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@95 {
|
||||
<name not found> = ArrayList@96[8] { ResolutionCandidate@97, ResolutionCandidate@98, ResolutionCandidate@99, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@100 {
|
||||
<name not found> = ArrayList@101[8] { ResolutionCandidate@102, ResolutionCandidate@103, ResolutionCandidate@104, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@105 {
|
||||
<name not found> = ArrayList@106[8] { ResolutionCandidate@107, ResolutionCandidate@108, ResolutionCandidate@109, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@110 {
|
||||
<name not found> = ArrayList@111[8] { ResolutionCandidate@112, ResolutionCandidate@113, ResolutionCandidate@114, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@115[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@116[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@117[1] { ResolutionCandidate@86 }
|
||||
<name not found> = ArrayList@118[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@119[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@120[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@121[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@122[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@123[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@124[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@125[1] { ResolutionCandidate@80 }
|
||||
<name not found> = ArrayList@126[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@127[1] { ResolutionCandidate@83 }
|
||||
<name not found> = ArrayList@128[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@129[1] { ResolutionCandidate@89 }
|
||||
<name not found> = ArrayList@130[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@131[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@132[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@133[7] { ResolutionCandidate@92, ResolutionCandidate@93, ResolutionCandidate@94, ... }
|
||||
<name not found> = ArrayList@134[8] { ResolutionCandidate@102, ResolutionCandidate@103, ResolutionCandidate@104, ... }
|
||||
<name not found> = ArrayList@135[8] { ResolutionCandidate@107, ResolutionCandidate@108, ResolutionCandidate@109, ... }
|
||||
<name not found> = ArrayList@136[8] { ResolutionCandidate@97, ResolutionCandidate@98, ResolutionCandidate@99, ... }
|
||||
<name not found> = ArrayList@137[8] { ResolutionCandidate@112, ResolutionCandidate@113, ResolutionCandidate@114, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
tailRecursive fun <T, A> Iterator<T>.foldl(acc : A, foldFunction : (e : T, acc : A) -> A) : A =
|
||||
if (!hasNext()) acc
|
||||
else foldl(foldFunction(next(), acc), foldFunction)
|
||||
|
||||
fun box() : String {
|
||||
val sum = (1..1000000).iterator().foldl(0) { (e : Int, acc : Long) ->
|
||||
acc + e
|
||||
}
|
||||
|
||||
return if (sum == 500000500000) "OK" else "FAIL: $sum"
|
||||
}
|
||||
+208
@@ -0,0 +1,208 @@
|
||||
DescriptorResolver@0 {
|
||||
<name not found> = null
|
||||
}
|
||||
|
||||
LazyAnnotationDescriptor@1 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@2
|
||||
type = JetTypeImpl@3['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@4 {
|
||||
packageFragments('<root>': FqName@5) = LazyJavaPackageFragment@6['<root>']
|
||||
packageFragments('A': FqName@7) = null
|
||||
packageFragments('Int': FqName@8) = null
|
||||
packageFragments('Iterator': FqName@9) = null
|
||||
packageFragments('Long': FqName@10) = null
|
||||
packageFragments('String': FqName@11) = null
|
||||
packageFragments('T': FqName@12) = null
|
||||
packageFragments('java': FqName@13) = LazyJavaPackageFragment@14['java']
|
||||
packageFragments('java.lang': FqName@15) = LazyJavaPackageFragment@16['lang']
|
||||
packageFragments('java.lang.A': FqName@17) = null
|
||||
packageFragments('java.lang.Int': FqName@18) = null
|
||||
packageFragments('java.lang.Iterator': FqName@19) = null
|
||||
packageFragments('java.lang.Long': FqName@20) = null
|
||||
packageFragments('java.lang.String': FqName@21) = null
|
||||
packageFragments('java.lang.T': FqName@22) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@23) = null
|
||||
packageFragments('kotlin': FqName@24) = null
|
||||
packageFragments('kotlin.A': FqName@25) = null
|
||||
packageFragments('kotlin.Int': FqName@26) = null
|
||||
packageFragments('kotlin.Iterator': FqName@27) = null
|
||||
packageFragments('kotlin.Long': FqName@28) = null
|
||||
packageFragments('kotlin.String': FqName@29) = null
|
||||
packageFragments('kotlin.T': FqName@30) = null
|
||||
packageFragments('kotlin.io': FqName@31) = null
|
||||
packageFragments('kotlin.jvm': FqName@32) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@33) = null
|
||||
packageFragments('tailRecursive': FqName@34) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@6['<root>'] {
|
||||
classes('Int': Name@35) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('Iterator': Name@37) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('Long': Name@38) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('String': Name@39) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('foldFunction': Name@40) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('foldl': Name@41) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('hasNext': Name@42) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('next': Name@43) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('tailRecursive': Name@44) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
deserializedPackageScope = Empty@45 // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
functions('foldFunction': Name@40) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
functions('foldl': Name@41) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
functions('hasNext': Name@42) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
functions('next': Name@43) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
memberIndex = computeMemberIndex$1@47 // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@14['java'] {
|
||||
classes('lang': Name@48) = null // through LazyPackageFragmentScopeForJavaPackage@49
|
||||
deserializedPackageScope = Empty@45 // through LazyPackageFragmentScopeForJavaPackage@49
|
||||
functions('lang': Name@50) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@49
|
||||
memberIndex = computeMemberIndex$1@51 // through LazyPackageFragmentScopeForJavaPackage@49
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@16['lang'] {
|
||||
classes('foldFunction': Name@40) = null // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
classes('foldl': Name@41) = null // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
classes('hasNext': Name@42) = null // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
classes('next': Name@43) = null // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
deserializedPackageScope = Empty@45 // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
functions('foldFunction': Name@40) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
functions('foldl': Name@41) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
functions('hasNext': Name@42) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
functions('next': Name@43) = EmptyList@46[empty] // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
memberIndex = computeMemberIndex$1@53 // through LazyPackageFragmentScopeForJavaPackage@52
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
<name not found> = EmptyList@46[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@80 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@81 {
|
||||
<name not found> = ArrayList@82[1] { ResolutionCandidate@83 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@84 {
|
||||
<name not found> = ArrayList@85[1] { ResolutionCandidate@86 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@87 {
|
||||
<name not found> = ArrayList@88[1] { ResolutionCandidate@89 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@90 {
|
||||
<name not found> = ArrayList@91[1] { ResolutionCandidate@92 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@93 {
|
||||
<name not found> = ArrayList@94[1] { ResolutionCandidate@95 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@96 {
|
||||
<name not found> = ArrayList@97[1] { ResolutionCandidate@98 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@99 {
|
||||
<name not found> = ArrayList@100[1] { ResolutionCandidate@101 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@102 {
|
||||
<name not found> = ArrayList@103[1] { ResolutionCandidate@104 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@105 {
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@107 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@108 {
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@110 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@111 {
|
||||
<name not found> = ArrayList@112[7] { ResolutionCandidate@113, ResolutionCandidate@114, ResolutionCandidate@115, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@116 {
|
||||
<name not found> = ArrayList@117[8] { ResolutionCandidate@118, ResolutionCandidate@119, ResolutionCandidate@120, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@121[1] { ResolutionCandidate@89 }
|
||||
<name not found> = ArrayList@122[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@123[1] { ResolutionCandidate@95 }
|
||||
<name not found> = ArrayList@124[1] { ResolutionCandidate@86 }
|
||||
<name not found> = ArrayList@125[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@126[1] { ResolutionCandidate@98 }
|
||||
<name not found> = ArrayList@127[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@128[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@129[1] { ResolutionCandidate@104 }
|
||||
<name not found> = ArrayList@130[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@131[1] { ResolutionCandidate@92 }
|
||||
<name not found> = ArrayList@132[1] { ResolutionCandidate@80 }
|
||||
<name not found> = ArrayList@133[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@134[1] { ResolutionCandidate@83 }
|
||||
<name not found> = ArrayList@135[1] { ResolutionCandidate@107 }
|
||||
<name not found> = ArrayList@136[1] { ResolutionCandidate@101 }
|
||||
<name not found> = ArrayList@137[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@138[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@139[1] { ResolutionCandidate@110 }
|
||||
<name not found> = ArrayList@140[7] { ResolutionCandidate@113, ResolutionCandidate@114, ResolutionCandidate@115, ... }
|
||||
<name not found> = ArrayList@141[8] { ResolutionCandidate@118, ResolutionCandidate@119, ResolutionCandidate@120, ... }
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
<name not found> = EmptyList@46[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun </*0*/ T, /*1*/ A> kotlin.Iterator<T>.foldl(/*0*/ acc: A, /*1*/ foldFunction: (T, A) -> A): A
|
||||
@@ -0,0 +1,16 @@
|
||||
fun escapeChar(c : Char) : String? = when (c) {
|
||||
'\\' -> "\\\\"
|
||||
'\n' -> "\\n"
|
||||
'"' -> "\\\""
|
||||
else -> "" + c
|
||||
}
|
||||
|
||||
tailRecursive fun String.escape(i : Int = 0, result : StringBuilder = StringBuilder()) : String =
|
||||
if (i == length) result.toString()
|
||||
else escape(i + 1, result.append(escapeChar(get(i))))
|
||||
|
||||
fun box() : String {
|
||||
"test me not \\".escape()
|
||||
return "OK"
|
||||
}
|
||||
|
||||
+1023
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,5 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
internal fun escapeChar(/*0*/ c: kotlin.Char): kotlin.String?
|
||||
kotlin.tailRecursive() internal fun kotlin.String.escape(/*0*/ i: kotlin.Int = ..., /*1*/ result: java.lang.StringBuilder = ...): kotlin.String
|
||||
@@ -0,0 +1,8 @@
|
||||
tailRecursive fun String.repeat(num : Int, acc : StringBuilder = StringBuilder()) : String =
|
||||
if (num == 0) acc.toString()
|
||||
else repeat(num - 1, acc.append(this))
|
||||
|
||||
fun box() : String {
|
||||
val s = "a".repeat(10000)
|
||||
return if (s.length == 10000) "OK" else "FAIL: ${s.length}"
|
||||
}
|
||||
+982
@@ -0,0 +1,982 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@3['AbstractStringBuilder'] {
|
||||
defaultType = JetTypeImpl@4['AbstractStringBuilder']
|
||||
functions('append': Name@5) = ArrayList@6[13] { JavaMethodDescriptor@7['append'], JavaMethodDescriptor@8['append'], JavaMethodDescriptor@9['append'], ... } // through LazyJavaClassMemberScope@10
|
||||
functions('toString': Name@11) = ArrayList@12[1] { JavaMethodDescriptor@13['toString'] } // through LazyJavaClassMemberScope@10
|
||||
memberIndex = computeMemberIndex$1@14 // through LazyJavaClassMemberScope@10
|
||||
thisAsReceiverParameter = LazyClassReceiverParameterDescriptor@15['<this>']
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@17['Appendable'] {
|
||||
defaultType = JetTypeImpl@18['Appendable']
|
||||
functions('append': Name@19) = ArrayList@20[3] { JavaMethodDescriptor@21['append'], JavaMethodDescriptor@22['append'], JavaMethodDescriptor@23['append'] } // through LazyJavaClassMemberScope@24
|
||||
functions('toString': Name@25) = ArrayList@26[1] { DeserializedSimpleFunctionDescriptor@27['toString'] } // through LazyJavaClassMemberScope@24
|
||||
memberIndex = computeMemberIndex$1@28 // through LazyJavaClassMemberScope@24
|
||||
thisAsReceiverParameter = LazyClassReceiverParameterDescriptor@29['<this>']
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@31['Serializable'] {
|
||||
defaultType = JetTypeImpl@32['Serializable']
|
||||
functions('append': Name@5) = EmptyList@33[empty] // through LazyJavaClassMemberScope@34
|
||||
functions('toString': Name@11) = ArrayList@35[1] { DeserializedSimpleFunctionDescriptor@36['toString'] } // through LazyJavaClassMemberScope@34
|
||||
memberIndex = computeMemberIndex$1@37 // through LazyJavaClassMemberScope@34
|
||||
typeConstructor = LazyJavaClassTypeConstructor@38['Serializable']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@39['StringBuffer'] {
|
||||
functionTypeForSamInterface = null
|
||||
typeConstructor = LazyJavaClassTypeConstructor@40['StringBuffer']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@41['StringBuilder'] {
|
||||
constructors = ArrayList@42[4] { JavaConstructorDescriptor@43['<init>'], JavaConstructorDescriptor@44['<init>'], JavaConstructorDescriptor@45['<init>'], ... } // through LazyJavaClassMemberScope@46
|
||||
defaultType = JetTypeImpl@47['StringBuilder']
|
||||
enumEntryIndex = LinkedHashMap@48 // through LazyJavaClassMemberScope@46
|
||||
functionTypeForSamInterface = null
|
||||
functions('append': Name@49) = ArrayList@50[14] { JavaMethodDescriptor@51['append'], JavaMethodDescriptor@52['append'], JavaMethodDescriptor@53['append'], ... } // through LazyJavaClassMemberScope@46
|
||||
functions('toString': Name@54) = ArrayList@55[1] { JavaMethodDescriptor@56['toString'] } // through LazyJavaClassMemberScope@46
|
||||
memberIndex = computeMemberIndex$1@57 // through LazyJavaClassMemberScope@46
|
||||
nestedClassIndex = LinkedHashMap@58 // through LazyJavaClassMemberScope@46
|
||||
nestedClasses('append': Name@49) = null // through LazyJavaClassMemberScope@46
|
||||
nestedClasses('toString': Name@54) = null // through LazyJavaClassMemberScope@46
|
||||
thisAsReceiverParameter = LazyClassReceiverParameterDescriptor@59['<this>']
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@16['AbstractStringBuilder'] {
|
||||
parameters = ArrayList@61[empty]
|
||||
supertypes = ArrayList@62[2] { LazyJavaClassifierType@63['Appendable'], LazyJavaClassifierType@64['CharSequence'] }
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@30['Appendable'] {
|
||||
parameters = ArrayList@65[empty]
|
||||
supertypes = ArrayList@66[1] { JetTypeImpl@67['Any'] }
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@38['Serializable'] {
|
||||
parameters = ArrayList@68[empty]
|
||||
supertypes = ArrayList@69[1] { JetTypeImpl@67['Any'] }
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@40['StringBuffer'] {
|
||||
parameters = ArrayList@70[empty]
|
||||
supertypes = ArrayList@71[3] { LazyJavaClassifierType@72['AbstractStringBuilder'], LazyJavaClassifierType@73['Serializable'], LazyJavaClassifierType@74['CharSequence'] }
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@60['StringBuilder'] {
|
||||
parameters = ArrayList@75[empty]
|
||||
supertypes = ArrayList@76[3] { LazyJavaClassifierType@77['AbstractStringBuilder'], LazyJavaClassifierType@78['Serializable'], LazyJavaClassifierType@79['CharSequence'] }
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@77['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@80[empty]
|
||||
classifier = JavaClassImpl@81['AbstractStringBuilder']
|
||||
memberScope = LazyJavaClassMemberScope@10
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@82['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@83[empty]
|
||||
classifier = JavaClassImpl@84['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@86['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@87[empty]
|
||||
classifier = JavaClassImpl@88['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@89['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@90[empty]
|
||||
classifier = JavaClassImpl@91['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@92['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@93[empty]
|
||||
classifier = JavaClassImpl@94['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@95['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@96[empty]
|
||||
classifier = JavaClassImpl@97['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@98['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@99[empty]
|
||||
classifier = JavaClassImpl@100['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@101['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@102[empty]
|
||||
classifier = JavaClassImpl@103['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@104['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@105[empty]
|
||||
classifier = JavaClassImpl@106['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@107['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@108[empty]
|
||||
classifier = JavaClassImpl@109['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@110['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@111[empty]
|
||||
classifier = JavaClassImpl@112['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@113['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@114[empty]
|
||||
classifier = JavaClassImpl@115['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@116['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@117[empty]
|
||||
classifier = JavaClassImpl@118['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@119['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@120[empty]
|
||||
classifier = JavaClassImpl@121['AbstractStringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@122['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@123[empty]
|
||||
classifier = JavaClassImpl@91['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@125['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@126[empty]
|
||||
classifier = JavaClassImpl@84['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@127['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@128[empty]
|
||||
classifier = JavaClassImpl@97['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@129['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@130[empty]
|
||||
classifier = JavaClassImpl@103['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@131['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@132[empty]
|
||||
classifier = JavaClassImpl@112['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@133['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@134[empty]
|
||||
classifier = JavaClassImpl@94['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@135['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@136[empty]
|
||||
classifier = JavaClassImpl@118['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@137['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@138[empty]
|
||||
classifier = JavaClassImpl@115['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@139['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@140[empty]
|
||||
classifier = JavaClassImpl@121['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@141['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@142[empty]
|
||||
classifier = JavaClassImpl@106['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@143['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@144[empty]
|
||||
classifier = JavaClassImpl@109['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@145['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@146[empty]
|
||||
classifier = JavaClassImpl@100['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@147['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@148[empty]
|
||||
classifier = JavaClassImpl@88['AbstractStringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@72['AbstractStringBuilder'] {
|
||||
arguments = ArrayList@149[empty]
|
||||
classifier = JavaClassImpl@150['AbstractStringBuilder']
|
||||
typeConstructor = LazyJavaClassTypeConstructor@16['AbstractStringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@63['Appendable'] {
|
||||
arguments = ArrayList@151[empty]
|
||||
classifier = JavaClassImpl@152['Appendable']
|
||||
memberScope = LazyJavaClassMemberScope@24
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@153['Appendable'] {
|
||||
arguments = ArrayList@154[empty]
|
||||
classifier = JavaClassImpl@155['Appendable']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@156['Appendable'] {
|
||||
arguments = ArrayList@157[empty]
|
||||
classifier = JavaClassImpl@158['Appendable']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@159['Appendable'] {
|
||||
arguments = ArrayList@160[empty]
|
||||
classifier = JavaClassImpl@161['Appendable']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@162['Appendable'] {
|
||||
arguments = ArrayList@163[empty]
|
||||
classifier = JavaClassImpl@158['Appendable']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@164['Appendable'] {
|
||||
arguments = ArrayList@165[empty]
|
||||
classifier = JavaClassImpl@161['Appendable']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@166['Appendable'] {
|
||||
arguments = ArrayList@167[empty]
|
||||
classifier = JavaClassImpl@155['Appendable']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@30['Appendable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@79['CharSequence'] {
|
||||
arguments = ArrayList@168[empty]
|
||||
classifier = JavaClassImpl@169['CharSequence']
|
||||
memberScope = DeserializedClassMemberScope@170
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@64['CharSequence'] {
|
||||
arguments = ArrayList@172[empty]
|
||||
classifier = JavaClassImpl@173['CharSequence']
|
||||
memberScope = DeserializedClassMemberScope@170
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@174['CharSequence'] {
|
||||
arguments = ArrayList@175[empty]
|
||||
classifier = JavaClassImpl@176['CharSequence']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@177['CharSequence'] {
|
||||
arguments = ArrayList@178[empty]
|
||||
classifier = JavaClassImpl@179['CharSequence']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@180['CharSequence'] {
|
||||
arguments = ArrayList@181[empty]
|
||||
classifier = JavaClassImpl@182['CharSequence']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@183['CharSequence'] {
|
||||
arguments = ArrayList@184[empty]
|
||||
classifier = JavaClassImpl@185['CharSequence']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@186['CharSequence'] {
|
||||
arguments = ArrayList@187[empty]
|
||||
classifier = JavaClassImpl@188['CharSequence']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@189['CharSequence'] {
|
||||
arguments = ArrayList@190[empty]
|
||||
classifier = JavaClassImpl@191['CharSequence']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@192['CharSequence'] {
|
||||
arguments = ArrayList@193[empty]
|
||||
classifier = JavaClassImpl@194['CharSequence']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@195['CharSequence'] {
|
||||
arguments = ArrayList@196[empty]
|
||||
classifier = JavaClassImpl@176['CharSequence']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@197['CharSequence'] {
|
||||
arguments = ArrayList@198[empty]
|
||||
classifier = JavaClassImpl@194['CharSequence']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@199['CharSequence'] {
|
||||
arguments = ArrayList@200[empty]
|
||||
classifier = JavaClassImpl@179['CharSequence']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@201['CharSequence'] {
|
||||
arguments = ArrayList@202[empty]
|
||||
classifier = JavaClassImpl@188['CharSequence']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@203['CharSequence'] {
|
||||
arguments = ArrayList@204[empty]
|
||||
classifier = JavaClassImpl@182['CharSequence']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@205['CharSequence'] {
|
||||
arguments = ArrayList@206[empty]
|
||||
classifier = JavaClassImpl@191['CharSequence']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@207['CharSequence'] {
|
||||
arguments = ArrayList@208[empty]
|
||||
classifier = JavaClassImpl@185['CharSequence']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@74['CharSequence'] {
|
||||
classifier = JavaClassImpl@209['CharSequence']
|
||||
typeConstructor = DeserializedClassTypeConstructor@171
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@210['Object'] {
|
||||
arguments = ArrayList@211[empty]
|
||||
classifier = JavaClassImpl@212['Object']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@213
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@214['Object'] {
|
||||
arguments = ArrayList@215[empty]
|
||||
classifier = JavaClassImpl@216['Object']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@213
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@217['Object'] {
|
||||
arguments = ArrayList@218[empty]
|
||||
classifier = JavaClassImpl@212['Object']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@213
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@219['Object'] {
|
||||
arguments = ArrayList@220[empty]
|
||||
classifier = JavaClassImpl@216['Object']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@213
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@221['Object'] {
|
||||
classifier = JavaClassImpl@222['Object']
|
||||
typeConstructor = DeserializedClassTypeConstructor@213
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@223['Object'] {
|
||||
classifier = JavaClassImpl@224['Object']
|
||||
typeConstructor = DeserializedClassTypeConstructor@213
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@225['Object'] {
|
||||
classifier = JavaClassImpl@226['Object']
|
||||
typeConstructor = DeserializedClassTypeConstructor@213
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@78['Serializable'] {
|
||||
arguments = ArrayList@227[empty]
|
||||
classifier = JavaClassImpl@228['Serializable']
|
||||
memberScope = LazyJavaClassMemberScope@34
|
||||
typeConstructor = LazyJavaClassTypeConstructor@38['Serializable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@73['Serializable'] {
|
||||
classifier = JavaClassImpl@229['Serializable']
|
||||
typeConstructor = LazyJavaClassTypeConstructor@38['Serializable']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@230['String'] {
|
||||
arguments = ArrayList@231[empty]
|
||||
classifier = JavaClassImpl@232['String']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@234['String'] {
|
||||
arguments = ArrayList@235[empty]
|
||||
classifier = JavaClassImpl@236['String']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@237['String'] {
|
||||
arguments = ArrayList@238[empty]
|
||||
classifier = JavaClassImpl@239['String']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@240['String'] {
|
||||
arguments = ArrayList@241[empty]
|
||||
classifier = JavaClassImpl@242['String']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@243['String'] {
|
||||
arguments = ArrayList@244[empty]
|
||||
classifier = JavaClassImpl@245['String']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@246['String'] {
|
||||
arguments = ArrayList@247[empty]
|
||||
classifier = JavaClassImpl@232['String']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@248['String'] {
|
||||
arguments = ArrayList@249[empty]
|
||||
classifier = JavaClassImpl@239['String']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@250['String'] {
|
||||
arguments = ArrayList@251[empty]
|
||||
classifier = JavaClassImpl@245['String']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@252['String'] {
|
||||
arguments = ArrayList@253[empty]
|
||||
classifier = JavaClassImpl@242['String']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@254['String'] {
|
||||
arguments = ArrayList@255[empty]
|
||||
classifier = JavaClassImpl@236['String']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = DeserializedClassTypeConstructor@233
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@256['StringBuffer'] {
|
||||
arguments = ArrayList@257[empty]
|
||||
classifier = JavaClassImpl@258['StringBuffer']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@40['StringBuffer']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@259['StringBuffer'] {
|
||||
arguments = ArrayList@260[empty]
|
||||
classifier = JavaClassImpl@261['StringBuffer']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@40['StringBuffer']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@262['StringBuffer'] {
|
||||
arguments = ArrayList@263[empty]
|
||||
classifier = JavaClassImpl@258['StringBuffer']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@40['StringBuffer']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@264['StringBuffer'] {
|
||||
arguments = ArrayList@265[empty]
|
||||
classifier = JavaClassImpl@261['StringBuffer']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@40['StringBuffer']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@266['StringBuilder'] {
|
||||
arguments = ArrayList@267[empty]
|
||||
classifier = JavaClassImpl@268['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@269['StringBuilder'] {
|
||||
arguments = ArrayList@270[empty]
|
||||
classifier = JavaClassImpl@271['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@272['StringBuilder'] {
|
||||
arguments = ArrayList@273[empty]
|
||||
classifier = JavaClassImpl@274['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@275['StringBuilder'] {
|
||||
arguments = ArrayList@276[empty]
|
||||
classifier = JavaClassImpl@277['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@278['StringBuilder'] {
|
||||
arguments = ArrayList@279[empty]
|
||||
classifier = JavaClassImpl@280['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@281['StringBuilder'] {
|
||||
arguments = ArrayList@282[empty]
|
||||
classifier = JavaClassImpl@283['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@284['StringBuilder'] {
|
||||
arguments = ArrayList@285[empty]
|
||||
classifier = JavaClassImpl@286['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@287['StringBuilder'] {
|
||||
arguments = ArrayList@288[empty]
|
||||
classifier = JavaClassImpl@289['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@290['StringBuilder'] {
|
||||
arguments = ArrayList@291[empty]
|
||||
classifier = JavaClassImpl@292['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@293['StringBuilder'] {
|
||||
arguments = ArrayList@294[empty]
|
||||
classifier = JavaClassImpl@295['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@296['StringBuilder'] {
|
||||
arguments = ArrayList@297[empty]
|
||||
classifier = JavaClassImpl@298['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@299['StringBuilder'] {
|
||||
arguments = ArrayList@300[empty]
|
||||
classifier = JavaClassImpl@301['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@302['StringBuilder'] {
|
||||
arguments = ArrayList@303[empty]
|
||||
classifier = JavaClassImpl@304['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@305['StringBuilder'] {
|
||||
arguments = ArrayList@306[empty]
|
||||
classifier = JavaClassImpl@307['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@308['StringBuilder'] {
|
||||
arguments = ArrayList@309[empty]
|
||||
classifier = JavaClassImpl@310['StringBuilder']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@311['StringBuilder'] {
|
||||
arguments = ArrayList@312[empty]
|
||||
classifier = JavaClassImpl@283['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@313['StringBuilder'] {
|
||||
arguments = ArrayList@314[empty]
|
||||
classifier = JavaClassImpl@274['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@315['StringBuilder'] {
|
||||
arguments = ArrayList@316[empty]
|
||||
classifier = JavaClassImpl@286['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@317['StringBuilder'] {
|
||||
arguments = ArrayList@318[empty]
|
||||
classifier = JavaClassImpl@304['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@319['StringBuilder'] {
|
||||
arguments = ArrayList@320[empty]
|
||||
classifier = JavaClassImpl@301['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@321['StringBuilder'] {
|
||||
arguments = ArrayList@322[empty]
|
||||
classifier = JavaClassImpl@295['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@323['StringBuilder'] {
|
||||
arguments = ArrayList@324[empty]
|
||||
classifier = JavaClassImpl@268['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@325['StringBuilder'] {
|
||||
arguments = ArrayList@326[empty]
|
||||
classifier = JavaClassImpl@298['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@327['StringBuilder'] {
|
||||
arguments = ArrayList@328[empty]
|
||||
classifier = JavaClassImpl@280['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@329['StringBuilder'] {
|
||||
arguments = ArrayList@330[empty]
|
||||
classifier = JavaClassImpl@292['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@331['StringBuilder'] {
|
||||
arguments = ArrayList@332[empty]
|
||||
classifier = JavaClassImpl@289['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@333['StringBuilder'] {
|
||||
arguments = ArrayList@334[empty]
|
||||
classifier = JavaClassImpl@307['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@335['StringBuilder'] {
|
||||
arguments = ArrayList@336[empty]
|
||||
classifier = JavaClassImpl@271['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@337['StringBuilder'] {
|
||||
arguments = ArrayList@338[empty]
|
||||
classifier = JavaClassImpl@310['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@339['StringBuilder'] {
|
||||
arguments = ArrayList@340[empty]
|
||||
classifier = JavaClassImpl@277['StringBuilder']
|
||||
nullable = 'true': Boolean@124
|
||||
typeConstructor = LazyJavaClassTypeConstructor@60['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@341 {
|
||||
packageFragments('<root>': FqName@342) = LazyJavaPackageFragment@343['<root>']
|
||||
packageFragments('Int': FqName@344) = null
|
||||
packageFragments('String': FqName@345) = null
|
||||
packageFragments('StringBuilder': FqName@346) = null
|
||||
packageFragments('java': FqName@347) = LazyJavaPackageFragment@348['java']
|
||||
packageFragments('java.io': FqName@349) = LazyJavaPackageFragment@350['io']
|
||||
packageFragments('java.lang': FqName@351) = LazyJavaPackageFragment@352['lang']
|
||||
packageFragments('java.lang.Int': FqName@353) = null
|
||||
packageFragments('java.lang.String': FqName@354) = null
|
||||
packageFragments('java.lang.StringBuilder': FqName@355) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@356) = null
|
||||
packageFragments('kotlin': FqName@357) = null
|
||||
packageFragments('kotlin.Int': FqName@358) = null
|
||||
packageFragments('kotlin.String': FqName@359) = null
|
||||
packageFragments('kotlin.StringBuilder': FqName@360) = null
|
||||
packageFragments('kotlin.io': FqName@361) = null
|
||||
packageFragments('kotlin.jvm': FqName@362) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@363) = null
|
||||
packageFragments('tailRecursive': FqName@364) = null
|
||||
topLevelClasses(JavaClassImpl@81['AbstractStringBuilder']) = LazyJavaClassDescriptor@3['AbstractStringBuilder']
|
||||
topLevelClasses(JavaClassImpl@152['Appendable']) = LazyJavaClassDescriptor@17['Appendable']
|
||||
topLevelClasses(JavaClassImpl@228['Serializable']) = LazyJavaClassDescriptor@31['Serializable']
|
||||
topLevelClasses(JavaClassImpl@258['StringBuffer']) = LazyJavaClassDescriptor@39['StringBuffer']
|
||||
topLevelClasses(JavaClassImpl@365['StringBuilder']) = LazyJavaClassDescriptor@41['StringBuilder']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@343['<root>'] {
|
||||
classes('Int': Name@366) = null // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
classes('String': Name@368) = null // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
classes('StringBuilder': Name@369) = null // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
classes('repeat': Name@370) = null // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
classes('tailRecursive': Name@371) = null // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
deserializedPackageScope = Empty@372 // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
functions('StringBuilder': Name@373) = EmptyList@33[empty] // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
functions('repeat': Name@370) = EmptyList@33[empty] // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
memberIndex = computeMemberIndex$1@374 // through LazyPackageFragmentScopeForJavaPackage@367
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@348['java'] {
|
||||
classes('lang': Name@375) = null // through LazyPackageFragmentScopeForJavaPackage@376
|
||||
deserializedPackageScope = Empty@372 // through LazyPackageFragmentScopeForJavaPackage@376
|
||||
functions('lang': Name@377) = EmptyList@33[empty] // through LazyPackageFragmentScopeForJavaPackage@376
|
||||
memberIndex = computeMemberIndex$1@378 // through LazyPackageFragmentScopeForJavaPackage@376
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@352['lang'] {
|
||||
classes('StringBuilder': Name@369) = LazyJavaClassDescriptor@41['StringBuilder'] // through LazyPackageFragmentScopeForJavaPackage@379
|
||||
classes('repeat': Name@370) = null // through LazyPackageFragmentScopeForJavaPackage@379
|
||||
deserializedPackageScope = Empty@372 // through LazyPackageFragmentScopeForJavaPackage@379
|
||||
functions('StringBuilder': Name@373) = EmptyList@33[empty] // through LazyPackageFragmentScopeForJavaPackage@379
|
||||
functions('repeat': Name@370) = EmptyList@33[empty] // through LazyPackageFragmentScopeForJavaPackage@379
|
||||
memberIndex = computeMemberIndex$1@380 // through LazyPackageFragmentScopeForJavaPackage@379
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@381 {
|
||||
<name not found> = ArrayList@382[13] { ResolutionCandidate@383, ResolutionCandidate@384, ResolutionCandidate@385, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@386 {
|
||||
<name not found> = ArrayList@387[1] { ResolutionCandidate@388 }
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@389 {
|
||||
<name not found> = ArrayList@390[1] { ResolutionCandidate@391 }
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@392 {
|
||||
<name not found> = ArrayList@393[1] { ResolutionCandidate@394 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@395 {
|
||||
<name not found> = ArrayList@396[1] { ResolutionCandidate@397 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@398 {
|
||||
<name not found> = ArrayList@399[1] { ResolutionCandidate@400 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@401 {
|
||||
<name not found> = ArrayList@402[1] { ResolutionCandidate@403 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@404 {
|
||||
<name not found> = ArrayList@405[1] { ResolutionCandidate@406 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@407 {
|
||||
<name not found> = ArrayList@408[1] { ResolutionCandidate@409 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@410 {
|
||||
<name not found> = ArrayList@411[1] { ResolutionCandidate@412 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@413 {
|
||||
<name not found> = ArrayList@414[1] { ResolutionCandidate@415 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@416 {
|
||||
<name not found> = ArrayList@417[1] { ResolutionCandidate@418 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@419 {
|
||||
<name not found> = ArrayList@420[1] { ResolutionCandidate@421 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@422 {
|
||||
<name not found> = ArrayList@423[1] { ResolutionCandidate@424 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@425 {
|
||||
<name not found> = ArrayList@426[1] { ResolutionCandidate@427 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@428 {
|
||||
<name not found> = ArrayList@429[1] { ResolutionCandidate@430 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@431 {
|
||||
<name not found> = ArrayList@432[1] { ResolutionCandidate@433 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@434 {
|
||||
<name not found> = ArrayList@435[4] { ResolutionCandidate@436, ResolutionCandidate@437, ResolutionCandidate@438, ... }
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@439 {
|
||||
<name not found> = ArrayList@440[8] { ResolutionCandidate@441, ResolutionCandidate@442, ResolutionCandidate@443, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@444[14] { ResolutionCandidate@383, ResolutionCandidate@384, ResolutionCandidate@445, ... }
|
||||
<name not found> = ArrayList@446[1] { ResolutionCandidate@424 }
|
||||
<name not found> = ArrayList@447[1] { ResolutionCandidate@415 }
|
||||
<name not found> = ArrayList@448[1] { ResolutionCandidate@406 }
|
||||
<name not found> = ArrayList@449[1] { ResolutionCandidate@409 }
|
||||
<name not found> = ArrayList@450[1] { ResolutionCandidate@418 }
|
||||
<name not found> = ArrayList@451[1] { ResolutionCandidate@427 }
|
||||
<name not found> = ArrayList@452[1] { ResolutionCandidate@403 }
|
||||
<name not found> = ArrayList@453[1] { ResolutionCandidate@388 }
|
||||
<name not found> = ArrayList@454[1] { ResolutionCandidate@421 }
|
||||
<name not found> = ArrayList@455[1] { ResolutionCandidate@391 }
|
||||
<name not found> = ArrayList@456[1] { ResolutionCandidate@394 }
|
||||
<name not found> = ArrayList@457[1] { ResolutionCandidate@433 }
|
||||
<name not found> = ArrayList@458[1] { ResolutionCandidate@397 }
|
||||
<name not found> = ArrayList@459[1] { ResolutionCandidate@400 }
|
||||
<name not found> = ArrayList@460[1] { ResolutionCandidate@412 }
|
||||
<name not found> = ArrayList@461[1] { ResolutionCandidate@430 }
|
||||
<name not found> = ArrayList@462[4] { ResolutionCandidate@436, ResolutionCandidate@437, ResolutionCandidate@438, ... }
|
||||
<name not found> = ArrayList@463[8] { ResolutionCandidate@441, ResolutionCandidate@442, ResolutionCandidate@443, ... }
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
<name not found> = EmptyList@33[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun kotlin.String.repeat(/*0*/ num: kotlin.Int, /*1*/ acc: java.lang.StringBuilder = ...): kotlin.String
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun foo()<!> {
|
||||
bar {
|
||||
<!NON_TAIL_RECURSIVE_CALL!>foo<!>()
|
||||
}
|
||||
}
|
||||
|
||||
fun bar(a: Any) {}
|
||||
|
||||
fun box(): String {
|
||||
foo()
|
||||
return "OK"
|
||||
}
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Any': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Any': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Any': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Any': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('bar': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('foo': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('bar': Name@25) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('foo': Name@26) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@30 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@31) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
functions('lang': Name@33) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
memberIndex = computeMemberIndex$1@34 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('bar': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
classes('foo': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('bar': Name@25) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('foo': Name@26) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
memberIndex = computeMemberIndex$1@36 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@37 {
|
||||
<name not found> = ArrayList@38[1] { ResolutionCandidate@39 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@40 {
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@42 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@43 {
|
||||
<name not found> = ArrayList@44[1] { ResolutionCandidate@45 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@39 }
|
||||
<name not found> = ArrayList@51[1] { ResolutionCandidate@45 }
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@42 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package
|
||||
|
||||
internal fun bar(/*0*/ a: kotlin.Any): kotlin.Unit
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun foo(): kotlin.Unit
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun foo()<!> {
|
||||
fun bar() {
|
||||
<!NON_TAIL_RECURSIVE_CALL!>foo<!>()
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
foo()
|
||||
return "OK"
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('String': FqName@6) = null
|
||||
packageFragments('java': FqName@7) = LazyJavaPackageFragment@8['java']
|
||||
packageFragments('java.lang': FqName@9) = LazyJavaPackageFragment@10['lang']
|
||||
packageFragments('java.lang.String': FqName@11) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@12) = null
|
||||
packageFragments('kotlin': FqName@13) = null
|
||||
packageFragments('kotlin.String': FqName@14) = null
|
||||
packageFragments('kotlin.io': FqName@15) = null
|
||||
packageFragments('kotlin.jvm': FqName@16) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@17) = null
|
||||
packageFragments('tailRecursive': FqName@18) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('String': Name@19) = null // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
classes('foo': Name@21) = null // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
classes('tailRecursive': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
deserializedPackageScope = Empty@23 // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
functions('foo': Name@21) = EmptyList@24[empty] // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
memberIndex = computeMemberIndex$1@25 // through LazyPackageFragmentScopeForJavaPackage@20
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@8['java'] {
|
||||
classes('lang': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
deserializedPackageScope = Empty@23 // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
functions('lang': Name@28) = EmptyList@24[empty] // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@27
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@10['lang'] {
|
||||
classes('foo': Name@21) = null // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
deserializedPackageScope = Empty@23 // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
functions('foo': Name@21) = EmptyList@24[empty] // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
memberIndex = computeMemberIndex$1@31 // through LazyPackageFragmentScopeForJavaPackage@30
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@32 {
|
||||
<name not found> = ArrayList@33[1] { ResolutionCandidate@34 }
|
||||
<name not found> = EmptyList@24[empty]
|
||||
<name not found> = EmptyList@24[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@35 {
|
||||
<name not found> = ArrayList@36[1] { ResolutionCandidate@37 }
|
||||
<name not found> = EmptyList@24[empty]
|
||||
<name not found> = EmptyList@24[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@38 {
|
||||
<name not found> = ArrayList@39[1] { ResolutionCandidate@40 }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@40 }
|
||||
<name not found> = ArrayList@42[1] { ResolutionCandidate@37 }
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@34 }
|
||||
<name not found> = EmptyList@24[empty]
|
||||
<name not found> = EmptyList@24[empty]
|
||||
<name not found> = EmptyList@24[empty]
|
||||
<name not found> = EmptyList@24[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun foo(): kotlin.Unit
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fun test() {
|
||||
[tailRecursive] fun g3(counter : Int) {
|
||||
if (counter > 0) { g3(counter - 1) }
|
||||
}
|
||||
g3(1000000)
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
test()
|
||||
return "OK"
|
||||
}
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('g3': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('g3': Name@25) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@27) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@30 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@31) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
functions('lang': Name@33) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
memberIndex = computeMemberIndex$1@34 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('g3': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
classes('test': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('g3': Name@25) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('test': Name@27) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
memberIndex = computeMemberIndex$1@36 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@37 {
|
||||
<name not found> = ArrayList@38[1] { ResolutionCandidate@39 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@40 {
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@42 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@43 {
|
||||
<name not found> = ArrayList@44[1] { ResolutionCandidate@45 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@49 {
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@51 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@52 {
|
||||
<name not found> = ArrayList@53[1] { ResolutionCandidate@54 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@55 {
|
||||
<name not found> = ArrayList@56[7] { ResolutionCandidate@57, ResolutionCandidate@58, ResolutionCandidate@59, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[8] { ResolutionCandidate@62, ResolutionCandidate@63, ResolutionCandidate@64, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@65[1] { ResolutionCandidate@42 }
|
||||
<name not found> = ArrayList@66[1] { ResolutionCandidate@51 }
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@54 }
|
||||
<name not found> = ArrayList@69[1] { ResolutionCandidate@45 }
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@39 }
|
||||
<name not found> = ArrayList@71[7] { ResolutionCandidate@57, ResolutionCandidate@58, ResolutionCandidate@59, ... }
|
||||
<name not found> = ArrayList@72[8] { ResolutionCandidate@62, ResolutionCandidate@63, ResolutionCandidate@64, ... }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
internal fun test(): kotlin.Unit
|
||||
@@ -0,0 +1,12 @@
|
||||
tailRecursive fun test(x : Int) : Int {
|
||||
return if (x == 1) {
|
||||
<!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
|
||||
1 + <!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
|
||||
} else if (x > 0) {
|
||||
test(x - 1)
|
||||
} else {
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String = if (test(1000000) == 1) "OK" else "FAIL"
|
||||
@@ -0,0 +1,165 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@80 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@81 {
|
||||
<name not found> = ArrayList@82[7] { ResolutionCandidate@83, ResolutionCandidate@84, ResolutionCandidate@85, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@86 {
|
||||
<name not found> = ArrayList@87[8] { ResolutionCandidate@88, ResolutionCandidate@89, ResolutionCandidate@90, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@91 {
|
||||
<name not found> = ArrayList@92[8] { ResolutionCandidate@93, ResolutionCandidate@94, ResolutionCandidate@95, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@96 {
|
||||
<name not found> = ArrayList@97[8] { ResolutionCandidate@98, ResolutionCandidate@99, ResolutionCandidate@100, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@101 {
|
||||
<name not found> = ArrayList@102[8] { ResolutionCandidate@103, ResolutionCandidate@104, ResolutionCandidate@105, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@108[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@110[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@111[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@112[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@113[1] { ResolutionCandidate@80 }
|
||||
<name not found> = ArrayList@114[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@115[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@116[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@117[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@118[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@119[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@120[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@121[7] { ResolutionCandidate@83, ResolutionCandidate@84, ResolutionCandidate@85, ... }
|
||||
<name not found> = ArrayList@122[8] { ResolutionCandidate@88, ResolutionCandidate@89, ResolutionCandidate@90, ... }
|
||||
<name not found> = ArrayList@123[8] { ResolutionCandidate@98, ResolutionCandidate@99, ResolutionCandidate@100, ... }
|
||||
<name not found> = ArrayList@124[8] { ResolutionCandidate@93, ResolutionCandidate@94, ResolutionCandidate@95, ... }
|
||||
<name not found> = ArrayList@125[8] { ResolutionCandidate@103, ResolutionCandidate@104, ResolutionCandidate@105, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,11 @@
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun test(counter : Int) : Int<!> {
|
||||
if (counter == 0) return 0
|
||||
|
||||
try {
|
||||
throw Exception()
|
||||
} catch (e : Exception) {
|
||||
return <!TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED!>test<!>(counter - 1)
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String = if (test(3) == 0) "OK" else "FAIL"
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@3['Exception'] {
|
||||
constructors = ArrayList@4[5] { JavaConstructorDescriptor@5['<init>'], JavaConstructorDescriptor@6['<init>'], JavaConstructorDescriptor@7['<init>'], ... } // through LazyJavaClassMemberScope@8
|
||||
defaultType = JetTypeImpl@9['Exception']
|
||||
functionTypeForSamInterface = null
|
||||
typeConstructor = LazyJavaClassTypeConstructor@10['Exception']
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@10['Exception'] {
|
||||
parameters = ArrayList@11[empty]
|
||||
supertypes = ArrayList@12[1] { LazyJavaClassifierType@13['Throwable'] }
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@14['String'] {
|
||||
arguments = ArrayList@15[empty]
|
||||
classifier = JavaClassImpl@16['String']
|
||||
nullable = 'false': Boolean@17
|
||||
typeConstructor = DeserializedClassTypeConstructor@18
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@19['String'] {
|
||||
arguments = ArrayList@20[empty]
|
||||
classifier = JavaClassImpl@21['String']
|
||||
nullable = 'false': Boolean@17
|
||||
typeConstructor = DeserializedClassTypeConstructor@18
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@22['String'] {
|
||||
arguments = ArrayList@23[empty]
|
||||
classifier = JavaClassImpl@24['String']
|
||||
nullable = 'false': Boolean@17
|
||||
typeConstructor = DeserializedClassTypeConstructor@18
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@25['String'] {
|
||||
arguments = ArrayList@26[empty]
|
||||
classifier = JavaClassImpl@16['String']
|
||||
nullable = 'true': Boolean@27
|
||||
typeConstructor = DeserializedClassTypeConstructor@18
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@28['String'] {
|
||||
arguments = ArrayList@29[empty]
|
||||
classifier = JavaClassImpl@24['String']
|
||||
nullable = 'true': Boolean@27
|
||||
typeConstructor = DeserializedClassTypeConstructor@18
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@30['String'] {
|
||||
arguments = ArrayList@31[empty]
|
||||
classifier = JavaClassImpl@21['String']
|
||||
nullable = 'true': Boolean@27
|
||||
typeConstructor = DeserializedClassTypeConstructor@18
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@32['Throwable'] {
|
||||
arguments = ArrayList@33[empty]
|
||||
classifier = JavaClassImpl@34['Throwable']
|
||||
nullable = 'false': Boolean@17
|
||||
typeConstructor = DeserializedClassTypeConstructor@35
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@36['Throwable'] {
|
||||
arguments = ArrayList@37[empty]
|
||||
classifier = JavaClassImpl@38['Throwable']
|
||||
nullable = 'false': Boolean@17
|
||||
typeConstructor = DeserializedClassTypeConstructor@35
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@39['Throwable'] {
|
||||
arguments = ArrayList@40[empty]
|
||||
classifier = JavaClassImpl@41['Throwable']
|
||||
nullable = 'false': Boolean@17
|
||||
typeConstructor = DeserializedClassTypeConstructor@35
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@42['Throwable'] {
|
||||
arguments = ArrayList@43[empty]
|
||||
classifier = JavaClassImpl@38['Throwable']
|
||||
nullable = 'true': Boolean@27
|
||||
typeConstructor = DeserializedClassTypeConstructor@35
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@44['Throwable'] {
|
||||
arguments = ArrayList@45[empty]
|
||||
classifier = JavaClassImpl@34['Throwable']
|
||||
nullable = 'true': Boolean@27
|
||||
typeConstructor = DeserializedClassTypeConstructor@35
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@46['Throwable'] {
|
||||
arguments = ArrayList@47[empty]
|
||||
classifier = JavaClassImpl@41['Throwable']
|
||||
nullable = 'true': Boolean@27
|
||||
typeConstructor = DeserializedClassTypeConstructor@35
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@13['Throwable'] {
|
||||
arguments = ArrayList@48[empty]
|
||||
classifier = JavaClassImpl@49['Throwable']
|
||||
typeConstructor = DeserializedClassTypeConstructor@35
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@50 {
|
||||
packageFragments('<root>': FqName@51) = LazyJavaPackageFragment@52['<root>']
|
||||
packageFragments('Exception': FqName@53) = null
|
||||
packageFragments('Int': FqName@54) = null
|
||||
packageFragments('String': FqName@55) = null
|
||||
packageFragments('java': FqName@56) = LazyJavaPackageFragment@57['java']
|
||||
packageFragments('java.lang': FqName@58) = LazyJavaPackageFragment@59['lang']
|
||||
packageFragments('java.lang.Exception': FqName@60) = null
|
||||
packageFragments('java.lang.Int': FqName@61) = null
|
||||
packageFragments('java.lang.String': FqName@62) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@63) = null
|
||||
packageFragments('kotlin': FqName@64) = null
|
||||
packageFragments('kotlin.Exception': FqName@65) = null
|
||||
packageFragments('kotlin.Int': FqName@66) = null
|
||||
packageFragments('kotlin.String': FqName@67) = null
|
||||
packageFragments('kotlin.io': FqName@68) = null
|
||||
packageFragments('kotlin.jvm': FqName@69) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@70) = null
|
||||
packageFragments('tailRecursive': FqName@71) = null
|
||||
topLevelClasses(JavaClassImpl@72['Exception']) = LazyJavaClassDescriptor@3['Exception']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@52['<root>'] {
|
||||
classes('Exception': Name@73) = null // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
classes('Int': Name@75) = null // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
classes('String': Name@76) = null // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
classes('tailRecursive': Name@77) = null // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
classes('test': Name@78) = null // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
deserializedPackageScope = Empty@79 // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
functions('Exception': Name@80) = EmptyList@81[empty] // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
functions('test': Name@78) = EmptyList@81[empty] // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
memberIndex = computeMemberIndex$1@82 // through LazyPackageFragmentScopeForJavaPackage@74
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@57['java'] {
|
||||
classes('lang': Name@83) = null // through LazyPackageFragmentScopeForJavaPackage@84
|
||||
deserializedPackageScope = Empty@79 // through LazyPackageFragmentScopeForJavaPackage@84
|
||||
functions('lang': Name@85) = EmptyList@81[empty] // through LazyPackageFragmentScopeForJavaPackage@84
|
||||
memberIndex = computeMemberIndex$1@86 // through LazyPackageFragmentScopeForJavaPackage@84
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@59['lang'] {
|
||||
classes('Exception': Name@73) = LazyJavaClassDescriptor@3['Exception'] // through LazyPackageFragmentScopeForJavaPackage@87
|
||||
classes('test': Name@78) = null // through LazyPackageFragmentScopeForJavaPackage@87
|
||||
deserializedPackageScope = Empty@79 // through LazyPackageFragmentScopeForJavaPackage@87
|
||||
functions('Exception': Name@80) = EmptyList@81[empty] // through LazyPackageFragmentScopeForJavaPackage@87
|
||||
functions('test': Name@78) = EmptyList@81[empty] // through LazyPackageFragmentScopeForJavaPackage@87
|
||||
memberIndex = computeMemberIndex$1@88 // through LazyPackageFragmentScopeForJavaPackage@87
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@89 {
|
||||
<name not found> = ArrayList@90[1] { ResolutionCandidate@91 }
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@92 {
|
||||
<name not found> = ArrayList@93[1] { ResolutionCandidate@94 }
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@95 {
|
||||
<name not found> = ArrayList@96[1] { ResolutionCandidate@97 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@98 {
|
||||
<name not found> = ArrayList@99[1] { ResolutionCandidate@100 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@101 {
|
||||
<name not found> = ArrayList@102[1] { ResolutionCandidate@103 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@104 {
|
||||
<name not found> = ArrayList@105[1] { ResolutionCandidate@106 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@107 {
|
||||
<name not found> = ArrayList@108[1] { ResolutionCandidate@109 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@110 {
|
||||
<name not found> = ArrayList@111[1] { ResolutionCandidate@112 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@113 {
|
||||
<name not found> = ArrayList@114[4] { ResolutionCandidate@115, ResolutionCandidate@116, ResolutionCandidate@117, ... }
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@118 {
|
||||
<name not found> = ArrayList@119[8] { ResolutionCandidate@120, ResolutionCandidate@121, ResolutionCandidate@122, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@123[1] { ResolutionCandidate@100 }
|
||||
<name not found> = ArrayList@124[1] { ResolutionCandidate@97 }
|
||||
<name not found> = ArrayList@125[1] { ResolutionCandidate@112 }
|
||||
<name not found> = ArrayList@126[1] { ResolutionCandidate@106 }
|
||||
<name not found> = ArrayList@127[1] { ResolutionCandidate@91 }
|
||||
<name not found> = ArrayList@128[1] { ResolutionCandidate@94 }
|
||||
<name not found> = ArrayList@129[1] { ResolutionCandidate@109 }
|
||||
<name not found> = ArrayList@130[1] { ResolutionCandidate@103 }
|
||||
<name not found> = ArrayList@131[5] { ResolutionCandidate@115, ResolutionCandidate@116, ResolutionCandidate@117, ... }
|
||||
<name not found> = ArrayList@132[8] { ResolutionCandidate@120, ResolutionCandidate@121, ResolutionCandidate@122, ... }
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
<name not found> = EmptyList@81[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ counter: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,11 @@
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun test(counter : Int) : Int<!> {
|
||||
if (counter == 0) return 0
|
||||
|
||||
try {
|
||||
// do nothing
|
||||
} finally {
|
||||
return <!TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED!>test<!>(counter - 1)
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String = if (test(3) == 0) "OK" else "FAIL"
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[8] { ResolutionCandidate@62, ResolutionCandidate@63, ResolutionCandidate@64, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@65[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@66[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@69[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@71[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@72[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@73[8] { ResolutionCandidate@62, ResolutionCandidate@63, ResolutionCandidate@64, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ counter: kotlin.Int): kotlin.Int
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun test(counter : Int) : Int<!> {
|
||||
if (counter == 0) return 0
|
||||
|
||||
try {
|
||||
// do nothing
|
||||
} finally {
|
||||
if (counter > 0) {
|
||||
return <!TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED!>test<!>(counter - 1)
|
||||
}
|
||||
}
|
||||
|
||||
return -1
|
||||
}
|
||||
|
||||
fun box() : String = if (test(3) == 0) "OK" else "FAIL"
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[7] { ResolutionCandidate@65, ResolutionCandidate@66, ResolutionCandidate@67, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@68 {
|
||||
<name not found> = ArrayList@69[8] { ResolutionCandidate@70, ResolutionCandidate@71, ResolutionCandidate@72, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@73 {
|
||||
<name not found> = ArrayList@74[8] { ResolutionCandidate@75, ResolutionCandidate@76, ResolutionCandidate@77, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@78[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@80[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@81[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@82[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@83[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@84[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@85[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@86[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@87[7] { ResolutionCandidate@65, ResolutionCandidate@66, ResolutionCandidate@67, ... }
|
||||
<name not found> = ArrayList@88[8] { ResolutionCandidate@70, ResolutionCandidate@71, ResolutionCandidate@72, ... }
|
||||
<name not found> = ArrayList@89[8] { ResolutionCandidate@75, ResolutionCandidate@76, ResolutionCandidate@77, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ counter: kotlin.Int): kotlin.Int
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
tailRecursive fun foo(x: Int) {
|
||||
if (x == 0) return
|
||||
(return foo(x - 1))
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
foo(1000000)
|
||||
return "OK"
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('foo': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('foo': Name@25) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('foo': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('foo': Name@25) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[8] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@59[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@60[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@62[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@63[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@65[8] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
@@ -0,0 +1,11 @@
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun test(counter : Int) : Int<!> {
|
||||
if (counter == 0) return 0
|
||||
|
||||
try {
|
||||
return <!TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED!>test<!>(counter - 1)
|
||||
} catch (any : Throwable) {
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String = if (test(3) == 0) "OK" else "FAIL"
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('Throwable': FqName@8) = null
|
||||
packageFragments('java': FqName@9) = LazyJavaPackageFragment@10['java']
|
||||
packageFragments('java.lang': FqName@11) = LazyJavaPackageFragment@12['lang']
|
||||
packageFragments('java.lang.Int': FqName@13) = null
|
||||
packageFragments('java.lang.String': FqName@14) = null
|
||||
packageFragments('java.lang.Throwable': FqName@15) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@16) = null
|
||||
packageFragments('kotlin': FqName@17) = null
|
||||
packageFragments('kotlin.Int': FqName@18) = null
|
||||
packageFragments('kotlin.String': FqName@19) = null
|
||||
packageFragments('kotlin.Throwable': FqName@20) = null
|
||||
packageFragments('kotlin.io': FqName@21) = null
|
||||
packageFragments('kotlin.jvm': FqName@22) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@23) = null
|
||||
packageFragments('tailRecursive': FqName@24) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('String': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('Throwable': Name@28) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('tailRecursive': Name@29) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('test': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
deserializedPackageScope = Empty@31 // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
functions('test': Name@30) = EmptyList@32[empty] // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@10['java'] {
|
||||
classes('lang': Name@34) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
deserializedPackageScope = Empty@31 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('lang': Name@36) = EmptyList@32[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
memberIndex = computeMemberIndex$1@37 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@12['lang'] {
|
||||
classes('test': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
deserializedPackageScope = Empty@31 // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
functions('test': Name@30) = EmptyList@32[empty] // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
memberIndex = computeMemberIndex$1@39 // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@40 {
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@42 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@43 {
|
||||
<name not found> = ArrayList@44[1] { ResolutionCandidate@45 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@49 {
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@51 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@52 {
|
||||
<name not found> = ArrayList@53[1] { ResolutionCandidate@54 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@55 {
|
||||
<name not found> = ArrayList@56[1] { ResolutionCandidate@57 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@58 {
|
||||
<name not found> = ArrayList@59[1] { ResolutionCandidate@60 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@61 {
|
||||
<name not found> = ArrayList@62[1] { ResolutionCandidate@63 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@64 {
|
||||
<name not found> = ArrayList@65[8] { ResolutionCandidate@66, ResolutionCandidate@67, ResolutionCandidate@68, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[8] { ResolutionCandidate@71, ResolutionCandidate@72, ResolutionCandidate@73, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@74[1] { ResolutionCandidate@51 }
|
||||
<name not found> = ArrayList@75[1] { ResolutionCandidate@57 }
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@60 }
|
||||
<name not found> = ArrayList@77[1] { ResolutionCandidate@63 }
|
||||
<name not found> = ArrayList@78[1] { ResolutionCandidate@42 }
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@45 }
|
||||
<name not found> = ArrayList@80[1] { ResolutionCandidate@54 }
|
||||
<name not found> = ArrayList@81[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@82[8] { ResolutionCandidate@66, ResolutionCandidate@67, ResolutionCandidate@68, ... }
|
||||
<name not found> = ArrayList@83[8] { ResolutionCandidate@71, ResolutionCandidate@72, ResolutionCandidate@73, ... }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ counter: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,11 @@
|
||||
tailRecursive fun test(x : Int) : Int =
|
||||
if (x == 1) {
|
||||
<!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
|
||||
1 + <!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
|
||||
} else if (x > 0) {
|
||||
test(x - 1)
|
||||
} else {
|
||||
0
|
||||
}
|
||||
|
||||
fun box() : String = if (test(1000000) == 1) "OK" else "FAIL"
|
||||
+165
@@ -0,0 +1,165 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@80 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@81 {
|
||||
<name not found> = ArrayList@82[7] { ResolutionCandidate@83, ResolutionCandidate@84, ResolutionCandidate@85, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@86 {
|
||||
<name not found> = ArrayList@87[8] { ResolutionCandidate@88, ResolutionCandidate@89, ResolutionCandidate@90, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@91 {
|
||||
<name not found> = ArrayList@92[8] { ResolutionCandidate@93, ResolutionCandidate@94, ResolutionCandidate@95, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@96 {
|
||||
<name not found> = ArrayList@97[8] { ResolutionCandidate@98, ResolutionCandidate@99, ResolutionCandidate@100, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@101 {
|
||||
<name not found> = ArrayList@102[8] { ResolutionCandidate@103, ResolutionCandidate@104, ResolutionCandidate@105, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@108[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@110[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@111[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@112[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@113[1] { ResolutionCandidate@80 }
|
||||
<name not found> = ArrayList@114[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@115[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@116[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@117[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@118[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@119[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@120[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@121[7] { ResolutionCandidate@83, ResolutionCandidate@84, ResolutionCandidate@85, ... }
|
||||
<name not found> = ArrayList@122[8] { ResolutionCandidate@88, ResolutionCandidate@89, ResolutionCandidate@90, ... }
|
||||
<name not found> = ArrayList@123[8] { ResolutionCandidate@98, ResolutionCandidate@99, ResolutionCandidate@100, ... }
|
||||
<name not found> = ArrayList@124[8] { ResolutionCandidate@103, ResolutionCandidate@104, ResolutionCandidate@105, ... }
|
||||
<name not found> = ArrayList@125[8] { ResolutionCandidate@93, ResolutionCandidate@94, ResolutionCandidate@95, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,11 @@
|
||||
tailRecursive fun test(x : Int) : Int {
|
||||
if (x == 10) {
|
||||
return 1 + <!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
|
||||
}
|
||||
if (x > 0) {
|
||||
return test(x - 1)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
fun box() : String = if (test(1000000) == 1) "OK" else "FAIL"
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[7] { ResolutionCandidate@71, ResolutionCandidate@72, ResolutionCandidate@73, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@74 {
|
||||
<name not found> = ArrayList@75[8] { ResolutionCandidate@76, ResolutionCandidate@77, ResolutionCandidate@78, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@79 {
|
||||
<name not found> = ArrayList@80[8] { ResolutionCandidate@81, ResolutionCandidate@82, ResolutionCandidate@83, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@84 {
|
||||
<name not found> = ArrayList@85[8] { ResolutionCandidate@86, ResolutionCandidate@87, ResolutionCandidate@88, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@89[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@90[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@91[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@92[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@93[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@94[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@95[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@96[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@97[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@98[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@99[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@100[7] { ResolutionCandidate@71, ResolutionCandidate@72, ResolutionCandidate@73, ... }
|
||||
<name not found> = ArrayList@101[8] { ResolutionCandidate@86, ResolutionCandidate@87, ResolutionCandidate@88, ... }
|
||||
<name not found> = ArrayList@102[8] { ResolutionCandidate@76, ResolutionCandidate@77, ResolutionCandidate@78, ... }
|
||||
<name not found> = ArrayList@103[8] { ResolutionCandidate@81, ResolutionCandidate@82, ResolutionCandidate@83, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
tailRecursive fun test(x : Int) : Int {
|
||||
if (x == 0) {
|
||||
return 0
|
||||
} else if (x == 10) {
|
||||
<!NON_TAIL_RECURSIVE_CALL!>test<!>(0)
|
||||
return 1 + <!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
|
||||
} else {
|
||||
return test(x - 1)
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String = if (test(1000000) == 1) "OK" else "FAIL"
|
||||
+155
@@ -0,0 +1,155 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('test': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('test': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[1] { ResolutionCandidate@68 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@69 {
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@71 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@72 {
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@74 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@75 {
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@77 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@78 {
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@80 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@81 {
|
||||
<name not found> = ArrayList@82[8] { ResolutionCandidate@83, ResolutionCandidate@84, ResolutionCandidate@85, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@86 {
|
||||
<name not found> = ArrayList@87[8] { ResolutionCandidate@88, ResolutionCandidate@89, ResolutionCandidate@90, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@91 {
|
||||
<name not found> = ArrayList@92[8] { ResolutionCandidate@93, ResolutionCandidate@94, ResolutionCandidate@95, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@96[1] { ResolutionCandidate@71 }
|
||||
<name not found> = ArrayList@97[1] { ResolutionCandidate@74 }
|
||||
<name not found> = ArrayList@98[1] { ResolutionCandidate@68 }
|
||||
<name not found> = ArrayList@99[1] { ResolutionCandidate@80 }
|
||||
<name not found> = ArrayList@100[1] { ResolutionCandidate@77 }
|
||||
<name not found> = ArrayList@101[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@102[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@103[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@104[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@105[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@108[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@109[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@110[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@111[8] { ResolutionCandidate@83, ResolutionCandidate@84, ResolutionCandidate@85, ... }
|
||||
<name not found> = ArrayList@112[8] { ResolutionCandidate@88, ResolutionCandidate@89, ResolutionCandidate@90, ... }
|
||||
<name not found> = ArrayList@113[8] { ResolutionCandidate@93, ResolutionCandidate@94, ResolutionCandidate@95, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,10 @@
|
||||
tailRecursive fun sum(x: Long, sum: Long): Long {
|
||||
if (x == 0.toLong()) return sum
|
||||
return sum(x - 1, sum + x)
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
val sum = sum(1000000, 0)
|
||||
if (sum != 500000500000.toLong()) return "Fail $sum"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
DescriptorResolver@0 {
|
||||
<name not found> = null
|
||||
}
|
||||
|
||||
LazyAnnotationDescriptor@1 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@2
|
||||
type = JetTypeImpl@3['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@4 {
|
||||
packageFragments('<root>': FqName@5) = LazyJavaPackageFragment@6['<root>']
|
||||
packageFragments('Long': FqName@7) = null
|
||||
packageFragments('String': FqName@8) = null
|
||||
packageFragments('java': FqName@9) = LazyJavaPackageFragment@10['java']
|
||||
packageFragments('java.lang': FqName@11) = LazyJavaPackageFragment@12['lang']
|
||||
packageFragments('java.lang.Long': FqName@13) = null
|
||||
packageFragments('java.lang.String': FqName@14) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@15) = null
|
||||
packageFragments('kotlin': FqName@16) = null
|
||||
packageFragments('kotlin.Long': FqName@17) = null
|
||||
packageFragments('kotlin.String': FqName@18) = null
|
||||
packageFragments('kotlin.io': FqName@19) = null
|
||||
packageFragments('kotlin.jvm': FqName@20) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@21) = null
|
||||
packageFragments('tailRecursive': FqName@22) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@6['<root>'] {
|
||||
classes('Long': Name@23) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
classes('String': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
classes('invoke': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
classes('sum': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
classes('tailRecursive': Name@28) = null // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
deserializedPackageScope = Empty@29 // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
functions('invoke': Name@26) = EmptyList@30[empty] // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
functions('sum': Name@27) = EmptyList@30[empty] // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
memberIndex = computeMemberIndex$1@31 // through LazyPackageFragmentScopeForJavaPackage@24
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@10['java'] {
|
||||
classes('lang': Name@32) = null // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
deserializedPackageScope = Empty@29 // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
functions('lang': Name@34) = EmptyList@30[empty] // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@33
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@12['lang'] {
|
||||
classes('invoke': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
classes('sum': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
deserializedPackageScope = Empty@29 // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
functions('invoke': Name@26) = EmptyList@30[empty] // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
functions('sum': Name@27) = EmptyList@30[empty] // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
memberIndex = computeMemberIndex$1@37 // through LazyPackageFragmentScopeForJavaPackage@36
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@38 {
|
||||
<name not found> = ArrayList@39[1] { ResolutionCandidate@40 }
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@42 }
|
||||
<name not found> = EmptyList@30[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@43 {
|
||||
<name not found> = ArrayList@44[1] { ResolutionCandidate@45 }
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@49 {
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@51 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@52 {
|
||||
<name not found> = ArrayList@53[1] { ResolutionCandidate@54 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@55 {
|
||||
<name not found> = ArrayList@56[1] { ResolutionCandidate@57 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@58 {
|
||||
<name not found> = ArrayList@59[1] { ResolutionCandidate@60 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@61 {
|
||||
<name not found> = ArrayList@62[1] { ResolutionCandidate@63 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@64 {
|
||||
<name not found> = ArrayList@65[1] { ResolutionCandidate@66 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@67 {
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@69 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@70 {
|
||||
<name not found> = ArrayList@71[1] { ResolutionCandidate@72 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@73 {
|
||||
<name not found> = ArrayList@74[1] { ResolutionCandidate@75 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@76 {
|
||||
<name not found> = ArrayList@77[1] { ResolutionCandidate@78 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@79 {
|
||||
<name not found> = ArrayList@80[1] { ResolutionCandidate@81 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@82 {
|
||||
<name not found> = ArrayList@83[8] { ResolutionCandidate@84, ResolutionCandidate@85, ResolutionCandidate@86, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@87 {
|
||||
<name not found> = ArrayList@88[8] { ResolutionCandidate@89, ResolutionCandidate@90, ResolutionCandidate@91, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@92 {
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@93[1] { ResolutionCandidate@51 }
|
||||
<name not found> = ArrayList@94[1] { ResolutionCandidate@54 }
|
||||
<name not found> = ArrayList@95[1] { ResolutionCandidate@75 }
|
||||
<name not found> = ArrayList@96[1] { ResolutionCandidate@60 }
|
||||
<name not found> = ArrayList@97[1] { ResolutionCandidate@57 }
|
||||
<name not found> = ArrayList@98[1] { ResolutionCandidate@69 }
|
||||
<name not found> = ArrayList@99[1] { ResolutionCandidate@63 }
|
||||
<name not found> = ArrayList@100[1] { ResolutionCandidate@66 }
|
||||
<name not found> = ArrayList@101[1] { ResolutionCandidate@40 }
|
||||
<name not found> = ArrayList@102[1] { ResolutionCandidate@42 }
|
||||
<name not found> = ArrayList@103[1] { ResolutionCandidate@45 }
|
||||
<name not found> = ArrayList@104[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@105[1] { ResolutionCandidate@72 }
|
||||
<name not found> = ArrayList@106[1] { ResolutionCandidate@78 }
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@81 }
|
||||
<name not found> = ArrayList@108[8] { ResolutionCandidate@89, ResolutionCandidate@90, ResolutionCandidate@91, ... }
|
||||
<name not found> = ArrayList@109[8] { ResolutionCandidate@84, ResolutionCandidate@85, ResolutionCandidate@86, ... }
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
<name not found> = EmptyList@30[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun sum(/*0*/ x: kotlin.Long, /*1*/ sum: kotlin.Long): kotlin.Long
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
tailRecursive fun foo(x: Int) {
|
||||
return if (x > 0) {
|
||||
(foo(x - 1))
|
||||
}
|
||||
else Unit
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
foo(1000000)
|
||||
return "OK"
|
||||
}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('Unit': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('foo': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('foo': Name@26) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@30 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@31) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
functions('lang': Name@33) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
memberIndex = computeMemberIndex$1@34 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('foo': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
deserializedPackageScope = Empty@28 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('foo': Name@26) = EmptyList@29[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
memberIndex = computeMemberIndex$1@36 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@37 {
|
||||
<name not found> = ArrayList@38[1] { ResolutionCandidate@39 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@40 {
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@42 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@43 {
|
||||
<name not found> = ArrayList@44[1] { ResolutionCandidate@45 }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@49 {
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@51 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@52 {
|
||||
<name not found> = ArrayList@53[1] { ResolutionCandidate@54 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@55 {
|
||||
<name not found> = ArrayList@56[1] { ResolutionCandidate@57 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@58 {
|
||||
<name not found> = ArrayList@59[7] { ResolutionCandidate@60, ResolutionCandidate@61, ResolutionCandidate@62, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[8] { ResolutionCandidate@65, ResolutionCandidate@66, ResolutionCandidate@67, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@69[1] { ResolutionCandidate@57 }
|
||||
<name not found> = ArrayList@70[1] { ResolutionCandidate@54 }
|
||||
<name not found> = ArrayList@71[1] { ResolutionCandidate@42 }
|
||||
<name not found> = ArrayList@72[1] { ResolutionCandidate@45 }
|
||||
<name not found> = ArrayList@73[1] { ResolutionCandidate@51 }
|
||||
<name not found> = ArrayList@74[1] { ResolutionCandidate@39 }
|
||||
<name not found> = ArrayList@75[7] { ResolutionCandidate@60, ResolutionCandidate@61, ResolutionCandidate@62, ... }
|
||||
<name not found> = ArrayList@76[8] { ResolutionCandidate@65, ResolutionCandidate@66, ResolutionCandidate@67, ... }
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
<name not found> = EmptyList@29[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
tailRecursive fun foo(x: Int) {
|
||||
if (x == 0) return
|
||||
return (foo(x - 1))
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
foo(1000000)
|
||||
return "OK"
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('foo': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('foo': Name@25) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('foo': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('foo': Name@25) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[8] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@59[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@60[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@62[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@63[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@65[8] { ResolutionCandidate@56, ResolutionCandidate@57, ResolutionCandidate@58, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun test(go: Boolean) : Unit<!> {
|
||||
if (!go) return
|
||||
try {
|
||||
<!TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED!>test<!>(false)
|
||||
} catch (any : Exception) {
|
||||
<!TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED!>test<!>(false)
|
||||
} finally {
|
||||
<!TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED!>test<!>(false)
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
test(true)
|
||||
return "OK"
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaClassDescriptor@3['Exception'] {
|
||||
typeConstructor = LazyJavaClassTypeConstructor@4['Exception']
|
||||
}
|
||||
|
||||
LazyJavaClassTypeConstructor@4['Exception'] {
|
||||
parameters = ArrayList@5[empty]
|
||||
supertypes = ArrayList@6[1] { LazyJavaClassifierType@7['Throwable'] }
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@7['Throwable'] {
|
||||
arguments = ArrayList@8[empty]
|
||||
classifier = JavaClassImpl@9['Throwable']
|
||||
typeConstructor = DeserializedClassTypeConstructor@10
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@11 {
|
||||
packageFragments('<root>': FqName@12) = LazyJavaPackageFragment@13['<root>']
|
||||
packageFragments('Boolean': FqName@14) = null
|
||||
packageFragments('Exception': FqName@15) = null
|
||||
packageFragments('String': FqName@16) = null
|
||||
packageFragments('Unit': FqName@17) = null
|
||||
packageFragments('java': FqName@18) = LazyJavaPackageFragment@19['java']
|
||||
packageFragments('java.lang': FqName@20) = LazyJavaPackageFragment@21['lang']
|
||||
packageFragments('java.lang.Boolean': FqName@22) = null
|
||||
packageFragments('java.lang.Exception': FqName@23) = null
|
||||
packageFragments('java.lang.String': FqName@24) = null
|
||||
packageFragments('java.lang.Unit': FqName@25) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@26) = null
|
||||
packageFragments('kotlin': FqName@27) = null
|
||||
packageFragments('kotlin.Boolean': FqName@28) = null
|
||||
packageFragments('kotlin.Exception': FqName@29) = null
|
||||
packageFragments('kotlin.String': FqName@30) = null
|
||||
packageFragments('kotlin.Unit': FqName@31) = null
|
||||
packageFragments('kotlin.io': FqName@32) = null
|
||||
packageFragments('kotlin.jvm': FqName@33) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@34) = null
|
||||
packageFragments('tailRecursive': FqName@35) = null
|
||||
topLevelClasses(JavaClassImpl@36['Exception']) = LazyJavaClassDescriptor@3['Exception']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@13['<root>'] {
|
||||
classes('Boolean': Name@37) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
classes('Exception': Name@39) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
classes('String': Name@40) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
classes('Unit': Name@41) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
classes('tailRecursive': Name@42) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
classes('test': Name@43) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
deserializedPackageScope = Empty@44 // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
functions('test': Name@43) = EmptyList@45[empty] // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
memberIndex = computeMemberIndex$1@46 // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@19['java'] {
|
||||
classes('lang': Name@47) = null // through LazyPackageFragmentScopeForJavaPackage@48
|
||||
deserializedPackageScope = Empty@44 // through LazyPackageFragmentScopeForJavaPackage@48
|
||||
functions('lang': Name@49) = EmptyList@45[empty] // through LazyPackageFragmentScopeForJavaPackage@48
|
||||
memberIndex = computeMemberIndex$1@50 // through LazyPackageFragmentScopeForJavaPackage@48
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@21['lang'] {
|
||||
classes('Exception': Name@39) = LazyJavaClassDescriptor@3['Exception'] // through LazyPackageFragmentScopeForJavaPackage@51
|
||||
classes('test': Name@43) = null // through LazyPackageFragmentScopeForJavaPackage@51
|
||||
deserializedPackageScope = Empty@44 // through LazyPackageFragmentScopeForJavaPackage@51
|
||||
functions('test': Name@43) = EmptyList@45[empty] // through LazyPackageFragmentScopeForJavaPackage@51
|
||||
memberIndex = computeMemberIndex$1@52 // through LazyPackageFragmentScopeForJavaPackage@51
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@53 {
|
||||
<name not found> = ArrayList@54[1] { ResolutionCandidate@55 }
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@56 {
|
||||
<name not found> = ArrayList@57[1] { ResolutionCandidate@58 }
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@59 {
|
||||
<name not found> = ArrayList@60[1] { ResolutionCandidate@61 }
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@62 {
|
||||
<name not found> = ArrayList@63[1] { ResolutionCandidate@64 }
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@65 {
|
||||
<name not found> = ArrayList@66[1] { ResolutionCandidate@67 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@68 {
|
||||
<name not found> = ArrayList@69[1] { ResolutionCandidate@70 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@71 {
|
||||
<name not found> = ArrayList@72[1] { ResolutionCandidate@73 }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@74[1] { ResolutionCandidate@70 }
|
||||
<name not found> = ArrayList@75[1] { ResolutionCandidate@67 }
|
||||
<name not found> = ArrayList@76[1] { ResolutionCandidate@73 }
|
||||
<name not found> = ArrayList@77[1] { ResolutionCandidate@61 }
|
||||
<name not found> = ArrayList@78[1] { ResolutionCandidate@55 }
|
||||
<name not found> = ArrayList@79[1] { ResolutionCandidate@64 }
|
||||
<name not found> = ArrayList@80[1] { ResolutionCandidate@58 }
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
<name not found> = EmptyList@45[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ go: kotlin.Boolean): kotlin.Unit
|
||||
@@ -0,0 +1,23 @@
|
||||
class A {
|
||||
tailRecursive fun f1(c : Int) {
|
||||
if (c > 0) {
|
||||
this.f1(c - 1)
|
||||
}
|
||||
}
|
||||
|
||||
tailRecursive fun f2(c : Int) {
|
||||
if (c > 0) {
|
||||
f2(c - 1)
|
||||
}
|
||||
}
|
||||
|
||||
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun f3(a : A)<!> {
|
||||
a.<!NON_TAIL_RECURSIVE_CALL!>f3<!>(a) // non-tail recursion, could be potentially resolved by condition if (a == this) f3() else a.f3()
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
A().f1(1000000)
|
||||
A().f2(1000000)
|
||||
return "OK"
|
||||
}
|
||||
+178
@@ -0,0 +1,178 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyAnnotationDescriptor@3 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@4
|
||||
type = JetTypeImpl@5['tailRecursive']
|
||||
}
|
||||
|
||||
LazyAnnotationDescriptor@6 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@7
|
||||
type = JetTypeImpl@8['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@9 {
|
||||
packageFragments('<root>': FqName@10) = LazyJavaPackageFragment@11['<root>']
|
||||
packageFragments('A': FqName@12) = null
|
||||
packageFragments('Int': FqName@13) = null
|
||||
packageFragments('String': FqName@14) = null
|
||||
packageFragments('java': FqName@15) = LazyJavaPackageFragment@16['java']
|
||||
packageFragments('java.lang': FqName@17) = LazyJavaPackageFragment@18['lang']
|
||||
packageFragments('java.lang.A': FqName@19) = null
|
||||
packageFragments('java.lang.Int': FqName@20) = null
|
||||
packageFragments('java.lang.String': FqName@21) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@22) = null
|
||||
packageFragments('kotlin': FqName@23) = null
|
||||
packageFragments('kotlin.A': FqName@24) = null
|
||||
packageFragments('kotlin.Int': FqName@25) = null
|
||||
packageFragments('kotlin.String': FqName@26) = null
|
||||
packageFragments('kotlin.io': FqName@27) = null
|
||||
packageFragments('kotlin.jvm': FqName@28) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@29) = null
|
||||
packageFragments('tailRecursive': FqName@30) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['<root>'] {
|
||||
classes('A': Name@31) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
classes('Int': Name@33) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
classes('String': Name@34) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
classes('f2': Name@35) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
classes('tailRecursive': Name@36) = null // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
deserializedPackageScope = Empty@37 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
functions('A': Name@31) = EmptyList@38[empty] // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
functions('f2': Name@35) = EmptyList@38[empty] // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
memberIndex = computeMemberIndex$1@39 // through LazyPackageFragmentScopeForJavaPackage@32
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@16['java'] {
|
||||
classes('lang': Name@40) = null // through LazyPackageFragmentScopeForJavaPackage@41
|
||||
deserializedPackageScope = Empty@37 // through LazyPackageFragmentScopeForJavaPackage@41
|
||||
functions('lang': Name@42) = EmptyList@38[empty] // through LazyPackageFragmentScopeForJavaPackage@41
|
||||
memberIndex = computeMemberIndex$1@43 // through LazyPackageFragmentScopeForJavaPackage@41
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@18['lang'] {
|
||||
classes('A': Name@31) = null // through LazyPackageFragmentScopeForJavaPackage@44
|
||||
classes('f2': Name@35) = null // through LazyPackageFragmentScopeForJavaPackage@44
|
||||
deserializedPackageScope = Empty@37 // through LazyPackageFragmentScopeForJavaPackage@44
|
||||
functions('A': Name@31) = EmptyList@38[empty] // through LazyPackageFragmentScopeForJavaPackage@44
|
||||
functions('f2': Name@35) = EmptyList@38[empty] // through LazyPackageFragmentScopeForJavaPackage@44
|
||||
memberIndex = computeMemberIndex$1@45 // through LazyPackageFragmentScopeForJavaPackage@44
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@49 {
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@51 }
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@52 {
|
||||
<name not found> = ArrayList@53[1] { ResolutionCandidate@54 }
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@55 {
|
||||
<name not found> = ArrayList@56[1] { ResolutionCandidate@57 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@58 {
|
||||
<name not found> = ArrayList@59[1] { ResolutionCandidate@60 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@61 {
|
||||
<name not found> = ArrayList@62[1] { ResolutionCandidate@63 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@64 {
|
||||
<name not found> = ArrayList@65[1] { ResolutionCandidate@66 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@67 {
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@69 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@70 {
|
||||
<name not found> = ArrayList@71[1] { ResolutionCandidate@72 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@73 {
|
||||
<name not found> = ArrayList@74[1] { ResolutionCandidate@75 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@76 {
|
||||
<name not found> = ArrayList@77[1] { ResolutionCandidate@78 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@79 {
|
||||
<name not found> = ArrayList@80[1] { ResolutionCandidate@81 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@82 {
|
||||
<name not found> = ArrayList@83[1] { ResolutionCandidate@84 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@85 {
|
||||
<name not found> = ArrayList@86[1] { ResolutionCandidate@87 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@88 {
|
||||
<name not found> = ArrayList@89[1] { ResolutionCandidate@90 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@91 {
|
||||
<name not found> = ArrayList@92[1] { ResolutionCandidate@93 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@94 {
|
||||
<name not found> = ArrayList@95[7] { ResolutionCandidate@96, ResolutionCandidate@97, ResolutionCandidate@98, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@99 {
|
||||
<name not found> = ArrayList@100[7] { ResolutionCandidate@101, ResolutionCandidate@102, ResolutionCandidate@103, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@104 {
|
||||
<name not found> = ArrayList@105[8] { ResolutionCandidate@106, ResolutionCandidate@107, ResolutionCandidate@108, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@109 {
|
||||
<name not found> = ArrayList@110[8] { ResolutionCandidate@111, ResolutionCandidate@112, ResolutionCandidate@113, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@114[1] { ResolutionCandidate@51 }
|
||||
<name not found> = ArrayList@115[1] { ResolutionCandidate@69 }
|
||||
<name not found> = ArrayList@116[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@117[1] { ResolutionCandidate@57 }
|
||||
<name not found> = ArrayList@118[1] { ResolutionCandidate@84 }
|
||||
<name not found> = ArrayList@119[1] { ResolutionCandidate@93 }
|
||||
<name not found> = ArrayList@120[1] { ResolutionCandidate@66 }
|
||||
<name not found> = ArrayList@121[1] { ResolutionCandidate@60 }
|
||||
<name not found> = ArrayList@122[1] { ResolutionCandidate@72 }
|
||||
<name not found> = ArrayList@123[1] { ResolutionCandidate@75 }
|
||||
<name not found> = ArrayList@124[1] { ResolutionCandidate@87 }
|
||||
<name not found> = ArrayList@125[1] { ResolutionCandidate@54 }
|
||||
<name not found> = ArrayList@126[1] { ResolutionCandidate@63 }
|
||||
<name not found> = ArrayList@127[1] { ResolutionCandidate@78 }
|
||||
<name not found> = ArrayList@128[1] { ResolutionCandidate@90 }
|
||||
<name not found> = ArrayList@129[1] { ResolutionCandidate@81 }
|
||||
<name not found> = ArrayList@130[7] { ResolutionCandidate@96, ResolutionCandidate@97, ResolutionCandidate@98, ... }
|
||||
<name not found> = ArrayList@131[7] { ResolutionCandidate@101, ResolutionCandidate@102, ResolutionCandidate@103, ... }
|
||||
<name not found> = ArrayList@132[8] { ResolutionCandidate@106, ResolutionCandidate@107, ResolutionCandidate@108, ... }
|
||||
<name not found> = ArrayList@133[8] { ResolutionCandidate@111, ResolutionCandidate@112, ResolutionCandidate@113, ... }
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
<name not found> = EmptyList@38[empty]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
|
||||
internal final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
kotlin.tailRecursive() internal final fun f1(/*0*/ c: kotlin.Int): kotlin.Unit
|
||||
kotlin.tailRecursive() internal final fun f2(/*0*/ c: kotlin.Int): kotlin.Unit
|
||||
kotlin.tailRecursive() internal final fun f3(/*0*/ a: A): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
tailRecursive fun test(x : Int) : Unit {
|
||||
if (x == 1) {
|
||||
test(x - 1)
|
||||
} else if (x == 2) {
|
||||
test(x - 1)
|
||||
return
|
||||
} else if (x == 3) {
|
||||
<!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
|
||||
if (x == 3) {
|
||||
test(x - 1)
|
||||
}
|
||||
return
|
||||
} else if (x > 0) {
|
||||
test(x - 1)
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
test(1000000)
|
||||
return "OK"
|
||||
}
|
||||
+227
@@ -0,0 +1,227 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('Unit': FqName@8) = null
|
||||
packageFragments('java': FqName@9) = LazyJavaPackageFragment@10['java']
|
||||
packageFragments('java.lang': FqName@11) = LazyJavaPackageFragment@12['lang']
|
||||
packageFragments('java.lang.Int': FqName@13) = null
|
||||
packageFragments('java.lang.String': FqName@14) = null
|
||||
packageFragments('java.lang.Unit': FqName@15) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@16) = null
|
||||
packageFragments('kotlin': FqName@17) = null
|
||||
packageFragments('kotlin.Int': FqName@18) = null
|
||||
packageFragments('kotlin.String': FqName@19) = null
|
||||
packageFragments('kotlin.Unit': FqName@20) = null
|
||||
packageFragments('kotlin.io': FqName@21) = null
|
||||
packageFragments('kotlin.jvm': FqName@22) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@23) = null
|
||||
packageFragments('tailRecursive': FqName@24) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('String': Name@27) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('Unit': Name@28) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('tailRecursive': Name@29) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
classes('test': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
deserializedPackageScope = Empty@31 // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
functions('test': Name@30) = EmptyList@32[empty] // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@26
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@10['java'] {
|
||||
classes('lang': Name@34) = null // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
deserializedPackageScope = Empty@31 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
functions('lang': Name@36) = EmptyList@32[empty] // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
memberIndex = computeMemberIndex$1@37 // through LazyPackageFragmentScopeForJavaPackage@35
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@12['lang'] {
|
||||
classes('test': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
deserializedPackageScope = Empty@31 // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
functions('test': Name@30) = EmptyList@32[empty] // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
memberIndex = computeMemberIndex$1@39 // through LazyPackageFragmentScopeForJavaPackage@38
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@40 {
|
||||
<name not found> = ArrayList@41[1] { ResolutionCandidate@42 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@43 {
|
||||
<name not found> = ArrayList@44[1] { ResolutionCandidate@45 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@46 {
|
||||
<name not found> = ArrayList@47[1] { ResolutionCandidate@48 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@49 {
|
||||
<name not found> = ArrayList@50[1] { ResolutionCandidate@51 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@52 {
|
||||
<name not found> = ArrayList@53[1] { ResolutionCandidate@54 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@55 {
|
||||
<name not found> = ArrayList@56[1] { ResolutionCandidate@57 }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@58 {
|
||||
<name not found> = ArrayList@59[1] { ResolutionCandidate@60 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@61 {
|
||||
<name not found> = ArrayList@62[1] { ResolutionCandidate@63 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@64 {
|
||||
<name not found> = ArrayList@65[1] { ResolutionCandidate@66 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@67 {
|
||||
<name not found> = ArrayList@68[1] { ResolutionCandidate@69 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@70 {
|
||||
<name not found> = ArrayList@71[1] { ResolutionCandidate@72 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@73 {
|
||||
<name not found> = ArrayList@74[1] { ResolutionCandidate@75 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@76 {
|
||||
<name not found> = ArrayList@77[1] { ResolutionCandidate@78 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@79 {
|
||||
<name not found> = ArrayList@80[1] { ResolutionCandidate@81 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@82 {
|
||||
<name not found> = ArrayList@83[1] { ResolutionCandidate@84 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@85 {
|
||||
<name not found> = ArrayList@86[1] { ResolutionCandidate@87 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@88 {
|
||||
<name not found> = ArrayList@89[1] { ResolutionCandidate@90 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@91 {
|
||||
<name not found> = ArrayList@92[1] { ResolutionCandidate@93 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@94 {
|
||||
<name not found> = ArrayList@95[1] { ResolutionCandidate@96 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@97 {
|
||||
<name not found> = ArrayList@98[1] { ResolutionCandidate@99 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@100 {
|
||||
<name not found> = ArrayList@101[1] { ResolutionCandidate@102 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@103 {
|
||||
<name not found> = ArrayList@104[1] { ResolutionCandidate@105 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@106 {
|
||||
<name not found> = ArrayList@107[1] { ResolutionCandidate@108 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@109 {
|
||||
<name not found> = ArrayList@110[1] { ResolutionCandidate@111 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@112 {
|
||||
<name not found> = ArrayList@113[7] { ResolutionCandidate@114, ResolutionCandidate@115, ResolutionCandidate@116, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@117 {
|
||||
<name not found> = ArrayList@118[8] { ResolutionCandidate@119, ResolutionCandidate@120, ResolutionCandidate@121, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@122 {
|
||||
<name not found> = ArrayList@123[8] { ResolutionCandidate@124, ResolutionCandidate@125, ResolutionCandidate@126, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@127 {
|
||||
<name not found> = ArrayList@128[8] { ResolutionCandidate@129, ResolutionCandidate@130, ResolutionCandidate@131, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@132 {
|
||||
<name not found> = ArrayList@133[8] { ResolutionCandidate@134, ResolutionCandidate@135, ResolutionCandidate@136, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@137 {
|
||||
<name not found> = ArrayList@138[8] { ResolutionCandidate@139, ResolutionCandidate@140, ResolutionCandidate@141, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@142[1] { ResolutionCandidate@90 }
|
||||
<name not found> = ArrayList@143[1] { ResolutionCandidate@96 }
|
||||
<name not found> = ArrayList@144[1] { ResolutionCandidate@108 }
|
||||
<name not found> = ArrayList@145[1] { ResolutionCandidate@87 }
|
||||
<name not found> = ArrayList@146[1] { ResolutionCandidate@57 }
|
||||
<name not found> = ArrayList@147[1] { ResolutionCandidate@69 }
|
||||
<name not found> = ArrayList@148[1] { ResolutionCandidate@81 }
|
||||
<name not found> = ArrayList@149[1] { ResolutionCandidate@105 }
|
||||
<name not found> = ArrayList@150[1] { ResolutionCandidate@42 }
|
||||
<name not found> = ArrayList@151[1] { ResolutionCandidate@84 }
|
||||
<name not found> = ArrayList@152[1] { ResolutionCandidate@63 }
|
||||
<name not found> = ArrayList@153[1] { ResolutionCandidate@60 }
|
||||
<name not found> = ArrayList@154[1] { ResolutionCandidate@51 }
|
||||
<name not found> = ArrayList@155[1] { ResolutionCandidate@111 }
|
||||
<name not found> = ArrayList@156[1] { ResolutionCandidate@99 }
|
||||
<name not found> = ArrayList@157[1] { ResolutionCandidate@75 }
|
||||
<name not found> = ArrayList@158[1] { ResolutionCandidate@48 }
|
||||
<name not found> = ArrayList@159[1] { ResolutionCandidate@78 }
|
||||
<name not found> = ArrayList@160[1] { ResolutionCandidate@93 }
|
||||
<name not found> = ArrayList@161[1] { ResolutionCandidate@54 }
|
||||
<name not found> = ArrayList@162[1] { ResolutionCandidate@72 }
|
||||
<name not found> = ArrayList@163[1] { ResolutionCandidate@102 }
|
||||
<name not found> = ArrayList@164[1] { ResolutionCandidate@66 }
|
||||
<name not found> = ArrayList@165[1] { ResolutionCandidate@45 }
|
||||
<name not found> = ArrayList@166[7] { ResolutionCandidate@114, ResolutionCandidate@115, ResolutionCandidate@116, ... }
|
||||
<name not found> = ArrayList@167[8] { ResolutionCandidate@119, ResolutionCandidate@120, ResolutionCandidate@121, ... }
|
||||
<name not found> = ArrayList@168[8] { ResolutionCandidate@139, ResolutionCandidate@140, ResolutionCandidate@141, ... }
|
||||
<name not found> = ArrayList@169[8] { ResolutionCandidate@129, ResolutionCandidate@130, ResolutionCandidate@131, ... }
|
||||
<name not found> = ArrayList@170[8] { ResolutionCandidate@134, ResolutionCandidate@135, ResolutionCandidate@136, ... }
|
||||
<name not found> = ArrayList@171[8] { ResolutionCandidate@124, ResolutionCandidate@125, ResolutionCandidate@126, ... }
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
<name not found> = EmptyList@32[empty]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun test(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
@@ -0,0 +1,8 @@
|
||||
tailRecursive fun withWhen(counter : Int) : Int =
|
||||
when (counter) {
|
||||
0 -> counter
|
||||
50 -> 1 + <!NON_TAIL_RECURSIVE_CALL!>withWhen<!>(counter - 1)
|
||||
else -> withWhen(counter - 1)
|
||||
}
|
||||
|
||||
fun box() : String = if (withWhen(100000) == 1) "OK" else "FAIL"
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
LazyAnnotationDescriptor@0 {
|
||||
resolutionResults = OverloadResolutionResultsImpl@1
|
||||
type = JetTypeImpl@2['tailRecursive']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragmentProvider@3 {
|
||||
packageFragments('<root>': FqName@4) = LazyJavaPackageFragment@5['<root>']
|
||||
packageFragments('Int': FqName@6) = null
|
||||
packageFragments('String': FqName@7) = null
|
||||
packageFragments('java': FqName@8) = LazyJavaPackageFragment@9['java']
|
||||
packageFragments('java.lang': FqName@10) = LazyJavaPackageFragment@11['lang']
|
||||
packageFragments('java.lang.Int': FqName@12) = null
|
||||
packageFragments('java.lang.String': FqName@13) = null
|
||||
packageFragments('java.lang.tailRecursive': FqName@14) = null
|
||||
packageFragments('kotlin': FqName@15) = null
|
||||
packageFragments('kotlin.Int': FqName@16) = null
|
||||
packageFragments('kotlin.String': FqName@17) = null
|
||||
packageFragments('kotlin.io': FqName@18) = null
|
||||
packageFragments('kotlin.jvm': FqName@19) = null
|
||||
packageFragments('kotlin.tailRecursive': FqName@20) = null
|
||||
packageFragments('tailRecursive': FqName@21) = null
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@5['<root>'] {
|
||||
classes('Int': Name@22) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('String': Name@24) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('tailRecursive': Name@25) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
classes('withWhen': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
functions('withWhen': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@23
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@9['java'] {
|
||||
classes('lang': Name@30) = null // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
functions('lang': Name@32) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
memberIndex = computeMemberIndex$1@33 // through LazyPackageFragmentScopeForJavaPackage@31
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@11['lang'] {
|
||||
classes('withWhen': Name@26) = null // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
deserializedPackageScope = Empty@27 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
functions('withWhen': Name@26) = EmptyList@28[empty] // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
memberIndex = computeMemberIndex$1@35 // through LazyPackageFragmentScopeForJavaPackage@34
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@36 {
|
||||
<name not found> = ArrayList@37[1] { ResolutionCandidate@38 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@39 {
|
||||
<name not found> = ArrayList@40[1] { ResolutionCandidate@41 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@42 {
|
||||
<name not found> = ArrayList@43[1] { ResolutionCandidate@44 }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@45 {
|
||||
<name not found> = ArrayList@46[1] { ResolutionCandidate@47 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@48 {
|
||||
<name not found> = ArrayList@49[1] { ResolutionCandidate@50 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@51 {
|
||||
<name not found> = ArrayList@52[1] { ResolutionCandidate@53 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@54 {
|
||||
<name not found> = ArrayList@55[1] { ResolutionCandidate@56 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@57 {
|
||||
<name not found> = ArrayList@58[1] { ResolutionCandidate@59 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@60 {
|
||||
<name not found> = ArrayList@61[1] { ResolutionCandidate@62 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@63 {
|
||||
<name not found> = ArrayList@64[1] { ResolutionCandidate@65 }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@66 {
|
||||
<name not found> = ArrayList@67[8] { ResolutionCandidate@68, ResolutionCandidate@69, ResolutionCandidate@70, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@71 {
|
||||
<name not found> = ArrayList@72[8] { ResolutionCandidate@73, ResolutionCandidate@74, ResolutionCandidate@75, ... }
|
||||
}
|
||||
|
||||
ResolutionTaskHolder@76 {
|
||||
<name not found> = ArrayList@77[8] { ResolutionCandidate@78, ResolutionCandidate@79, ResolutionCandidate@80, ... }
|
||||
}
|
||||
|
||||
null {
|
||||
<name not found> = ArrayList@81[1] { ResolutionCandidate@65 }
|
||||
<name not found> = ArrayList@82[1] { ResolutionCandidate@47 }
|
||||
<name not found> = ArrayList@83[1] { ResolutionCandidate@62 }
|
||||
<name not found> = ArrayList@84[1] { ResolutionCandidate@50 }
|
||||
<name not found> = ArrayList@85[1] { ResolutionCandidate@44 }
|
||||
<name not found> = ArrayList@86[1] { ResolutionCandidate@59 }
|
||||
<name not found> = ArrayList@87[1] { ResolutionCandidate@38 }
|
||||
<name not found> = ArrayList@88[1] { ResolutionCandidate@41 }
|
||||
<name not found> = ArrayList@89[1] { ResolutionCandidate@56 }
|
||||
<name not found> = ArrayList@90[1] { ResolutionCandidate@53 }
|
||||
<name not found> = ArrayList@91[8] { ResolutionCandidate@73, ResolutionCandidate@74, ResolutionCandidate@75, ... }
|
||||
<name not found> = ArrayList@92[8] { ResolutionCandidate@68, ResolutionCandidate@69, ResolutionCandidate@70, ... }
|
||||
<name not found> = ArrayList@93[8] { ResolutionCandidate@78, ResolutionCandidate@79, ResolutionCandidate@80, ... }
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
<name not found> = EmptyList@28[empty]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.String
|
||||
kotlin.tailRecursive() internal fun withWhen(/*0*/ counter: kotlin.Int): kotlin.Int
|
||||
@@ -0,0 +1,13 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
tailRecursive fun withWhen(counter : Int, d : Any) : Int =
|
||||
when (counter) {
|
||||
0 -> counter
|
||||
1, 2 -> withWhen(counter - 1, "1,2")
|
||||
in 3..49 -> withWhen(counter - 1, "3..49")
|
||||
50 -> 1 + <!NON_TAIL_RECURSIVE_CALL!>withWhen<!>(counter - 1, "50")
|
||||
!in 0..50 -> withWhen(counter - 1, "!0..50")
|
||||
else -> withWhen(counter - 1, "else")
|
||||
}
|
||||
|
||||
fun box() : String = if (withWhen(100000, "test") == 1) "OK" else "FAIL"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user