Full Code of Kotlin/kotlin-spec for AI

release 2f7aa0524ec2 cached
6926 files
168.8 MB
26.7M tokens
1 requests
Copy disabled (too large) Download .txt
Showing preview only (106,814K chars total). Download the full file to get everything.
Repository: Kotlin/kotlin-spec
Branch: release
Commit: 2f7aa0524ec2
Files: 6926
Total size: 168.8 MB

Directory structure:
gitextract_iqnl2ub6/

├── .fleet/
│   ├── run.json
│   └── settings.json
├── .github/
│   ├── actions/
│   │   ├── build-spec-in-docker/
│   │   │   └── action.yml
│   │   └── upload-spec-artifacts/
│   │       └── action.yml
│   └── workflows/
│       ├── build-spec-on-pr-in-docker.yml
│       └── build-spec-on-pr.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── ROADMAP.md
├── build.gradle.kts
├── docker/
│   ├── Dockerfile
│   └── build-spec.sh
├── docs/
│   ├── build.gradle.kts
│   ├── html/
│   │   └── build.gradle.kts
│   ├── htmlSections/
│   │   └── build.gradle.kts
│   ├── pdf/
│   │   └── build.gradle.kts
│   ├── pdfSections/
│   │   └── build.gradle.kts
│   ├── scripts/
│   │   ├── build/
│   │   │   ├── buildHtml.sh
│   │   │   ├── buildHtmlBySections.sh
│   │   │   ├── buildPdf.sh
│   │   │   ├── buildPdfBySections.sh
│   │   │   ├── directories.sh
│   │   │   └── settings.sh
│   │   └── filters/
│   │       ├── brokenReferencesReportFilter.sh
│   │       ├── compoundFilter.sh
│   │       ├── copyPasteFilter.sh
│   │       ├── inlineDiagramFilter.sh
│   │       ├── inlineKatexFilter.sh
│   │       ├── markSentencesFilter.sh
│   │       ├── mathInCodeFilter.sh
│   │       ├── processTodoFilter.sh
│   │       └── splitSections.sh
│   └── src/
│       ├── main/
│       │   └── kotlin/
│       │       └── org/
│       │           └── jetbrains/
│       │               └── kotlin/
│       │                   └── spec/
│       │                       ├── brokenReferencesReporter.kt
│       │                       ├── compoundFilter.kt
│       │                       ├── convertGrammar.kt
│       │                       ├── copyPasteFilter.kt
│       │                       ├── inlineDiagramFilter.kt
│       │                       ├── inlineKatex.kt
│       │                       ├── markSentencesFilter.kt
│       │                       ├── mathInCodeFilter.kt
│       │                       ├── processTodoFilter.kt
│       │                       └── splitDocument.kt
│       └── md/
│           ├── commands.md
│           ├── dynamic_math.html
│           ├── epilogue.html
│           ├── index.md
│           ├── kotlin.core/
│           │   ├── annotations.md
│           │   ├── builtins.md
│           │   ├── cdfa.md
│           │   ├── concurrency.md
│           │   ├── coroutines.md
│           │   ├── declarations.md
│           │   ├── exceptions.md
│           │   ├── expressions.md
│           │   ├── index.md
│           │   ├── inheritance.md
│           │   ├── introduction.md
│           │   ├── operators.md
│           │   ├── overload-resolution.md
│           │   ├── packages.md
│           │   ├── rtti.md
│           │   ├── scoping.md
│           │   ├── statements.md
│           │   ├── syntax.md
│           │   ├── type-constraints.md
│           │   ├── type-inference.md
│           │   └── type-system.md
│           ├── kotlin.jvm/
│           │   ├── declarations.md
│           │   ├── index.md
│           │   ├── lambda-expressions.md
│           │   ├── rtti.md
│           │   └── type-system.md
│           ├── kotlin.xml
│           ├── preamble.html
│           ├── preamble.tex
│           └── preface.html
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── grammar/
│   ├── README.md
│   ├── build.gradle.kts
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── scripts/
│   │   ├── compareActuals.sh
│   │   ├── processActuals.sh
│   │   └── processModified.sh
│   ├── src/
│   │   ├── main/
│   │   │   └── antlr/
│   │   │       ├── KotlinLexer.g4
│   │   │       ├── KotlinLexer.tokens
│   │   │       ├── KotlinParser.g4
│   │   │       ├── UnicodeClasses.g4
│   │   │       └── UnicodeClasses.tokens
│   │   └── test/
│   │       └── org/
│   │           └── jetbrains/
│   │               └── kotlin/
│   │                   └── spec/
│   │                       └── grammar/
│   │                           ├── TestRunner.kt
│   │                           ├── parsetree/
│   │                           │   ├── ComparisonTree.kt
│   │                           │   ├── KotlinParseTree.kt
│   │                           │   └── ParseTreeUtil.kt
│   │                           ├── psi/
│   │                           │   └── PsiTextParser.kt
│   │                           └── util/
│   │                               └── TestUtil.kt
│   └── testData/
│       ├── diagnostics/
│       │   ├── Abstract.b.antlrtree.txt
│       │   ├── Abstract.c.antlrtree.txt
│       │   ├── AbstractAccessor.antlrtree.txt
│       │   ├── AbstractInAbstractClass.antlrtree.txt
│       │   ├── AbstractInClass.antlrtree.txt
│       │   ├── AbstractInTrait.antlrtree.txt
│       │   ├── AnonymousInitializerVarAndConstructor.antlrtree.txt
│       │   ├── AnonymousInitializers.antlrtree.txt
│       │   ├── AssignToArrayElement.antlrtree.txt
│       │   ├── AutoCreatedIt.antlrtree.txt
│       │   ├── BacktickNames.antlrtree.txt
│       │   ├── Basic.antlrtree.txt
│       │   ├── BinaryCallsOnNullableValues.antlrtree.txt
│       │   ├── Bounds.a.antlrtree.txt
│       │   ├── Bounds.b.antlrtree.txt
│       │   ├── BreakContinue.antlrtree.txt
│       │   ├── BreakContinueInWhen_after.antlrtree.txt
│       │   ├── BreakContinueInWhen_before.antlrtree.txt
│       │   ├── Builders.a.antlrtree.txt
│       │   ├── Casts.antlrtree.txt
│       │   ├── CharacterLiterals.antlrtree.txt
│       │   ├── CompareToWithErrorType.antlrtree.txt
│       │   ├── Constants.antlrtree.txt
│       │   ├── Constructors.antlrtree.txt
│       │   ├── ConstructorsOfPrimitives.antlrtree.txt
│       │   ├── CovariantOverrideType.antlrtree.txt
│       │   ├── DefaultValueForParameterInFunctionType.antlrtree.txt
│       │   ├── DefaultValuesCheckWithoutBody.antlrtree.txt
│       │   ├── DefaultValuesTypechecking.antlrtree.txt
│       │   ├── DeferredTypes.antlrtree.txt
│       │   ├── DeprecatedGetSetPropertyDelegateConvention.antlrtree.txt
│       │   ├── DeprecatedUnaryOperatorConventions.antlrtree.txt
│       │   ├── DiamondFunction.antlrtree.txt
│       │   ├── DiamondFunctionGeneric.antlrtree.txt
│       │   ├── DiamondProperty.antlrtree.txt
│       │   ├── Dollar.antlrtree.txt
│       │   ├── EnumEntryAsType.antlrtree.txt
│       │   ├── ExtensionCallInvoke.antlrtree.txt
│       │   ├── ExternalAccessors.antlrtree.txt
│       │   ├── ExternalAndAbstract.antlrtree.txt
│       │   ├── ForRangeConventions.antlrtree.txt
│       │   ├── FreeFunctionCalledAsExtension.antlrtree.txt
│       │   ├── FreeFunctionCalledAsExtension.reversed.antlrtree.txt
│       │   ├── FunctionCalleeExpressions.antlrtree.txt
│       │   ├── FunctionParameterWithoutType.antlrtree.txt
│       │   ├── FunctionReturnTypes.antlrtree.txt
│       │   ├── GenericArgumentConsistency.a.antlrtree.txt
│       │   ├── GenericArgumentConsistency.b.antlrtree.txt
│       │   ├── GenericArgumentConsistency.c.antlrtree.txt
│       │   ├── GenericArgumentConsistency.d.antlrtree.txt
│       │   ├── GenericArgumentConsistency.e.antlrtree.txt
│       │   ├── GenericArgumentConsistency.f.antlrtree.txt
│       │   ├── GenericFunctionIsLessSpecific.antlrtree.txt
│       │   ├── IdentityComparisonWithPrimitives.antlrtree.txt
│       │   ├── IncDec.antlrtree.txt
│       │   ├── IncDecOperatorsInExpectClass.antlrtree.txt
│       │   ├── IncorrectCharacterLiterals.antlrtree.txt
│       │   ├── InferNullabilityInThenBlock.antlrtree.txt
│       │   ├── Infix.antlrtree.txt
│       │   ├── InfixModifierApplicability.antlrtree.txt
│       │   ├── InvokeAndRecursiveResolve.antlrtree.txt
│       │   ├── IsExpressions.KotlinFile.antlrtree.txt
│       │   ├── LValueAssignment.antlrtree.txt
│       │   ├── LValueAssignment.diff
│       │   ├── LiteralAsResult.antlrtree.txt
│       │   ├── LocalClassAndShortSubpackageNames.A.antlrtree.txt
│       │   ├── LocalClassAndShortSubpackageNames.B.antlrtree.txt
│       │   ├── MultilineStringTemplates.antlrtree.txt
│       │   ├── MultipleBounds.antlrtree.txt
│       │   ├── NamedFunctionTypeParameterInSupertype.antlrtree.txt
│       │   ├── Nullability.antlrtree.txt
│       │   ├── NumberPrefixAndSuffix.antlrtree.txt
│       │   ├── ObjectWithConstructor.antlrtree.txt
│       │   ├── OperatorChecks.antlrtree.txt
│       │   ├── Operators.antlrtree.txt
│       │   ├── OperatorsWithWrongNames.antlrtree.txt
│       │   ├── OverrideFunctionWithParamDefaultValue.antlrtree.txt
│       │   ├── OverridenFunctionAndSpecifiedTypeParameter.antlrtree.txt
│       │   ├── OverridenSetterVisibility.antlrtree.txt
│       │   ├── OverridingVarByVal.antlrtree.txt
│       │   ├── PackageInExpressionPosition.antlrtree.txt
│       │   ├── PackageInTypePosition.a.antlrtree.txt
│       │   ├── PackageInTypePosition.b.antlrtree.txt
│       │   ├── PackageQualified.a.antlrtree.txt
│       │   ├── PackageQualified.b.antlrtree.txt
│       │   ├── PackageQualified.c.antlrtree.txt
│       │   ├── PackageQualified.d.antlrtree.txt
│       │   ├── PrimaryConstructors.antlrtree.txt
│       │   ├── PrivateFromOuterPackage.a.antlrtree.txt
│       │   ├── PrivateFromOuterPackage.b.antlrtree.txt
│       │   ├── PrivateFromOuterPackage.c.antlrtree.txt
│       │   ├── PrivateSetterForOverridden.antlrtree.txt
│       │   ├── ProcessingEmptyImport.antlrtree.txt
│       │   ├── ProjectionOnFunctionArgumentErrror.antlrtree.txt
│       │   ├── ProjectionsInSupertypes.antlrtree.txt
│       │   ├── Properties.antlrtree.txt
│       │   ├── PropertyInitializers.antlrtree.txt
│       │   ├── QualifiedExpressions.antlrtree.txt
│       │   ├── RecursiveResolve.antlrtree.txt
│       │   ├── RecursiveTypeInference.a.antlrtree.txt
│       │   ├── RecursiveTypeInference.b.antlrtree.txt
│       │   ├── RecursiveTypeInference.c.antlrtree.txt
│       │   ├── RecursiveTypeInference.d.antlrtree.txt
│       │   ├── RecursiveTypeInference.e.antlrtree.txt
│       │   ├── RecursiveTypeInference.f.antlrtree.txt
│       │   ├── RecursiveTypeParameterEqualityCheck.antlrtree.txt
│       │   ├── ReserveYield.1.antlrtree.txt
│       │   ├── ReserveYield.2.antlrtree.txt
│       │   ├── ReserveYield2.1.antlrtree.txt
│       │   ├── ReserveYield2.2.antlrtree.txt
│       │   ├── ReserveYield2.3.antlrtree.txt
│       │   ├── ReserveYield2.4.antlrtree.txt
│       │   ├── ReserveYieldNoMore.1.antlrtree.txt
│       │   ├── ReserveYieldNoMore.2.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.1.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.2.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.3.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.4.antlrtree.txt
│       │   ├── ResolveOfJavaGenerics.antlrtree.txt
│       │   ├── ResolveToJava.a.antlrtree.txt
│       │   ├── ResolveToJava.b.antlrtree.txt
│       │   ├── Return.antlrtree.txt
│       │   ├── ReturnInFunctionWithoutBody.antlrtree.txt
│       │   ├── SafeCallInvoke.antlrtree.txt
│       │   ├── SafeCallNonNullReceiver.antlrtree.txt
│       │   ├── SafeCallNonNullReceiver2.antlrtree.txt
│       │   ├── SafeCallNonNullReceiverReturnNull.antlrtree.txt
│       │   ├── SafeCallOnFakePackage.anotherTest.antlrtree.txt
│       │   ├── SafeCallOnFakePackage.test.antlrtree.txt
│       │   ├── SafeCallOnSuperReceiver.antlrtree.txt
│       │   ├── SafeCallUnknownType.antlrtree.txt
│       │   ├── Serializable.antlrtree.txt
│       │   ├── SetterVisibility.antlrtree.txt
│       │   ├── ShiftFunctionTypes.a.antlrtree.txt
│       │   ├── ShiftFunctionTypes.b.antlrtree.txt
│       │   ├── ShiftFunctionTypes.c.antlrtree.txt
│       │   ├── StarsInFunctionCalls.antlrtree.txt
│       │   ├── StringPrefixAndSuffix.antlrtree.txt
│       │   ├── StringTemplates.antlrtree.txt
│       │   ├── SupertypeListChecks.antlrtree.txt
│       │   ├── SyntaxErrorInTestHighlighting.antlrtree.txt
│       │   ├── SyntaxErrorInTestHighlightingEof.antlrtree.txt
│       │   ├── TraitOverrideObjectMethods.antlrtree.txt
│       │   ├── TraitWithConstructor.antlrtree.txt
│       │   ├── TypeInference.antlrtree.txt
│       │   ├── TypeMismatchOnOverrideWithSyntaxErrors.antlrtree.txt
│       │   ├── Underscore.antlrtree.txt
│       │   ├── UnderscoreUsageInAnnotation.antlrtree.txt
│       │   ├── UnderscoreUsageInCall.antlrtree.txt
│       │   ├── UnderscoreUsageInCallableRefTypeLHS.antlrtree.txt
│       │   ├── UnderscoreUsageInType.antlrtree.txt
│       │   ├── UnderscoreUsageInVariableAsFunctionCall.antlrtree.txt
│       │   ├── UnitByDefaultForFunctionTypes.antlrtree.txt
│       │   ├── UnitValue.antlrtree.txt
│       │   ├── Unresolved.antlrtree.txt
│       │   ├── UnusedInDestructuring.antlrtree.txt
│       │   ├── UnusedParameters.antlrtree.txt
│       │   ├── UnusedVariables.antlrtree.txt
│       │   ├── ValAndFunOverrideCompatibilityClash.antlrtree.txt
│       │   ├── VarargTypes.antlrtree.txt
│       │   ├── Varargs.antlrtree.txt
│       │   ├── Variance.antlrtree.txt
│       │   ├── abstractClassReference.antlrtree.txt
│       │   ├── ambiguityNamedVararg.antlrtree.txt
│       │   ├── annotationArgumentWithAliasedArrayType.antlrtree.txt
│       │   ├── annotations/
│       │   │   ├── AmbigiousAnnotationConstructor.antlrtree.txt
│       │   │   ├── AnnotatedBlock.antlrtree.txt
│       │   │   ├── AnnotatedConstructor.antlrtree.txt
│       │   │   ├── AnnotatedConstructorParams.antlrtree.txt
│       │   │   ├── AnnotatedLocalObjectFun.antlrtree.txt
│       │   │   ├── AnnotatedLocalObjectProperty.antlrtree.txt
│       │   │   ├── AnnotatedLoop.antlrtree.txt
│       │   │   ├── AnnotatedNullableTypes.antlrtree.txt
│       │   │   ├── AnnotatedResultType.antlrtree.txt
│       │   │   ├── AnnotatedTryCatch.antlrtree.txt
│       │   │   ├── AnnotationAsDefaultParameter.antlrtree.txt
│       │   │   ├── AnnotationForClassTypeParameter_15.antlrtree.txt
│       │   │   ├── AnnotationForClassTypeParameter_16.antlrtree.txt
│       │   │   ├── AnnotationForClassTypeParameter_typeUseFlag.antlrtree.txt
│       │   │   ├── AnnotationForFunctionTypeParameter.antlrtree.txt
│       │   │   ├── AnnotationForObject.antlrtree.txt
│       │   │   ├── AnnotationIdentifier.a.antlrtree.txt
│       │   │   ├── AnnotationIdentifier.other_c.antlrtree.txt
│       │   │   ├── AnnotationIdentifier.test_b.antlrtree.txt
│       │   │   ├── AnnotationOnObject.antlrtree.txt
│       │   │   ├── AnnotationsForClasses.antlrtree.txt
│       │   │   ├── AnnotationsForPropertyTypeParameter.antlrtree.txt
│       │   │   ├── BasicAnnotations.antlrtree.txt
│       │   │   ├── ConstructorCall.antlrtree.txt
│       │   │   ├── ConstructorCallAllowed.antlrtree.txt
│       │   │   ├── DanglingMixed.antlrtree.txt
│       │   │   ├── DanglingNoBrackets.antlrtree.txt
│       │   │   ├── DanglingWithBrackets.antlrtree.txt
│       │   │   ├── Deprecated.antlrtree.txt
│       │   │   ├── InheritingAnnotationClass.antlrtree.txt
│       │   │   ├── JavaAnnotationConstructors.antlrtree.txt
│       │   │   ├── JvmSerializableLambdaAnnotation.antlrtree.txt
│       │   │   ├── MultiDeclaration.antlrtree.txt
│       │   │   ├── MutuallyRecursivelyAnnotatedGlobalFunction.antlrtree.txt
│       │   │   ├── MutuallyRecursivelyAnnotatedGlobalFunction.reversed.antlrtree.txt
│       │   │   ├── NonAnnotationClass.antlrtree.txt
│       │   │   ├── RecursivelyAnnotated.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedFunctionParameter.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedGlobalFunction.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedGlobalProperty.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedParameter.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedParameterType.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedParameterWithAt.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedProperty.antlrtree.txt
│       │   │   ├── RecursivelyIncorrectlyAnnotatedParameter.antlrtree.txt
│       │   │   ├── RetentionsOfAnnotationWithExpressionTarget_after.antlrtree.txt
│       │   │   ├── RetentionsOfAnnotationWithExpressionTarget_before.antlrtree.txt
│       │   │   ├── UnresolvedAnnotationOnObject.antlrtree.txt
│       │   │   ├── WrongAnnotationArgsOnObject.antlrtree.txt
│       │   │   ├── annotatedExpressionInsideAnnotation.antlrtree.txt
│       │   │   ├── annotationInheritance.antlrtree.txt
│       │   │   ├── annotationModifier.antlrtree.txt
│       │   │   ├── annotationOnParameterInFunctionType.antlrtree.txt
│       │   │   ├── annotationParameterMustBeConstant/
│       │   │   │   ├── annotationConstructorDefaultParameter.antlrtree.txt
│       │   │   │   ├── booleanLocalVal.antlrtree.txt
│       │   │   │   ├── compareAndEquals.antlrtree.txt
│       │   │   │   ├── enumConst_after.antlrtree.txt
│       │   │   │   ├── enumConst_before.antlrtree.txt
│       │   │   │   ├── javaProperties.a.antlrtree.txt
│       │   │   │   ├── kotlinProperties.antlrtree.txt
│       │   │   │   ├── standaloneInExpression.antlrtree.txt
│       │   │   │   └── strings.antlrtree.txt
│       │   │   ├── annotationRenderingInTypes.antlrtree.txt
│       │   │   ├── annotationsOnDataClassCopy.antlrtree.txt
│       │   │   ├── annotationsOnLambdaAsCallArgument.antlrtree.txt
│       │   │   ├── annotationsOnNullableTypes.antlrtree.txt
│       │   │   ├── arrayLiteralInAnnotationCompanion_after.antlrtree.txt
│       │   │   ├── arrayLiteralInAnnotationCompanion_before.antlrtree.txt
│       │   │   ├── atAnnotationResolve.antlrtree.txt
│       │   │   ├── blockLevelOnTheSameLineWarning.antlrtree.txt
│       │   │   ├── cycleInParameters_after.antlrtree.txt
│       │   │   ├── cycleInParameters_array.antlrtree.txt
│       │   │   ├── cycleInParameters_before.antlrtree.txt
│       │   │   ├── dontReportWarningAboutChangingExecutionOrderForVararg.antlrtree.txt
│       │   │   ├── extensionFunctionType.antlrtree.txt
│       │   │   ├── forParameterAnnotationResolve.antlrtree.txt
│       │   │   ├── functionalTypes/
│       │   │   │   ├── nonParenthesizedAnnotationsWithError.antlrtree.txt
│       │   │   │   ├── nonParenthesizedAnnotationsWithoutError.antlrtree.txt
│       │   │   │   ├── parenthesizedAnnotations.antlrtree.txt
│       │   │   │   └── propagteAnyAnnotations.antlrtree.txt
│       │   │   ├── illegalRequireKotlinValue.antlrtree.txt
│       │   │   ├── illegalSinceKotlinValue.antlrtree.txt
│       │   │   ├── inheritFromAnnotationClass.antlrtree.txt
│       │   │   ├── inheritFromAnnotationClass2.test.antlrtree.txt
│       │   │   ├── invalidTypesInAnnotationConstructor.antlrtree.txt
│       │   │   ├── javaAnnotationAndJavaClassWithIt.foo_AnotherTarget.antlrtree.txt
│       │   │   ├── javaAnnotationWithClassArray.main.antlrtree.txt
│       │   │   ├── kt1860-negative.antlrtree.txt
│       │   │   ├── kt1860-positive.antlrtree.txt
│       │   │   ├── kt1886annotationBody_after.antlrtree.txt
│       │   │   ├── kt1886annotationBody_before.antlrtree.txt
│       │   │   ├── missingValOnParameter.antlrtree.txt
│       │   │   ├── nestedClassesInAnnotations.antlrtree.txt
│       │   │   ├── noNameProperty.antlrtree.txt
│       │   │   ├── onExpression.antlrtree.txt
│       │   │   ├── onFunctionParameter.antlrtree.txt
│       │   │   ├── onInitializer.antlrtree.txt
│       │   │   ├── onLoops.antlrtree.txt
│       │   │   ├── onLoopsUnreachable.antlrtree.txt
│       │   │   ├── onMultiDeclaration.antlrtree.txt
│       │   │   ├── options/
│       │   │   │   ├── annotationAsArg.antlrtree.txt
│       │   │   │   ├── annotationAsArgComplex.antlrtree.txt
│       │   │   │   ├── assignment.antlrtree.txt
│       │   │   │   ├── documented.antlrtree.txt
│       │   │   │   ├── forParam.antlrtree.txt
│       │   │   │   ├── functionExpression.antlrtree.txt
│       │   │   │   ├── functions.antlrtree.txt
│       │   │   │   ├── javaDocumented.DocumentedAnnotations.antlrtree.txt
│       │   │   │   ├── javaKotlinTargetRetention.antlrtree.txt
│       │   │   │   ├── javaKotlinTargetRetentionWithExplicitImport.antlrtree.txt
│       │   │   │   ├── javaretention.AnnotationRetentions.antlrtree.txt
│       │   │   │   ├── multiDeclaration.antlrtree.txt
│       │   │   │   ├── objectLiteral.antlrtree.txt
│       │   │   │   ├── prefix.antlrtree.txt
│       │   │   │   ├── retention.antlrtree.txt
│       │   │   │   ├── setterParam.antlrtree.txt
│       │   │   │   ├── target.antlrtree.txt
│       │   │   │   ├── targets/
│       │   │   │   │   ├── accessors.antlrtree.txt
│       │   │   │   │   ├── annotation.antlrtree.txt
│       │   │   │   │   ├── classifier.antlrtree.txt
│       │   │   │   │   ├── constructor.antlrtree.txt
│       │   │   │   │   ├── empty.antlrtree.txt
│       │   │   │   │   ├── expr.antlrtree.txt
│       │   │   │   │   ├── field.antlrtree.txt
│       │   │   │   │   ├── file.annotation.antlrtree.txt
│       │   │   │   │   ├── file.another.antlrtree.txt
│       │   │   │   │   ├── file.other.antlrtree.txt
│       │   │   │   │   ├── function.antlrtree.txt
│       │   │   │   │   ├── funtypeargs.antlrtree.txt
│       │   │   │   │   ├── incorrect.antlrtree.txt
│       │   │   │   │   ├── init.antlrtree.txt
│       │   │   │   │   ├── java.test_AnnotationTargets.antlrtree.txt
│       │   │   │   │   ├── local.antlrtree.txt
│       │   │   │   │   ├── nested.antlrtree.txt
│       │   │   │   │   ├── property.antlrtree.txt
│       │   │   │   │   ├── returntype.antlrtree.txt
│       │   │   │   │   ├── suppress.antlrtree.txt
│       │   │   │   │   ├── type.antlrtree.txt
│       │   │   │   │   ├── typeParams.antlrtree.txt
│       │   │   │   │   ├── typeargs.antlrtree.txt
│       │   │   │   │   └── valueparam.antlrtree.txt
│       │   │   │   └── unrepeatable.antlrtree.txt
│       │   │   ├── parameters/
│       │   │   │   ├── byte.antlrtree.txt
│       │   │   │   ├── char.antlrtree.txt
│       │   │   │   ├── double.antlrtree.txt
│       │   │   │   ├── expressions/
│       │   │   │   │   ├── andAnd.antlrtree.txt
│       │   │   │   │   ├── boolean.antlrtree.txt
│       │   │   │   │   ├── char.antlrtree.txt
│       │   │   │   │   ├── compositeCallBinary.antlrtree.txt
│       │   │   │   │   ├── divide.antlrtree.txt
│       │   │   │   │   ├── double.antlrtree.txt
│       │   │   │   │   ├── eqeq.antlrtree.txt
│       │   │   │   │   ├── escapedString.antlrtree.txt
│       │   │   │   │   ├── float.antlrtree.txt
│       │   │   │   │   ├── gt.antlrtree.txt
│       │   │   │   │   ├── gteq.antlrtree.txt
│       │   │   │   │   ├── intrincics.antlrtree.txt
│       │   │   │   │   ├── labeled.antlrtree.txt
│       │   │   │   │   ├── long.antlrtree.txt
│       │   │   │   │   ├── lt.antlrtree.txt
│       │   │   │   │   ├── lteq.antlrtree.txt
│       │   │   │   │   ├── maxValue.antlrtree.txt
│       │   │   │   │   ├── maxValueByte.antlrtree.txt
│       │   │   │   │   ├── maxValueInt.antlrtree.txt
│       │   │   │   │   ├── miltiply.antlrtree.txt
│       │   │   │   │   ├── minus.antlrtree.txt
│       │   │   │   │   ├── mod.antlrtree.txt
│       │   │   │   │   ├── multilineString.antlrtree.txt
│       │   │   │   │   ├── not.antlrtree.txt
│       │   │   │   │   ├── noteq.antlrtree.txt
│       │   │   │   │   ├── orOr.antlrtree.txt
│       │   │   │   │   ├── paranthesized.antlrtree.txt
│       │   │   │   │   ├── plus.antlrtree.txt
│       │   │   │   │   ├── simpleCallBinary.antlrtree.txt
│       │   │   │   │   ├── stringPlusInt.antlrtree.txt
│       │   │   │   │   ├── stringTemplate.antlrtree.txt
│       │   │   │   │   ├── strings.antlrtree.txt
│       │   │   │   │   ├── unaryMinus.antlrtree.txt
│       │   │   │   │   └── unaryPlus.antlrtree.txt
│       │   │   │   ├── float.antlrtree.txt
│       │   │   │   ├── int.antlrtree.txt
│       │   │   │   ├── long.antlrtree.txt
│       │   │   │   └── short.antlrtree.txt
│       │   │   ├── rendering/
│       │   │   │   ├── cannotOverrideInvisibleMember.antlrtree.txt
│       │   │   │   ├── conflictingOverloads.antlrtree.txt
│       │   │   │   ├── differentNamesForParameter.antlrtree.txt
│       │   │   │   ├── memberProjectedOut.antlrtree.txt
│       │   │   │   ├── multipleInheritedDefaults.antlrtree.txt
│       │   │   │   ├── notImplementedMembers.antlrtree.txt
│       │   │   │   ├── notImplementedMembersAroundJava.main.antlrtree.txt
│       │   │   │   ├── tooManyArguments.antlrtree.txt
│       │   │   │   ├── typeMismatchDueToTypeProjections.antlrtree.txt
│       │   │   │   ├── typeMismatchOnOverride.antlrtree.txt
│       │   │   │   ├── typeMismatchOnOverrideJavaNullable.k.antlrtree.txt
│       │   │   │   ├── typeMismatchOnOverrideJavaNullable.ll.k.antlrtree.txt
│       │   │   │   └── unusedValue.antlrtree.txt
│       │   │   ├── repeatable/
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_5.KR.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_5.KS.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_5.test.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_6.KR.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_6.KS.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_6.test.antlrtree.txt
│       │   │   │   ├── containerArguments_1_5.antlrtree.txt
│       │   │   │   ├── containerArguments_1_6.antlrtree.txt
│       │   │   │   ├── containerRetention_1_5.antlrtree.txt
│       │   │   │   ├── containerRetention_1_6.antlrtree.txt
│       │   │   │   ├── containerTarget_1_6.antlrtree.txt
│       │   │   │   ├── javaRepeatableInKotlin.antlrtree.txt
│       │   │   │   ├── javaRepeatable_1_5.usage.antlrtree.txt
│       │   │   │   ├── javaRepeatable_1_6.usage.antlrtree.txt
│       │   │   │   ├── javaUnrepeatable_1_5.usage.antlrtree.txt
│       │   │   │   ├── javaUnrepeatable_1_6.usage.antlrtree.txt
│       │   │   │   ├── kotlinRepeatable_1_5.antlrtree.txt
│       │   │   │   ├── kotlinRepeatable_1_6.antlrtree.txt
│       │   │   │   ├── nestedClassContainer_1_5.antlrtree.txt
│       │   │   │   └── nestedClassContainer_1_6.antlrtree.txt
│       │   │   ├── requireKotlin.antlrtree.txt
│       │   │   ├── typeAnnotations.antlrtree.txt
│       │   │   ├── typeArgumentsInAnnotation.antlrtree.txt
│       │   │   ├── typeParameterAsAnnotation.antlrtree.txt
│       │   │   ├── typeUse/
│       │   │   │   ├── kt19455.antlrtree.txt
│       │   │   │   ├── kt25876.antlrtree.txt
│       │   │   │   ├── kt45905.main.antlrtree.txt
│       │   │   │   ├── kt46173.antlrtree.txt
│       │   │   │   ├── kt47772.antlrtree.txt
│       │   │   │   ├── kt8325.antlrtree.txt
│       │   │   │   └── nonTypeUseAnnotationOnType.antlrtree.txt
│       │   │   ├── unresolvedReferenceRange.antlrtree.txt
│       │   │   └── withUseSiteTarget/
│       │   │       ├── DelegateAnnotations.antlrtree.txt
│       │   │       ├── FieldAnnotations.antlrtree.txt
│       │   │       ├── FileAnnotations.1.antlrtree.txt
│       │   │       ├── FileAnnotations.2.antlrtree.txt
│       │   │       ├── FileAnnotations.annotations.antlrtree.txt
│       │   │       ├── GetterAnnotations.antlrtree.txt
│       │   │       ├── ParamAnnotations.antlrtree.txt
│       │   │       ├── PropertyAnnotations.antlrtree.txt
│       │   │       ├── ReceiverAnnotations.antlrtree.txt
│       │   │       ├── SetterAnnotations.antlrtree.txt
│       │   │       ├── SparamAnnotations.antlrtree.txt
│       │   │       ├── diagnosticFileAnnotationInWrongPlace.antlrtree.txt
│       │   │       ├── diagnosticWithoutPackage.antlrtree.txt
│       │   │       ├── diagnosticWithoutPackageWithSimpleAnnotation.antlrtree.txt
│       │   │       ├── fileAnnotationWithoutColon_after.antlrtree.txt
│       │   │       ├── fileAnnotationWithoutColon_before.antlrtree.txt
│       │   │       ├── kt23992.antlrtree.txt
│       │   │       ├── kt23992_after.antlrtree.txt
│       │   │       ├── kt26638.antlrtree.txt
│       │   │       ├── kt26638_after.antlrtree.txt
│       │   │       ├── prohibitUseSiteGetTargetAnnotationsOff.antlrtree.txt
│       │   │       ├── prohibitUseSiteGetTargetAnnotationsOn.antlrtree.txt
│       │   │       ├── receiverUseSiteTargetOnExtensionFunction_after.antlrtree.txt
│       │   │       ├── receiverUseSiteTargetOnExtensionFunction_before.antlrtree.txt
│       │   │       ├── repeatable.antlrtree.txt
│       │   │       ├── wrongParamAnnotationsOnTypesError.antlrtree.txt
│       │   │       ├── wrongParamAnnotationsOnTypes_after.antlrtree.txt
│       │   │       └── wrongParamAnnotationsOnTypes_before.antlrtree.txt
│       │   ├── backingField/
│       │   │   ├── CustomGetSet.antlrtree.txt
│       │   │   ├── CustomGetVal.antlrtree.txt
│       │   │   ├── CustomGetValGlobal.antlrtree.txt
│       │   │   ├── CustomGetVar.antlrtree.txt
│       │   │   ├── CustomSet.antlrtree.txt
│       │   │   ├── ExtensionProperty.antlrtree.txt
│       │   │   ├── FieldAsParam.antlrtree.txt
│       │   │   ├── FieldAsProperty.antlrtree.txt
│       │   │   ├── FieldDerived.antlrtree.txt
│       │   │   ├── FieldInInterface.antlrtree.txt
│       │   │   ├── FieldInLocal.antlrtree.txt
│       │   │   ├── FieldOnVal.antlrtree.txt
│       │   │   ├── FieldOnVar.antlrtree.txt
│       │   │   ├── FieldReassignment_after.antlrtree.txt
│       │   │   ├── FieldReassignment_before.antlrtree.txt
│       │   │   ├── FieldShadow.antlrtree.txt
│       │   │   ├── InitCustomSetter.antlrtree.txt
│       │   │   ├── InitOpenSetter.antlrtree.txt
│       │   │   ├── LocalDeclarations.antlrtree.txt
│       │   │   ├── MustBeInitializedEffectivelyFinalOff.antlrtree.txt
│       │   │   ├── MustBeInitializedEffectivelyFinalOn.antlrtree.txt
│       │   │   ├── OpenValPartialDeferredInitErrorAnyway.antlrtree.txt
│       │   │   ├── OpenValPartialDeferredInitSecondaryConstructorErrorAnyway.antlrtree.txt
│       │   │   ├── OpenValPartialDeferredInitTwoSecondaryConstructorsErrorAnyway.antlrtree.txt
│       │   │   ├── SetterWithExplicitType.antlrtree.txt
│       │   │   ├── ValDeferredInitInFinalClass.antlrtree.txt
│       │   │   ├── ValDeferredInitInOpenClassOpenValError.antlrtree.txt
│       │   │   ├── ValDeferredInitInOpenClassOpenValWarning.antlrtree.txt
│       │   │   ├── ValWithSetterDeferredInit.antlrtree.txt
│       │   │   ├── VarDeferredInitInFinalClass.antlrtree.txt
│       │   │   ├── VarDeferredInitInOpenClass.antlrtree.txt
│       │   │   ├── kt782packageLevel.antlrtree.txt
│       │   │   └── prohibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor/
│       │   │       ├── implicitPrimaryConstructor_errorAnyway.antlrtree.txt
│       │   │       ├── noPrimary_oneInheritedSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneInheritedSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_deferredInitInSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_deferredInitInSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValError_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValError_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValWarning_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValWarning_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openVar_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openVar_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_partialDeferredInitInSecondary_errorAnyway.antlrtree.txt
│       │   │       ├── noPrimary_partialDeferredInitInTwoSecondaries_errorAnyway.antlrtree.txt
│       │   │       ├── noPrimary_twoSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_twoSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       └── onePrimary_oneSecondary_errorAnyway.antlrtree.txt
│       │   ├── callableReference/
│       │   │   ├── adapted/
│       │   │   │   ├── adaptationByExpectTypeOutsideCall.antlrtree.txt
│       │   │   │   ├── adaptationInWhenWithMapOf.antlrtree.txt
│       │   │   │   ├── adaptationToOverridenWithoutDefault.antlrtree.txt
│       │   │   │   ├── noKFunctionForAdaptation.antlrtree.txt
│       │   │   │   └── simpleAdaptationOutsideOfCall.antlrtree.txt
│       │   │   ├── bareType.antlrtree.txt
│       │   │   ├── bound/
│       │   │   │   ├── classVsStarImportedCompanion.1.antlrtree.txt
│       │   │   │   ├── classVsStarImportedCompanion.2.antlrtree.txt
│       │   │   │   ├── classVsStarImportedObject.1.antlrtree.txt
│       │   │   │   ├── classVsStarImportedObject.2.antlrtree.txt
│       │   │   │   ├── companionObject.antlrtree.txt
│       │   │   │   ├── controlFlow.antlrtree.txt
│       │   │   │   ├── dataFlow.antlrtree.txt
│       │   │   │   ├── expectedType.antlrtree.txt
│       │   │   │   ├── expressionWithNullableType.test.antlrtree.txt
│       │   │   │   ├── functionCallWithoutArguments.antlrtree.txt
│       │   │   │   ├── innerNested.antlrtree.txt
│       │   │   │   ├── kt12843.antlrtree.txt
│       │   │   │   ├── noThisInSuperCall.antlrtree.txt
│       │   │   │   ├── object.antlrtree.txt
│       │   │   │   ├── privateToThis.antlrtree.txt
│       │   │   │   ├── referenceToStaticMethodOnInstance.test.antlrtree.txt
│       │   │   │   ├── reservedExpressionSyntax.antlrtree.txt
│       │   │   │   ├── reservedExpressionSyntax2.antlrtree.txt
│       │   │   │   ├── reservedExpressionSyntax3.antlrtree.txt
│       │   │   │   ├── syntheticExtensionOnLHS.test.antlrtree.txt
│       │   │   │   └── valueOfTypeParameterType.antlrtree.txt
│       │   │   ├── callableReferenceAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── callableReferenceAssignmentToVar.lib.antlrtree.txt
│       │   │   ├── callableReferenceAssignmentToVar.main.antlrtree.txt
│       │   │   ├── callableReferenceInWhenExpression.antlrtree.txt
│       │   │   ├── callableReferenceWithMostSpecificGenericTypeParameter.antlrtree.txt
│       │   │   ├── callableReferencesToCompanionMembers.antlrtree.txt
│       │   │   ├── classVsPackage.1.antlrtree.txt
│       │   │   ├── classVsPackage.2.antlrtree.txt
│       │   │   ├── classVsPackage.test.antlrtree.txt
│       │   │   ├── compatibilityResolveWithVarargAndOperatorCall.antlrtree.txt
│       │   │   ├── constraintFromLHSWithCorrectDirection.antlrtree.txt
│       │   │   ├── constraintFromLHSWithCorrectDirectionError.antlrtree.txt
│       │   │   ├── correctCandidateWithCompatibilityForSeveralCandidates.antlrtree.txt
│       │   │   ├── correctInfoAfterArrayLikeCall.antlrtree.txt
│       │   │   ├── deprecateTopLevelReferenceWithCompanionLHS.antlrtree.txt
│       │   │   ├── deprecatedCompanionReceiverInParentheses.lib.antlrtree.txt
│       │   │   ├── deprecatedCompanionReceiverInParentheses.main.antlrtree.txt
│       │   │   ├── ea81649_errorPropertyLHS.bar.antlrtree.txt
│       │   │   ├── ea81649_errorPropertyLHS.foo.antlrtree.txt
│       │   │   ├── emptyLhs.antlrtree.txt
│       │   │   ├── expectedTypeAsSubtypeOfFunctionType.antlrtree.txt
│       │   │   ├── function/
│       │   │   │   ├── abstractClassConstructors.antlrtree.txt
│       │   │   │   ├── ambiguityTopLevelVsTopLevel.antlrtree.txt
│       │   │   │   ├── annotationClassConstructor.antlrtree.txt
│       │   │   │   ├── callableRefrenceOnNestedObject.antlrtree.txt
│       │   │   │   ├── classMemberVsConstructorLikeFunction.Foo.antlrtree.txt
│       │   │   │   ├── classMemberVsConstructorLikeFunction.test.antlrtree.txt
│       │   │   │   ├── constructorFromClass.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.A.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.AFactory.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.B.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.Util.antlrtree.txt
│       │   │   │   ├── constructorFromExtension.antlrtree.txt
│       │   │   │   ├── constructorFromExtensionInClass.antlrtree.txt
│       │   │   │   ├── constructorFromTopLevel.antlrtree.txt
│       │   │   │   ├── constructorOfNestedClassInObject.antlrtree.txt
│       │   │   │   ├── differentPackageClass.a.antlrtree.txt
│       │   │   │   ├── differentPackageClass.b.antlrtree.txt
│       │   │   │   ├── differentPackageExtension.a.antlrtree.txt
│       │   │   │   ├── differentPackageExtension.b.antlrtree.txt
│       │   │   │   ├── differentPackageTopLevel.a.antlrtree.txt
│       │   │   │   ├── differentPackageTopLevel.b.antlrtree.txt
│       │   │   │   ├── empty.antlrtree.txt
│       │   │   │   ├── extensionFromTopLevel.antlrtree.txt
│       │   │   │   ├── extensionInClassDisallowed.antlrtree.txt
│       │   │   │   ├── extensionOnNullable.antlrtree.txt
│       │   │   │   ├── extensionToSupertype.antlrtree.txt
│       │   │   │   ├── fakeOverrideType.antlrtree.txt
│       │   │   │   ├── genericClassFromTopLevel.antlrtree.txt
│       │   │   │   ├── importedInnerConstructor.antlrtree.txt
│       │   │   │   ├── innerConstructorFromClass.antlrtree.txt
│       │   │   │   ├── innerConstructorFromExtension.antlrtree.txt
│       │   │   │   ├── innerConstructorFromTopLevel.antlrtree.txt
│       │   │   │   ├── javaStaticMethod.1.antlrtree.txt
│       │   │   │   ├── lhsNotAClass.antlrtree.txt
│       │   │   │   ├── localConstructor.antlrtree.txt
│       │   │   │   ├── localConstructorFromExtensionInLocalClass.antlrtree.txt
│       │   │   │   ├── localConstructorFromLocalClass.antlrtree.txt
│       │   │   │   ├── localConstructorFromLocalExtension.antlrtree.txt
│       │   │   │   ├── localNamedFun.antlrtree.txt
│       │   │   │   ├── localNamedFunFromExtensionInLocalClass.antlrtree.txt
│       │   │   │   ├── localNamedFunFromLocalClass.antlrtree.txt
│       │   │   │   ├── localNamedFunFromLocalExtension.antlrtree.txt
│       │   │   │   ├── longQualifiedName.a.antlrtree.txt
│       │   │   │   ├── longQualifiedName.b.antlrtree.txt
│       │   │   │   ├── longQualifiedNameGeneric.a.antlrtree.txt
│       │   │   │   ├── longQualifiedNameGeneric.b.antlrtree.txt
│       │   │   │   ├── memberFromTopLevel.antlrtree.txt
│       │   │   │   ├── nestedConstructorFromClass.antlrtree.txt
│       │   │   │   ├── nestedConstructorFromExtension.antlrtree.txt
│       │   │   │   ├── nestedConstructorFromTopLevel.antlrtree.txt
│       │   │   │   ├── noAmbiguityLocalVsTopLevel.antlrtree.txt
│       │   │   │   ├── noAmbiguityMemberVsExtension.antlrtree.txt
│       │   │   │   ├── noAmbiguityMemberVsTopLevel.antlrtree.txt
│       │   │   │   ├── privateStaticAndPublicMember.main.antlrtree.txt
│       │   │   │   ├── renameOnImport.a.antlrtree.txt
│       │   │   │   ├── renameOnImport.b.antlrtree.txt
│       │   │   │   ├── topLevelFromClass.antlrtree.txt
│       │   │   │   ├── topLevelFromExtension.antlrtree.txt
│       │   │   │   ├── topLevelFromExtensionInClass.antlrtree.txt
│       │   │   │   ├── topLevelFromTopLevel.antlrtree.txt
│       │   │   │   └── unresolved.antlrtree.txt
│       │   │   ├── functionReferenceWithDefaultValueAsOtherFunctionType.antlrtree.txt
│       │   │   ├── functionReferenceWithDefaultValueAsOtherFunctionType_enabled.antlrtree.txt
│       │   │   ├── generic/
│       │   │   │   ├── argumentAndReturnExpectedType.antlrtree.txt
│       │   │   │   ├── argumentExpectedType.antlrtree.txt
│       │   │   │   ├── boundViolated.antlrtree.txt
│       │   │   │   ├── dependOnArgumentType.1.antlrtree.txt
│       │   │   │   ├── expectedFunctionType.antlrtree.txt
│       │   │   │   ├── explicitTypeArguments.antlrtree.txt
│       │   │   │   ├── genericExtensionFunction.antlrtree.txt
│       │   │   │   ├── genericFunctionsWithNullableTypes.antlrtree.txt
│       │   │   │   ├── incorrectNumberOfTypeArguments.antlrtree.txt
│       │   │   │   ├── kt10968.antlrtree.txt
│       │   │   │   ├── kt11075.antlrtree.txt
│       │   │   │   ├── kt12286.antlrtree.txt
│       │   │   │   ├── kt35896.antlrtree.txt
│       │   │   │   ├── kt7470.antlrtree.txt
│       │   │   │   ├── nestedCallWithOverload.antlrtree.txt
│       │   │   │   ├── resolutionGenericCallableWithNullableTypes.antlrtree.txt
│       │   │   │   ├── resolutionWithGenericCallable.antlrtree.txt
│       │   │   │   └── specialCalls.antlrtree.txt
│       │   │   ├── genericCallWithReferenceAgainstVararg.antlrtree.txt
│       │   │   ├── genericCallWithReferenceAgainstVarargAndKFunction.antlrtree.txt
│       │   │   ├── genericTypealiasInLhs.antlrtree.txt
│       │   │   ├── kt15439_completeCall.antlrtree.txt
│       │   │   ├── kt25433.antlrtree.txt
│       │   │   ├── kt31981.antlrtree.txt
│       │   │   ├── kt32256.antlrtree.txt
│       │   │   ├── kt32267.antlrtree.txt
│       │   │   ├── kt34314.antlrtree.txt
│       │   │   ├── kt34314_lambda.antlrtree.txt
│       │   │   ├── kt35105.antlrtree.txt
│       │   │   ├── kt35959.antlrtree.txt
│       │   │   ├── kt37530.antlrtree.txt
│       │   │   ├── kt46437.antlrtree.txt
│       │   │   ├── kt49038.antlrtree.txt
│       │   │   ├── kt52503.antlrtree.txt
│       │   │   ├── kt7430_wrongClassOnLHS.antlrtree.txt
│       │   │   ├── lambdaResult.antlrtree.txt
│       │   │   ├── memberExtensionsImportedFromObjectsUnsupported.antlrtree.txt
│       │   │   ├── noAmbiguityWhenAllReferencesAreInapplicable.antlrtree.txt
│       │   │   ├── noCompatibilityResolveWithProressiveModeForNI.antlrtree.txt
│       │   │   ├── noExceptionOnRedCodeWithArrayLikeCall.antlrtree.txt
│       │   │   ├── overloadResolutionWithDefaults.antlrtree.txt
│       │   │   ├── packageInLhs.qualifiedName.antlrtree.txt
│       │   │   ├── packageInLhs.simpleName.antlrtree.txt
│       │   │   ├── parsingPriorityOfGenericArgumentsVsLess.antlrtree.txt
│       │   │   ├── property/
│       │   │   │   ├── abstractPropertyViaSubclasses.antlrtree.txt
│       │   │   │   ├── accessViaSubclass.antlrtree.txt
│       │   │   │   ├── backingField.antlrtree.txt
│       │   │   │   ├── classFromClass.antlrtree.txt
│       │   │   │   ├── extensionFromTopLevel.antlrtree.txt
│       │   │   │   ├── extensionPropertyOnNullable.antlrtree.txt
│       │   │   │   ├── extensionsSameName.antlrtree.txt
│       │   │   │   ├── genericClass.antlrtree.txt
│       │   │   │   ├── javaInstanceField.test.antlrtree.txt
│       │   │   │   ├── javaStaticFieldViaImport.test.antlrtree.txt
│       │   │   │   ├── kt7564.antlrtree.txt
│       │   │   │   ├── kt7945_unrelatedClass.antlrtree.txt
│       │   │   │   ├── memberFromTopLevel.antlrtree.txt
│       │   │   │   ├── mutablePropertyViaDelegation.antlrtree.txt
│       │   │   │   ├── propertyFromAbstractSuperClass.antlrtree.txt
│       │   │   │   ├── protectedVarFromClass.antlrtree.txt
│       │   │   │   ├── returnTypeDependentOnGenericProperty.antlrtree.txt
│       │   │   │   ├── samePriorityForFunctionsAndProperties.antlrtree.txt
│       │   │   │   └── topLevelFromTopLevel.antlrtree.txt
│       │   │   ├── propertyOfNestedGenericClass.antlrtree.txt
│       │   │   ├── referenceAdaptationCompatibility.antlrtree.txt
│       │   │   ├── referenceInCycleInProperties.antlrtree.txt
│       │   │   ├── referenceToCompanionObjectMemberViaClassName.antlrtree.txt
│       │   │   ├── referenceToCompanionObjectMemberViaClassNameCompatibility.antlrtree.txt
│       │   │   ├── resolve/
│       │   │   │   ├── adaptedReferenceAgainstKCallable.antlrtree.txt
│       │   │   │   ├── adaptedReferenceAgainstReflectionType.antlrtree.txt
│       │   │   │   ├── ambiguityWhenNoApplicableCallableReferenceCandidate.antlrtree.txt
│       │   │   │   ├── ambiguityWithBoundExtensionReceiver.antlrtree.txt
│       │   │   │   ├── ambiguousWithVararg.antlrtree.txt
│       │   │   │   ├── applicableCallableReferenceFromDistantScope.antlrtree.txt
│       │   │   │   ├── byArgType.antlrtree.txt
│       │   │   │   ├── byGenericArgType.antlrtree.txt
│       │   │   │   ├── byValType.antlrtree.txt
│       │   │   │   ├── callableReferenceToVarargWithOverload.antlrtree.txt
│       │   │   │   ├── chooseCallableReferenceDependingOnInferredReceiver.antlrtree.txt
│       │   │   │   ├── chooseMostSpecificCandidateUsingCandidateDescriptorNotReflectionType.antlrtree.txt
│       │   │   │   ├── chooseOuterCallBySingleCallableReference.antlrtree.txt
│       │   │   │   ├── commonSupertypeFromReturnTypesOfCallableReference.antlrtree.txt
│       │   │   │   ├── compatibilityWarningOnReferenceAgainstReflectiveType.antlrtree.txt
│       │   │   │   ├── constructor.antlrtree.txt
│       │   │   │   ├── eagerAndPostponedCallableReferences.antlrtree.txt
│       │   │   │   ├── eagerResolveOfSingleCallableReference.antlrtree.txt
│       │   │   │   ├── innerClassConstructorOnOuterClassInstance.antlrtree.txt
│       │   │   │   ├── intersectionTypeOverloadWithWrongParameter.antlrtree.txt
│       │   │   │   ├── kt10036.antlrtree.txt
│       │   │   │   ├── kt10036_bound.antlrtree.txt
│       │   │   │   ├── kt12338.antlrtree.txt
│       │   │   │   ├── kt12751.antlrtree.txt
│       │   │   │   ├── kt35887.antlrtree.txt
│       │   │   │   ├── kt35887_simple.antlrtree.txt
│       │   │   │   ├── kt35920.main.antlrtree.txt
│       │   │   │   ├── kt8596.antlrtree.txt
│       │   │   │   ├── kt9601.antlrtree.txt
│       │   │   │   ├── moreSpecificAmbiguousExtensions.antlrtree.txt
│       │   │   │   ├── moreSpecificSimple.antlrtree.txt
│       │   │   │   ├── multipleOutersAndMultipleCallableReferences.antlrtree.txt
│       │   │   │   ├── nestedReferenceCallAgainstExpectedType.antlrtree.txt
│       │   │   │   ├── noAmbiguityBetweenTopLevelAndMemberProperty.antlrtree.txt
│       │   │   │   ├── noFakeDescriptorForObject.antlrtree.txt
│       │   │   │   ├── onlyInputTypesOnCallableReference.antlrtree.txt
│       │   │   │   ├── overloadAmbiguityForSimpleLastExpressionOfBlock.antlrtree.txt
│       │   │   │   ├── overloads.antlrtree.txt
│       │   │   │   ├── overloadsBound.antlrtree.txt
│       │   │   │   ├── overloadsMember.antlrtree.txt
│       │   │   │   ├── postponedResolveOfManyCallableReference.antlrtree.txt
│       │   │   │   ├── resolveCallableReferencesAfterAllSimpleArguments.antlrtree.txt
│       │   │   │   ├── resolveEqualsOperatorWithAnyExpectedType.antlrtree.txt
│       │   │   │   ├── resolveReferenceAgainstKFunctionAndKPrpoerty.antlrtree.txt
│       │   │   │   ├── resolveTwoReferencesAgainstGenerics.antlrtree.txt
│       │   │   │   ├── valVsFun.antlrtree.txt
│       │   │   │   ├── withAs.antlrtree.txt
│       │   │   │   ├── withExtFun.antlrtree.txt
│       │   │   │   ├── withGenericFun.antlrtree.txt
│       │   │   │   ├── withPlaceholderTypes.antlrtree.txt
│       │   │   │   └── withVararg.antlrtree.txt
│       │   │   ├── rewriteAtSliceOnGetOperator.antlrtree.txt
│       │   │   ├── sam.test.antlrtree.txt
│       │   │   ├── subtypeArgumentFromRHSForReference.antlrtree.txt
│       │   │   ├── suspendCallableReference.antlrtree.txt
│       │   │   ├── typealiases.antlrtree.txt
│       │   │   ├── unitAdaptationForReferenceCompatibility.test.antlrtree.txt
│       │   │   ├── unsupported/
│       │   │   │   ├── callableReferenceToLocalVariable.antlrtree.txt
│       │   │   │   ├── classLiteralsWithEmptyLHS.antlrtree.txt
│       │   │   │   ├── javaOverridesKotlinProperty.Main.antlrtree.txt
│       │   │   │   ├── localVariable.antlrtree.txt
│       │   │   │   ├── localVariableWithSubstitution.antlrtree.txt
│       │   │   │   ├── parameterWithSubstitution.antlrtree.txt
│       │   │   │   ├── referenceToKotlinPropertyViaIntermediateJavaClass.Main.antlrtree.txt
│       │   │   │   ├── syntheticProperties.test.antlrtree.txt
│       │   │   │   └── syntheticPropertiesOnJavaAnnotation.Main.antlrtree.txt
│       │   │   ├── unused.antlrtree.txt
│       │   │   ├── whitespacesInExpression.antlrtree.txt
│       │   │   └── withQuestionMarks.antlrtree.txt
│       │   ├── cast/
│       │   │   ├── AsArray.antlrtree.txt
│       │   │   ├── AsErasedError.antlrtree.txt
│       │   │   ├── AsErasedFine.antlrtree.txt
│       │   │   ├── AsErasedStar.antlrtree.txt
│       │   │   ├── AsErasedWarning.antlrtree.txt
│       │   │   ├── AsInBinaryUnary.antlrtree.txt
│       │   │   ├── AsInBlockWithReturnType.antlrtree.txt
│       │   │   ├── AsInCompoundAssignment.antlrtree.txt
│       │   │   ├── AsInExpressionBody.antlrtree.txt
│       │   │   ├── AsInPropertyAndPropertyAccessor.antlrtree.txt
│       │   │   ├── AsNothing.antlrtree.txt
│       │   │   ├── AsTypeAlias.antlrtree.txt
│       │   │   ├── AsWithOtherParameter.antlrtree.txt
│       │   │   ├── DowncastMap.antlrtree.txt
│       │   │   ├── ExtensionAsNonExtension.antlrtree.txt
│       │   │   ├── FlexibleTargetType.sample.antlrtree.txt
│       │   │   ├── IsErasedAllowForDerivedWithOneSubstitutedAndOneSameGeneric.antlrtree.txt
│       │   │   ├── IsErasedAllowForExactSupertypeCheck.antlrtree.txt
│       │   │   ├── IsErasedAllowForOverridenVarianceWithProjection.antlrtree.txt
│       │   │   ├── IsErasedAllowForSupertypeCheckWithContrvariance.antlrtree.txt
│       │   │   ├── IsErasedAllowForSupertypeCheckWithCovariance.antlrtree.txt
│       │   │   ├── IsErasedAllowForTypeWithIrrelevantMixin.antlrtree.txt
│       │   │   ├── IsErasedAllowForTypeWithTwoSameTypeSubstitutions.antlrtree.txt
│       │   │   ├── IsErasedAllowForTypeWithoutTypeArguments.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOut.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOut2.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOut3.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOutAtClass.antlrtree.txt
│       │   │   ├── IsErasedAllowParameterSubtype.antlrtree.txt
│       │   │   ├── IsErasedAllowSameClassParameter.antlrtree.txt
│       │   │   ├── IsErasedAllowSameParameterParameter.antlrtree.txt
│       │   │   ├── IsErasedDisallowDifferentArgInvariantPosition.antlrtree.txt
│       │   │   ├── IsErasedDisallowForOverridenVariance.antlrtree.txt
│       │   │   ├── IsErasedDisallowForTypeWithConstraints.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromAny.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromIn.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromOut.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromOutAtClass.antlrtree.txt
│       │   │   ├── IsErasedDissallowForSubtypeMappedToTwoParamsWithFirstInvalid.antlrtree.txt
│       │   │   ├── IsErasedDissallowForSubtypeMappedToTwoParamsWithSecondInvalid.antlrtree.txt
│       │   │   ├── IsErasedNonGeneric.antlrtree.txt
│       │   │   ├── IsErasedNullableTasT.antlrtree.txt
│       │   │   ├── IsErasedStar.antlrtree.txt
│       │   │   ├── IsErasedTasT.antlrtree.txt
│       │   │   ├── IsErasedToErrorType.antlrtree.txt
│       │   │   ├── IsErasedUpcastToNonReified.antlrtree.txt
│       │   │   ├── IsForTypeWithComplexUpperBound.antlrtree.txt
│       │   │   ├── IsRecursionSustainable.antlrtree.txt
│       │   │   ├── IsTraits.antlrtree.txt
│       │   │   ├── IsWithCycleUpperBounds.antlrtree.txt
│       │   │   ├── NullableToNullable.antlrtree.txt
│       │   │   ├── StableTypeForUselessCast.antlrtree.txt
│       │   │   ├── UselessSafeCast.antlrtree.txt
│       │   │   ├── WhenErasedDisallowFromAny.antlrtree.txt
│       │   │   ├── WhenWithExpression.antlrtree.txt
│       │   │   ├── bare/
│       │   │   │   ├── AsNestedBare.antlrtree.txt
│       │   │   │   ├── AsNullable.antlrtree.txt
│       │   │   │   ├── AsNullableNotEnough.antlrtree.txt
│       │   │   │   ├── EitherAs.antlrtree.txt
│       │   │   │   ├── EitherIs.antlrtree.txt
│       │   │   │   ├── EitherNotIs.antlrtree.txt
│       │   │   │   ├── EitherSafeAs.antlrtree.txt
│       │   │   │   ├── EitherWhen.antlrtree.txt
│       │   │   │   ├── ErrorsInSubstitution.antlrtree.txt
│       │   │   │   ├── FromErrorType.antlrtree.txt
│       │   │   │   ├── NullableAs.antlrtree.txt
│       │   │   │   ├── NullableAsNotEnough.antlrtree.txt
│       │   │   │   ├── NullableAsNullable.antlrtree.txt
│       │   │   │   ├── NullableAsNullableNotEnough.antlrtree.txt
│       │   │   │   ├── RedundantNullable.antlrtree.txt
│       │   │   │   ├── SupertypeChain.antlrtree.txt
│       │   │   │   ├── ToErrorType.antlrtree.txt
│       │   │   │   ├── UnrelatedAs.antlrtree.txt
│       │   │   │   ├── UnrelatedColon.antlrtree.txt
│       │   │   │   └── UnrelatedIs.antlrtree.txt
│       │   │   ├── checkCastToNullableType.test.antlrtree.txt
│       │   │   ├── constants.antlrtree.txt
│       │   │   ├── isAlwaysFalse.antlrtree.txt
│       │   │   ├── isErasedAnyAndStarred.antlrtree.txt
│       │   │   ├── isErasedTAndStarred.antlrtree.txt
│       │   │   ├── isErasedUnrelatedAndStarred.antlrtree.txt
│       │   │   ├── kt15161.antlrtree.txt
│       │   │   ├── kt47685.antlrtree.txt
│       │   │   ├── kt614.antlrtree.txt
│       │   │   ├── neverSucceeds/
│       │   │   │   ├── CastToNotNullSuper.antlrtree.txt
│       │   │   │   ├── MappedDirect.antlrtree.txt
│       │   │   │   ├── MappedSubtypes.antlrtree.txt
│       │   │   │   ├── NoGenericsRelated.antlrtree.txt
│       │   │   │   └── NoGenericsUnrelated.antlrtree.txt
│       │   │   └── nothingAs.antlrtree.txt
│       │   ├── checkArguments/
│       │   │   ├── SpreadVarargs.antlrtree.txt
│       │   │   ├── arrayAccessSet.antlrtree.txt
│       │   │   ├── arrayAccessSetNotEnoughArgs.antlrtree.txt
│       │   │   ├── arrayAccessSetTooManyArgs.antlrtree.txt
│       │   │   ├── booleanExpressions.antlrtree.txt
│       │   │   ├── kt17691.antlrtree.txt
│       │   │   ├── kt17691WithEnabledFeature.antlrtree.txt
│       │   │   ├── kt1897_diagnostic_part.antlrtree.txt
│       │   │   ├── kt1940.antlrtree.txt
│       │   │   ├── kt49276.antlrtree.txt
│       │   │   ├── kt49276Disabled.antlrtree.txt
│       │   │   ├── kt49276Error.antlrtree.txt
│       │   │   ├── kt51062.main.antlrtree.txt
│       │   │   ├── kt51062Error.main.antlrtree.txt
│       │   │   ├── overloadedFunction.antlrtree.txt
│       │   │   └── twoLambdasFunction.antlrtree.txt
│       │   ├── checkTypeTest.antlrtree.txt
│       │   ├── checkTypeWithExactTest.antlrtree.txt
│       │   ├── classLiteral/
│       │   │   ├── arrays.antlrtree.txt
│       │   │   ├── classAndObjectLiteralType.antlrtree.txt
│       │   │   ├── classLiteralType.antlrtree.txt
│       │   │   ├── expressionWithNullableType.test.antlrtree.txt
│       │   │   ├── genericArrays.antlrtree.txt
│       │   │   ├── genericClasses.antlrtree.txt
│       │   │   ├── inAnnotationArguments.antlrtree.txt
│       │   │   ├── inAnnotationArguments_noTypeParams.antlrtree.txt
│       │   │   ├── integerValueType.antlrtree.txt
│       │   │   ├── nonClassesOnLHS.antlrtree.txt
│       │   │   ├── parameterizedTypeAlias.antlrtree.txt
│       │   │   ├── qualifiedClassLiteral.antlrtree.txt
│       │   │   ├── simpleClassLiteral.antlrtree.txt
│       │   │   ├── smartCast.antlrtree.txt
│       │   │   ├── typealiases.antlrtree.txt
│       │   │   └── unresolvedClass.antlrtree.txt
│       │   ├── classObjects/
│       │   │   ├── ClassObjectCannotAccessClassFields.antlrtree.txt
│       │   │   ├── ClassObjectVisibility.antlrtree.txt
│       │   │   ├── ClassObjects.antlrtree.txt
│       │   │   ├── InnerClassAccessThroughClassObject.antlrtree.txt
│       │   │   ├── InnerClassAccessThroughEnum_after.antlrtree.txt
│       │   │   ├── InnerClassAccessThroughEnum_before.antlrtree.txt
│       │   │   ├── InnerClassClassObject.antlrtree.txt
│       │   │   ├── builtInClassObjects.antlrtree.txt
│       │   │   ├── classObjectHeader.antlrtree.txt
│       │   │   ├── classObjectInLocalClass.antlrtree.txt
│       │   │   ├── classObjectRedeclaration.antlrtree.txt
│       │   │   ├── classWithFunctionSupertype_after.antlrtree.txt
│       │   │   ├── classWithFunctionSupertype_before.antlrtree.txt
│       │   │   ├── companionObjectOfPrivateClassVisibility.antlrtree.txt
│       │   │   ├── importClassInClassObject.antlrtree.txt
│       │   │   ├── invisibleClassObjects.a.antlrtree.txt
│       │   │   ├── invisibleClassObjects.b.antlrtree.txt
│       │   │   ├── kt3866.antlrtree.txt
│       │   │   ├── multipleDissallowedDefaultObjects.antlrtree.txt
│       │   │   ├── nestedClassInPrivateClassObject.antlrtree.txt
│       │   │   ├── resolveFunctionInsideClassObject.antlrtree.txt
│       │   │   ├── selfCallsInCompanionSuperConstructor_error.antlrtree.txt
│       │   │   ├── selfCallsInCompanionSuperConstructor_warning.antlrtree.txt
│       │   │   ├── typeParametersInAnnonymousObject.antlrtree.txt
│       │   │   ├── typeParametersInAnnonymousObject_after.antlrtree.txt
│       │   │   └── typeParametersInObject.antlrtree.txt
│       │   ├── collectionLiterals/
│       │   │   ├── argumentsOfAnnotation.antlrtree.txt
│       │   │   ├── argumentsOfAnnotationWithKClass.antlrtree.txt
│       │   │   ├── basicCollectionLiterals.antlrtree.txt
│       │   │   ├── collectionLiteralsAsPrimitiveArrays.antlrtree.txt
│       │   │   ├── collectionLiteralsOutsideOfAnnotations.antlrtree.txt
│       │   │   ├── collectionLiteralsWithVarargs.antlrtree.txt
│       │   │   ├── defaultValuesInAnnotation.antlrtree.txt
│       │   │   ├── defaultValuesWithConstantsInAnnotation.antlrtree.txt
│       │   │   ├── kt34515.antlrtree.txt
│       │   │   ├── noCollectionLiterals.antlrtree.txt
│       │   │   └── resolveToFunctionFromBuiltIns.antlrtree.txt
│       │   ├── comparingArbitraryClasses.antlrtree.txt
│       │   ├── comparingCallableReferencesWithInstanceOfJavaClass.Main.antlrtree.txt
│       │   ├── comparisonOfGenericInterfaceWithGenericClass.antlrtree.txt
│       │   ├── constantEvaluator/
│       │   │   ├── constant/
│       │   │   │   ├── classObjectProperty.antlrtree.txt
│       │   │   │   ├── compareTo.antlrtree.txt
│       │   │   │   ├── differentTypes.antlrtree.txt
│       │   │   │   ├── divideByZero.antlrtree.txt
│       │   │   │   ├── duplicateLabelWithNonTrivialCondition_disabled.antlrtree.txt
│       │   │   │   ├── duplicateLabelWithNonTrivialCondition_enabled.antlrtree.txt
│       │   │   │   ├── equals.antlrtree.txt
│       │   │   │   ├── exceptionWhenEvaluate.antlrtree.txt
│       │   │   │   ├── finalProperty.antlrtree.txt
│       │   │   │   ├── float.antlrtree.txt
│       │   │   │   ├── floatsAndDoubles.antlrtree.txt
│       │   │   │   ├── integer.antlrtree.txt
│       │   │   │   ├── integerOperations.antlrtree.txt
│       │   │   │   ├── integers.antlrtree.txt
│       │   │   │   ├── invAsCompileTimeCall.antlrtree.txt
│       │   │   │   ├── localVal.antlrtree.txt
│       │   │   │   ├── localVar.antlrtree.txt
│       │   │   │   ├── nonFinalProperty.antlrtree.txt
│       │   │   │   ├── objectProperty.antlrtree.txt
│       │   │   │   ├── strings.antlrtree.txt
│       │   │   │   ├── topLevelVal.antlrtree.txt
│       │   │   │   ├── topLevelVar.antlrtree.txt
│       │   │   │   ├── unaryMinusIndepWoExpType.antlrtree.txt
│       │   │   │   └── unaryMinusIndependentExpType.antlrtree.txt
│       │   │   ├── isPure/
│       │   │   │   ├── innerToType.antlrtree.txt
│       │   │   │   ├── namedConstants.antlrtree.txt
│       │   │   │   ├── toType.antlrtree.txt
│       │   │   │   ├── unaryMinusIndepWoExpType.antlrtree.txt
│       │   │   │   └── unaryMinusIndependentExpType.antlrtree.txt
│       │   │   └── usesVariableAsConstant/
│       │   │       ├── NamedConstants.antlrtree.txt
│       │   │       ├── OtherTypes.antlrtree.txt
│       │   │       ├── binaryTypes.antlrtree.txt
│       │   │       └── simpleTypes.antlrtree.txt
│       │   ├── constructorConsistency/
│       │   │   ├── afterInitialization.antlrtree.txt
│       │   │   ├── aliencall.antlrtree.txt
│       │   │   ├── assignment.antlrtree.txt
│       │   │   ├── backing.antlrtree.txt
│       │   │   ├── basic.antlrtree.txt
│       │   │   ├── companion.antlrtree.txt
│       │   │   ├── comparison.antlrtree.txt
│       │   │   ├── delegate.antlrtree.txt
│       │   │   ├── derived.antlrtree.txt
│       │   │   ├── derivedProperty.antlrtree.txt
│       │   │   ├── errorInsideDelegationCallNoPrimary.antlrtree.txt
│       │   │   ├── getset.antlrtree.txt
│       │   │   ├── init.antlrtree.txt
│       │   │   ├── initializerWithSecondaryConstructor.antlrtree.txt
│       │   │   ├── initwithgetter.antlrtree.txt
│       │   │   ├── inspection.antlrtree.txt
│       │   │   ├── lambdaInObject.antlrtree.txt
│       │   │   ├── lateInit.antlrtree.txt
│       │   │   ├── localObject.antlrtree.txt
│       │   │   ├── multipleAreNull.antlrtree.txt
│       │   │   ├── nobacking.antlrtree.txt
│       │   │   ├── open.antlrtree.txt
│       │   │   ├── openProperty.antlrtree.txt
│       │   │   ├── outer.antlrtree.txt
│       │   │   ├── parametersVsPropertiesFromPrimaryConstructor.antlrtree.txt
│       │   │   ├── property.antlrtree.txt
│       │   │   ├── propertyAccess.antlrtree.txt
│       │   │   ├── twoSecondaryConstructors.antlrtree.txt
│       │   │   └── twoSuperTypeCalls.antlrtree.txt
│       │   ├── controlFlowAnalysis/
│       │   │   ├── UninitializedEnumCompanionVals.antlrtree.txt
│       │   │   ├── UninitializedOrReassignedVariables.antlrtree.txt
│       │   │   ├── accessToCompanionInBaseEnumInitSection_function.antlrtree.txt
│       │   │   ├── accessToCompanionInBaseEnumInitSection_property.antlrtree.txt
│       │   │   ├── accessValueParameterInDefaultValue_after.antlrtree.txt
│       │   │   ├── accessValueParameterInDefaultValue_before.antlrtree.txt
│       │   │   ├── assignedInFinally.antlrtree.txt
│       │   │   ├── assignedInIfElse.antlrtree.txt
│       │   │   ├── assignedInTryWithCatch.antlrtree.txt
│       │   │   ├── assignedInTryWithoutCatch.antlrtree.txt
│       │   │   ├── assignmentInLocalsInConstructor.antlrtree.txt
│       │   │   ├── assignmentOfSyntheticVarWithInconsistentNullability.KotlinBase.antlrtree.txt
│       │   │   ├── assignmentOfSyntheticVarWithInconsistentNullability.main.antlrtree.txt
│       │   │   ├── backingFieldInsideGetter_after.antlrtree.txt
│       │   │   ├── backingFieldInsideGetter_before.antlrtree.txt
│       │   │   ├── breakContinueInTryFinally.antlrtree.txt
│       │   │   ├── breakContinueInTryFinallyInLoop.antlrtree.txt
│       │   │   ├── breakContinueNoinline.antlrtree.txt
│       │   │   ├── breakInLambdaPassedToDirectInvoke.antlrtree.txt
│       │   │   ├── breakInsideLocal.antlrtree.txt
│       │   │   ├── breakOrContinueInLoopCondition.antlrtree.txt
│       │   │   ├── capturingUninitializedVariableInNonInPlaceLambda.antlrtree.txt
│       │   │   ├── cfgOfFullyIncorrectCode.antlrtree.txt
│       │   │   ├── checkInnerLocalDeclarations.antlrtree.txt
│       │   │   ├── checkPropertyAccessor.antlrtree.txt
│       │   │   ├── constructorPropertyInterdependence.antlrtree.txt
│       │   │   ├── deadCode/
│       │   │   │   ├── commasAndWhitespaces.antlrtree.txt
│       │   │   │   ├── commentsInDeadCode.antlrtree.txt
│       │   │   │   ├── deadCallInInvokeCall.antlrtree.txt
│       │   │   │   ├── deadCallInReceiver.antlrtree.txt
│       │   │   │   ├── deadCodeDifferentExamples.antlrtree.txt
│       │   │   │   ├── deadCodeFromDifferentSources.antlrtree.txt
│       │   │   │   ├── deadCodeInArrayAccess.antlrtree.txt
│       │   │   │   ├── deadCodeInAssignment.antlrtree.txt
│       │   │   │   ├── deadCodeInBinaryExpressions.antlrtree.txt
│       │   │   │   ├── deadCodeInCalls.antlrtree.txt
│       │   │   │   ├── deadCodeInDeadCode.antlrtree.txt
│       │   │   │   ├── deadCodeInIf.antlrtree.txt
│       │   │   │   ├── deadCodeInInnerExpressions.antlrtree.txt
│       │   │   │   ├── deadCodeInLocalDeclarations.antlrtree.txt
│       │   │   │   ├── deadCodeInLoops.antlrtree.txt
│       │   │   │   ├── deadCodeInReturn.antlrtree.txt
│       │   │   │   ├── deadCodeInUnaryExpr.antlrtree.txt
│       │   │   │   ├── deadCodeInWhileFromBreak.antlrtree.txt
│       │   │   │   ├── expressionInUnitLiteral.antlrtree.txt
│       │   │   │   ├── initializationInUnreachableCode.antlrtree.txt
│       │   │   │   ├── kt2585_1.antlrtree.txt
│       │   │   │   ├── kt2585_2.antlrtree.txt
│       │   │   │   ├── kt2585_3.antlrtree.txt
│       │   │   │   ├── kt3162tryAsInitializer.antlrtree.txt
│       │   │   │   ├── kt5200DeadCodeInLambdas.antlrtree.txt
│       │   │   │   ├── reassignementInUnreachableCode.antlrtree.txt
│       │   │   │   └── returnInDeadLambda.antlrtree.txt
│       │   │   ├── definiteReturn/
│       │   │   │   ├── ReturnFromFunctionInObject.antlrtree.txt
│       │   │   │   ├── kt3444_ReturnFromLocalFunctions.antlrtree.txt
│       │   │   │   ├── kt4034.antlrtree.txt
│       │   │   │   ├── lambdaInTryFalsePositive.antlrtree.txt
│       │   │   │   ├── returnAliasedUnitNotRequired.antlrtree.txt
│       │   │   │   ├── simpleClass.a.antlrtree.txt
│       │   │   │   ├── simpleClass.b.antlrtree.txt
│       │   │   │   ├── simpleClass.c.antlrtree.txt
│       │   │   │   ├── simpleClass.d.antlrtree.txt
│       │   │   │   ├── simpleClass.e.antlrtree.txt
│       │   │   │   ├── simpleClass.f.antlrtree.txt
│       │   │   │   └── singleReturnFromTry.antlrtree.txt
│       │   │   ├── definiteReturnInWhen.antlrtree.txt
│       │   │   ├── delegatedConstructorArguments.antlrtree.txt
│       │   │   ├── delegatedMemberProperyWriteInInit.antlrtree.txt
│       │   │   ├── delegatedPropertyEarlyAccess.antlrtree.txt
│       │   │   ├── doWhileAssignment.antlrtree.txt
│       │   │   ├── doWhileNotDefined.antlrtree.txt
│       │   │   ├── elvisNotProcessed.antlrtree.txt
│       │   │   ├── enumCompanionInterdependence.antlrtree.txt
│       │   │   ├── enumInterdependence.antlrtree.txt
│       │   │   ├── fieldAsClassDelegate.antlrtree.txt
│       │   │   ├── fieldInitialization.antlrtree.txt
│       │   │   ├── infiniteLoops.antlrtree.txt
│       │   │   ├── initializationInLambda.antlrtree.txt
│       │   │   ├── initializationInLocalClass.antlrtree.txt
│       │   │   ├── initializationInLocalFun.antlrtree.txt
│       │   │   ├── initializationInLocalViaExplicitThis_after.antlrtree.txt
│       │   │   ├── initializationInLocalViaExplicitThis_before.antlrtree.txt
│       │   │   ├── inlinedBreakContinueFeatureDisabled.antlrtree.txt
│       │   │   ├── kt1001.antlrtree.txt
│       │   │   ├── kt1027.antlrtree.txt
│       │   │   ├── kt1066.antlrtree.txt
│       │   │   ├── kt10805.antlrtree.txt
│       │   │   ├── kt10823.antlrtree.txt
│       │   │   ├── kt1156.antlrtree.txt
│       │   │   ├── kt1185enums.antlrtree.txt
│       │   │   ├── kt1189.antlrtree.txt
│       │   │   ├── kt1191.antlrtree.txt
│       │   │   ├── kt1219.1301.antlrtree.txt
│       │   │   ├── kt1571.antlrtree.txt
│       │   │   ├── kt1977.antlrtree.txt
│       │   │   ├── kt2166_kt2103.antlrtree.txt
│       │   │   ├── kt2226.antlrtree.txt
│       │   │   ├── kt2330.antlrtree.txt
│       │   │   ├── kt2334.antlrtree.txt
│       │   │   ├── kt2369.antlrtree.txt
│       │   │   ├── kt2845.antlrtree.txt
│       │   │   ├── kt2960.antlrtree.txt
│       │   │   ├── kt2972.antlrtree.txt
│       │   │   ├── kt3444.antlrtree.txt
│       │   │   ├── kt3501.antlrtree.txt
│       │   │   ├── kt4126.antlrtree.txt
│       │   │   ├── kt4405.antlrtree.txt
│       │   │   ├── kt510.antlrtree.txt
│       │   │   ├── kt52131.antlrtree.txt
│       │   │   ├── kt607.antlrtree.txt
│       │   │   ├── kt609.antlrtree.txt
│       │   │   ├── kt610.antlrtree.txt
│       │   │   ├── kt6788.antlrtree.txt
│       │   │   ├── kt776.antlrtree.txt
│       │   │   ├── kt843.antlrtree.txt
│       │   │   ├── kt897.antlrtree.txt
│       │   │   ├── localClasses.antlrtree.txt
│       │   │   ├── localObjectInConstructor.antlrtree.txt
│       │   │   ├── loopWithNonTrivialBooleanConst_error.antlrtree.txt
│       │   │   ├── loopWithNonTrivialBooleanConst_warning.antlrtree.txt
│       │   │   ├── mainWithWarningOnUnusedParam.antlrtree.txt
│       │   │   ├── mainWithoutWarningOnUnusedParam.antlrtree.txt
│       │   │   ├── nestedTryFinally.antlrtree.txt
│       │   │   ├── nonLocalReturnUnreachable.antlrtree.txt
│       │   │   ├── nonLocalReturnWithFinally.antlrtree.txt
│       │   │   ├── privateSetter.antlrtree.txt
│       │   │   ├── propertiesInitWithOtherInstance.antlrtree.txt
│       │   │   ├── propertiesInitWithOtherInstanceInner.antlrtree.txt
│       │   │   ├── propertiesInitWithOtherInstanceThisLabel.antlrtree.txt
│       │   │   ├── propertiesOrderInPackage.antlrtree.txt
│       │   │   ├── reassignmentInCatch.antlrtree.txt
│       │   │   ├── reassignmentInTryCatch.antlrtree.txt
│       │   │   ├── reassignmentInTryCatchWithJumps.antlrtree.txt
│       │   │   ├── referenceToPropertyInitializer.antlrtree.txt
│       │   │   ├── repeatUnitializedErrorOnlyForLocalVars.antlrtree.txt
│       │   │   ├── safeCallAfterVariableInitialization.antlrtree.txt
│       │   │   ├── scopeOfAnonymousInitializer.antlrtree.txt
│       │   │   ├── smartCastInCatch.antlrtree.txt
│       │   │   ├── throwInLambda.antlrtree.txt
│       │   │   ├── tryWithAssignmentUsedInCatch.antlrtree.txt
│       │   │   ├── uninintializedProperyWithDirectAndDelayedInitialization.antlrtree.txt
│       │   │   ├── uninitializedCompanionOfEnum_after.antlrtree.txt
│       │   │   ├── uninitializedCompanionOfEnum_before.antlrtree.txt
│       │   │   ├── uninitializedInLocalDeclarations.antlrtree.txt
│       │   │   ├── uninitializedQualifiedEnumEntry.antlrtree.txt
│       │   │   ├── unmappedArgs.antlrtree.txt
│       │   │   ├── unnecessaryLateinit/
│       │   │   │   ├── lateinitRecursiveInLambda.antlrtree.txt
│       │   │   │   ├── lateinitWithConstructor.antlrtree.txt
│       │   │   │   ├── lateinitWithErroneousDelegation.antlrtree.txt
│       │   │   │   ├── lateinitWithInit.antlrtree.txt
│       │   │   │   ├── lateinitWithMultipleConstructors.antlrtree.txt
│       │   │   │   ├── lateinitWithMultipleConstructorsAndDelegation.antlrtree.txt
│       │   │   │   ├── lateinitWithPlusAssign.antlrtree.txt
│       │   │   │   ├── lateinitWithPrimaryConstructorAndConstructor.antlrtree.txt
│       │   │   │   ├── normalLateinit.antlrtree.txt
│       │   │   │   ├── normalLateinitWithTwoConstructors.antlrtree.txt
│       │   │   │   ├── secondaryConstructorDelegateItself.antlrtree.txt
│       │   │   │   └── secondaryConstructorDelegateLoop.antlrtree.txt
│       │   │   ├── unresolvedReference.antlrtree.txt
│       │   │   ├── unusedPropertyWithCustomAccessors.antlrtree.txt
│       │   │   ├── useUninitializedInLambda.antlrtree.txt
│       │   │   └── varInitializationInIfInCycle.antlrtree.txt
│       │   ├── controlStructures/
│       │   │   ├── ForLoopWithExtensionIteratorOnNullable.antlrtree.txt
│       │   │   ├── ForWithoutBraces.antlrtree.txt
│       │   │   ├── ForbidStatementAsDirectFunctionBody.antlrtree.txt
│       │   │   ├── breakContinueInCrossInlineLambda.antlrtree.txt
│       │   │   ├── breakContinueInNoInlineLambda.antlrtree.txt
│       │   │   ├── breakToLabel.antlrtree.txt
│       │   │   ├── catchGenerics.antlrtree.txt
│       │   │   ├── catchInnerClassesOfGenerics.antlrtree.txt
│       │   │   ├── catchInnerClassesOfGenerics_deprecation.antlrtree.txt
│       │   │   ├── catchWithDefault.antlrtree.txt
│       │   │   ├── catchingLocalClassesCapturingTypeParameters.antlrtree.txt
│       │   │   ├── commonSupertypeOfT.antlrtree.txt
│       │   │   ├── continueAndBreakLabelWithSameFunctionName.antlrtree.txt
│       │   │   ├── continueInInitBlock.antlrtree.txt
│       │   │   ├── emptyIf.antlrtree.txt
│       │   │   ├── forLoopWithNullableRange.antlrtree.txt
│       │   │   ├── forWithIncorrectTypeSpecializer.antlrtree.txt
│       │   │   ├── forWithNullableIterator.antlrtree.txt
│       │   │   ├── ifElseIntersection.antlrtree.txt
│       │   │   ├── ifInResultOfLambda.antlrtree.txt
│       │   │   ├── ifToAnyDiscriminatingUsages.antlrtree.txt
│       │   │   ├── ifWhenToAnyComplexExpressions.antlrtree.txt
│       │   │   ├── ifWhenWithoutElse.antlrtree.txt
│       │   │   ├── improperElseInExpression.antlrtree.txt
│       │   │   ├── incorrectElvis.antlrtree.txt
│       │   │   ├── jumpAcrossFunctionBoundary.antlrtree.txt
│       │   │   ├── kt10322.antlrtree.txt
│       │   │   ├── kt10706.antlrtree.txt
│       │   │   ├── kt10717.antlrtree.txt
│       │   │   ├── kt1075.antlrtree.txt
│       │   │   ├── kt30406.antlrtree.txt
│       │   │   ├── kt4310.antlrtree.txt
│       │   │   ├── kt51711.antlrtree.txt
│       │   │   ├── kt657.antlrtree.txt
│       │   │   ├── kt770.kt351.kt735_StatementType.antlrtree.txt
│       │   │   ├── kt786.antlrtree.txt
│       │   │   ├── kt799.antlrtree.txt
│       │   │   ├── lambdasInExclExclAndElvis.antlrtree.txt
│       │   │   ├── localReturnInsidePropertyAccessor.antlrtree.txt
│       │   │   ├── nestedLoopsWithMultipleLabels.antlrtree.txt
│       │   │   ├── nonExhaustiveIfInElvis_after.antlrtree.txt
│       │   │   ├── nonExhaustiveIfInElvis_before.antlrtree.txt
│       │   │   ├── notAFunctionLabel_after.antlrtree.txt
│       │   │   ├── notAFunctionLabel_before.antlrtree.txt
│       │   │   ├── redundantLabel.antlrtree.txt
│       │   │   ├── specialConstructsAndPlatformTypes.k.antlrtree.txt
│       │   │   ├── specialConstructsWithNullableExpectedType.antlrtree.txt
│       │   │   ├── tryReturnType.antlrtree.txt
│       │   │   ├── typeInferenceForExclExcl.b.antlrtree.txt
│       │   │   ├── valVarCatchParameter.antlrtree.txt
│       │   │   ├── valVarLoopParameter.antlrtree.txt
│       │   │   ├── when.kt234.kt973.antlrtree.txt
│       │   │   ├── whenInResultOfLambda.antlrtree.txt
│       │   │   ├── whenToAnyDiscriminatingUsages.antlrtree.txt
│       │   │   ├── whenWithNoSubjectAndCommas.antlrtree.txt
│       │   │   └── whenWithNothingTypedSubject.antlrtree.txt
│       │   ├── coroutines/
│       │   │   ├── callableReference/
│       │   │   │   ├── invokeOutideSuspend.antlrtree.txt
│       │   │   │   └── outsideSuspend.antlrtree.txt
│       │   │   ├── inlineSuspendTypealias.antlrtree.txt
│       │   │   ├── modifierFormBuiltinSuspendFun.antlrtree.txt
│       │   │   ├── suspendFunctionAsSupertype/
│       │   │   │   ├── kSuspendFunctionN/
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypes.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperClass.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperFunInterface.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperinterface.antlrtree.txt
│       │   │   │   │   └── simple.antlrtree.txt
│       │   │   │   ├── simple/
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypes.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperClass.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperFunInterface.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperinterface.antlrtree.txt
│       │   │   │   │   └── simple.antlrtree.txt
│       │   │   │   └── suspendFunctionN/
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypes.antlrtree.txt
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypesThruSuperClass.antlrtree.txt
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypesThruSuperFunInterface.antlrtree.txt
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypesThruSuperinterface.antlrtree.txt
│       │   │   │       └── simple.antlrtree.txt
│       │   │   ├── suspendInvokeInsideTry.antlrtree.txt
│       │   │   ├── suspendInvokeInsideWhen.antlrtree.txt
│       │   │   ├── suspendInvokeWithReceiver.antlrtree.txt
│       │   │   └── suspendLambdaFromExpectedType.antlrtree.txt
│       │   ├── cyclicHierarchy/
│       │   │   ├── classIndirectlyInheritsNested.antlrtree.txt
│       │   │   ├── classInheritsNested.antlrtree.txt
│       │   │   ├── commonSupertypeForCyclicAndUsualTypes.antlrtree.txt
│       │   │   ├── commonSupertypeForCyclicTypes.antlrtree.txt
│       │   │   ├── cyclicHierarchy.antlrtree.txt
│       │   │   ├── javaJavaCycle.main.antlrtree.txt
│       │   │   ├── javaKotlinJavaCycle.B.antlrtree.txt
│       │   │   ├── kotlinJavaCycle.K.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.I.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.K.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.ll.I.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.ll.K.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.ExceptionTracker.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.StorageManager.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.ll.ExceptionTracker.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.ll.StorageManager.antlrtree.txt
│       │   │   ├── kt303.antlrtree.txt
│       │   │   ├── nestedClassInSuperClassParameter.antlrtree.txt
│       │   │   ├── objectInheritsNested.antlrtree.txt
│       │   │   ├── twoClassesWithNestedCycle.antlrtree.txt
│       │   │   └── withCompanion/
│       │   │       ├── everythingInOneScope_after.antlrtree.txt
│       │   │       ├── everythingInOneScope_before.antlrtree.txt
│       │   │       ├── noMembers_after.antlrtree.txt
│       │   │       ├── noMembers_before.antlrtree.txt
│       │   │       ├── onlyInterfaces_after.antlrtree.txt
│       │   │       ├── onlyInterfaces_before.antlrtree.txt
│       │   │       ├── typeIsLowEnough.antlrtree.txt
│       │   │       ├── withIrrelevantInterface_after.antlrtree.txt
│       │   │       ├── withIrrelevantInterface_before.antlrtree.txt
│       │   │       ├── withMembers_after.antlrtree.txt
│       │   │       ├── withMembers_before.antlrtree.txt
│       │   │       └── withoutTypeReference.antlrtree.txt
│       │   ├── dataClasses/
│       │   │   ├── companionDataObject.antlrtree.txt
│       │   │   ├── componentNamedComponent1.antlrtree.txt
│       │   │   ├── conflictingCopyOverloads.antlrtree.txt
│       │   │   ├── conflictingOverloads.antlrtree.txt
│       │   │   ├── copyOfPrivateClass.antlrtree.txt
│       │   │   ├── dataClassExplicitlyOverridingCopyNoDefaults.antlrtree.txt
│       │   │   ├── dataClassExplicitlyOverridingCopyWithDefaults.antlrtree.txt
│       │   │   ├── dataClassNoName.antlrtree.txt
│       │   │   ├── dataClassNotOverridingCopy.antlrtree.txt
│       │   │   ├── dataClassOverridingCopy_lv12.antlrtree.txt
│       │   │   ├── dataClassOverridingCopy_lv13.antlrtree.txt
│       │   │   ├── dataClassVarargParam.antlrtree.txt
│       │   │   ├── dataInheritance.antlrtree.txt
│       │   │   ├── dataObjectDisabled.antlrtree.txt
│       │   │   ├── dataObjectEnabled.antlrtree.txt
│       │   │   ├── dataObjectLiteral.antlrtree.txt
│       │   │   ├── emptyConstructor.antlrtree.txt
│       │   │   ├── errorTypesInDataClasses.antlrtree.txt
│       │   │   ├── extensionComponentsOnNullable.antlrtree.txt
│       │   │   ├── finalMembersInBaseClass.antlrtree.txt
│       │   │   ├── implementMethodsFromInterface.antlrtree.txt
│       │   │   ├── implementTraitWhichHasComponent1.antlrtree.txt
│       │   │   ├── implementTraitWhichHasFinalComponent1.antlrtree.txt
│       │   │   ├── innerDataClass.antlrtree.txt
│       │   │   ├── innerOuterDataClass.antlrtree.txt
│       │   │   ├── multiDeclaration.antlrtree.txt
│       │   │   ├── multiDeclarationFor.antlrtree.txt
│       │   │   ├── noConstructor.antlrtree.txt
│       │   │   ├── notADataClass.antlrtree.txt
│       │   │   ├── oneValParam.antlrtree.txt
│       │   │   ├── repeatedProperties.antlrtree.txt
│       │   │   ├── sealedDataClass.antlrtree.txt
│       │   │   ├── strange.antlrtree.txt
│       │   │   ├── twoValParams.antlrtree.txt
│       │   │   └── twoVarParams.antlrtree.txt
│       │   ├── dataFlow/
│       │   │   ├── CalleeExpression.antlrtree.txt
│       │   │   ├── EmptyIf.antlrtree.txt
│       │   │   ├── IsExpression.antlrtree.txt
│       │   │   ├── WhenSubject.antlrtree.txt
│       │   │   ├── assignment/
│       │   │   │   ├── assignToNewVal.antlrtree.txt
│       │   │   │   ├── kt6118.antlrtree.txt
│       │   │   │   ├── uninitializedValIsCheck.antlrtree.txt
│       │   │   │   ├── uninitializedValNullability.antlrtree.txt
│       │   │   │   └── when.antlrtree.txt
│       │   │   ├── local/
│       │   │   │   ├── LocalClassBase.antlrtree.txt
│       │   │   │   ├── LocalClassDefaultParameters.antlrtree.txt
│       │   │   │   ├── LocalClassDelegatedProperties.antlrtree.txt
│       │   │   │   ├── LocalClassDelegation.antlrtree.txt
│       │   │   │   ├── LocalClassFunctions.antlrtree.txt
│       │   │   │   ├── LocalClassInMemberOfLocalClass.antlrtree.txt
│       │   │   │   ├── LocalClassInitializer.antlrtree.txt
│       │   │   │   ├── LocalClassProperty.antlrtree.txt
│       │   │   │   ├── LocalObject.antlrtree.txt
│       │   │   │   ├── LocalObjectDelegation.antlrtree.txt
│       │   │   │   ├── NestedLocalClass.antlrtree.txt
│       │   │   │   └── kt2835.antlrtree.txt
│       │   │   └── smartCastWithLambdaAndCallableReference.antlrtree.txt
│       │   ├── dataFlowInfoTraversal/
│       │   │   ├── AndOr.antlrtree.txt
│       │   │   ├── ArrayAccess.antlrtree.txt
│       │   │   ├── ArrayExpression.antlrtree.txt
│       │   │   ├── ArrayGetSetConvention.antlrtree.txt
│       │   │   ├── ArrayIndices.antlrtree.txt
│       │   │   ├── Assignment.antlrtree.txt
│       │   │   ├── AssignmentInInitializer.antlrtree.txt
│       │   │   ├── AssignmentOperation.antlrtree.txt
│       │   │   ├── AssignmentToArrayElement.antlrtree.txt
│       │   │   ├── BinaryExpression.antlrtree.txt
│       │   │   ├── BinaryExpressionBooleanOperations.antlrtree.txt
│       │   │   ├── BinaryExpressionCompareToConvention.antlrtree.txt
│       │   │   ├── BinaryExpressionContainsConvention.antlrtree.txt
│       │   │   ├── BinaryExpressionElvis.antlrtree.txt
│       │   │   ├── BinaryExpressionEqualsConvention.antlrtree.txt
│       │   │   ├── BinaryExpressionIdentifier.antlrtree.txt
│       │   │   ├── BinaryExpressionPlusConvention.antlrtree.txt
│       │   │   ├── Condition.antlrtree.txt
│       │   │   ├── ContinueOuterLoop.antlrtree.txt
│       │   │   ├── DeepIf.antlrtree.txt
│       │   │   ├── DoWhile.antlrtree.txt
│       │   │   ├── DoWhileCondition.antlrtree.txt
│       │   │   ├── Elvis.antlrtree.txt
│       │   │   ├── ExclExcl.antlrtree.txt
│       │   │   ├── For.antlrtree.txt
│       │   │   ├── ForLoopRange.antlrtree.txt
│       │   │   ├── FunctionLiteral.antlrtree.txt
│       │   │   ├── IfStatement.antlrtree.txt
│       │   │   ├── IfThenElse.antlrtree.txt
│       │   │   ├── IfThenElseBothInvalid.antlrtree.txt
│       │   │   ├── IsExpression.antlrtree.txt
│       │   │   ├── ManyIfs.antlrtree.txt
│       │   │   ├── MultiDeclaration.antlrtree.txt
│       │   │   ├── ObjectExpression.antlrtree.txt
│       │   │   ├── QualifiedExpression.antlrtree.txt
│       │   │   ├── Return.antlrtree.txt
│       │   │   ├── StringTemplate.antlrtree.txt
│       │   │   ├── ThisSuper.antlrtree.txt
│       │   │   ├── Throw.antlrtree.txt
│       │   │   ├── TryCatch.antlrtree.txt
│       │   │   ├── TryFinally.antlrtree.txt
│       │   │   ├── UnaryExpression.antlrtree.txt
│       │   │   ├── When.antlrtree.txt
│       │   │   ├── WhenEntryAs.antlrtree.txt
│       │   │   ├── WhenEntryIs.antlrtree.txt
│       │   │   ├── WhenIn.antlrtree.txt
│       │   │   ├── WhenSubject.antlrtree.txt
│       │   │   ├── While.antlrtree.txt
│       │   │   ├── WhileCondition.antlrtree.txt
│       │   │   ├── kt4332WhenBranches.antlrtree.txt
│       │   │   ├── kt5155WhenBranches.antlrtree.txt
│       │   │   ├── kt5182WhenBranches.antlrtree.txt
│       │   │   └── smartcasts/
│       │   │       ├── SmartcastAmbiguitites.antlrtree.txt
│       │   │       ├── SmartcastsForStableIdentifiers.a.antlrtree.txt
│       │   │       └── SmartcastsForStableIdentifiers.b.antlrtree.txt
│       │   ├── dataObjects/
│       │   │   └── overrideEqualsAndHashCode.antlrtree.txt
│       │   ├── declarationChecks/
│       │   │   ├── ComponentFunctionReturnTypeMismatch.antlrtree.txt
│       │   │   ├── ConflictingAndRedundantProjections.antlrtree.txt
│       │   │   ├── DataFlowInMultiDeclInFor.antlrtree.txt
│       │   │   ├── DataFlowInfoInMultiDecl.antlrtree.txt
│       │   │   ├── FunctionWithMissingNames.antlrtree.txt
│       │   │   ├── LocalVariableWithNoTypeInformation.antlrtree.txt
│       │   │   ├── MultiDeclarationErrors.antlrtree.txt
│       │   │   ├── RedeclarationsInMultiDecl.antlrtree.txt
│       │   │   ├── ScalaLikeNamedFun.antlrtree.txt
│       │   │   ├── VarianceOnFunctionAndPropertyTypeParameters.antlrtree.txt
│       │   │   ├── ambiguousObjectExpressionType.antlrtree.txt
│       │   │   ├── anonymousFunAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── anonymousFunUnusedLastExpressionInBlock.antlrtree.txt
│       │   │   ├── destructuringDeclarations/
│       │   │   │   ├── DoubleDeclForLoop.antlrtree.txt
│       │   │   │   ├── FolLoopTypeComponentTypeMismatch.antlrtree.txt
│       │   │   │   ├── ForLoopComponentFunctionAmbiguity.antlrtree.txt
│       │   │   │   ├── ForLoopComponentFunctionMissing.antlrtree.txt
│       │   │   │   ├── ForLoopMissingLoopParameter.antlrtree.txt
│       │   │   │   ├── ForLoopWithExtensions.antlrtree.txt
│       │   │   │   ├── ForWithExplicitTypes.antlrtree.txt
│       │   │   │   ├── RedeclarationInForLoop.antlrtree.txt
│       │   │   │   ├── SingleDeclForLoop.antlrtree.txt
│       │   │   │   ├── destructuringDeclarationAssignedUnresolved.antlrtree.txt
│       │   │   │   ├── destructuringDeclarationMissingInitializer.antlrtree.txt
│       │   │   │   ├── kt2829.antlrtree.txt
│       │   │   │   ├── lastDestructuringDeclarationInBlock.antlrtree.txt
│       │   │   │   └── underscore.antlrtree.txt
│       │   │   ├── finiteBoundRestriction/
│       │   │   │   ├── CasesWithOneTypeParameter.antlrtree.txt
│       │   │   │   ├── CasesWithTwoTypeParameters.antlrtree.txt
│       │   │   │   └── JavaSuperType.1.antlrtree.txt
│       │   │   ├── illegalModifiersOnClass.antlrtree.txt
│       │   │   ├── kClassInSignature.antlrtree.txt
│       │   │   ├── kt1141.antlrtree.txt
│       │   │   ├── kt1193.antlrtree.txt
│       │   │   ├── kt2096.antlrtree.txt
│       │   │   ├── kt2142.antlrtree.txt
│       │   │   ├── kt2397.antlrtree.txt
│       │   │   ├── kt2631_MultipleDeclaration.antlrtree.txt
│       │   │   ├── kt2643MultiDeclInControlFlow.antlrtree.txt
│       │   │   ├── kt559.antlrtree.txt
│       │   │   ├── localDeclarationModifiers.antlrtree.txt
│       │   │   ├── localFunctionNoInheritVisibility.antlrtree.txt
│       │   │   ├── localObjectInInnerClass.antlrtree.txt
│       │   │   ├── localVariablesWithTypeParameters_1_3.antlrtree.txt
│       │   │   ├── localVariablesWithTypeParameters_1_4.antlrtree.txt
│       │   │   ├── mappedFunctionNotImplemented.CharSeq.antlrtree.txt
│       │   │   ├── mulitpleVarargParameters.antlrtree.txt
│       │   │   ├── nameWithDangerousCharacters.antlrtree.txt
│       │   │   ├── namedFunAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── nonExpansiveInheritanceRestriction/
│       │   │   │   ├── JavaWithKotlin.1.antlrtree.txt
│       │   │   │   ├── JavaWithKotlin2.1.antlrtree.txt
│       │   │   │   └── PureKotlin.antlrtree.txt
│       │   │   ├── packageDeclarationModifiers.antlrtree.txt
│       │   │   ├── propertyInPackageHasNoInheritVisibility.antlrtree.txt
│       │   │   ├── sealedOnMembers.antlrtree.txt
│       │   │   ├── unambiguousObjectExpressionType.antlrtree.txt
│       │   │   └── valVarFunctionParameter.antlrtree.txt
│       │   ├── defaultArguments/
│       │   │   ├── kt5232.antlrtree.txt
│       │   │   └── superCall.antlrtree.txt
│       │   ├── delegatedProperty/
│       │   │   ├── absentErrorAboutInitializer.antlrtree.txt
│       │   │   ├── absentErrorAboutType.antlrtree.txt
│       │   │   ├── abstractDelegatedProperty.antlrtree.txt
│       │   │   ├── backingField.antlrtree.txt
│       │   │   ├── defaultGetter.antlrtree.txt
│       │   │   ├── defaultSetter.antlrtree.txt
│       │   │   ├── delegatedPropertyOverridedInTrait.antlrtree.txt
│       │   │   ├── delegatedPropertyOverridedInTraitTypeMismatch.antlrtree.txt
│       │   │   ├── disallowImplInTypeParameter.antlrtree.txt
│       │   │   ├── genericGetter.antlrtree.txt
│       │   │   ├── getterWithSubtype.antlrtree.txt
│       │   │   ├── inTrait.antlrtree.txt
│       │   │   ├── incompleteTypeInference.antlrtree.txt
│       │   │   ├── inference/
│       │   │   │   ├── callableReferenceArgumentInDelegatedExpression.antlrtree.txt
│       │   │   │   ├── decoratedLambda.antlrtree.txt
│       │   │   │   ├── delegateExpressionAsLambda.antlrtree.txt
│       │   │   │   ├── delegatedExpressionWithLabeledReturnInsideLambda.antlrtree.txt
│       │   │   │   ├── differentDelegatedExpressions.antlrtree.txt
│       │   │   │   ├── elvisInDelegated.antlrtree.txt
│       │   │   │   ├── extensionGet.antlrtree.txt
│       │   │   │   ├── extensionProperty.antlrtree.txt
│       │   │   │   ├── genericMethodInGenericClass.antlrtree.txt
│       │   │   │   ├── genericMethods.antlrtree.txt
│       │   │   │   ├── ifInDelegated.antlrtree.txt
│       │   │   │   ├── kt41952.antlrtree.txt
│       │   │   │   ├── labeledDelegatedExpression.antlrtree.txt
│       │   │   │   ├── manyIncompleteCandidates.first.antlrtree.txt
│       │   │   │   ├── manyIncompleteCandidates.main.antlrtree.txt
│       │   │   │   ├── manyIncompleteCandidates.second.antlrtree.txt
│       │   │   │   ├── nestedPartiallyResolvedCalls.main.antlrtree.txt
│       │   │   │   ├── nestedPartiallyResolvedCallsSimple.antlrtree.txt
│       │   │   │   ├── noErrorsForImplicitConstraints.antlrtree.txt
│       │   │   │   ├── noExpectedTypeForSupertypeConstraint.antlrtree.txt
│       │   │   │   ├── notNullAssertionInLocalDelegated.antlrtree.txt
│       │   │   │   ├── resultTypeOfLambdaForConventionMethods.antlrtree.txt
│       │   │   │   ├── tryInGenerated.antlrtree.txt
│       │   │   │   ├── typeOfLazyDelegatedPropertyWithObject.antlrtree.txt
│       │   │   │   ├── useCompleterWithoutExpectedType.antlrtree.txt
│       │   │   │   ├── useExpectedType.antlrtree.txt
│       │   │   │   └── useExpectedTypeForVal.antlrtree.txt
│       │   │   ├── kt4640.antlrtree.txt
│       │   │   ├── kt48546.antlrtree.txt
│       │   │   ├── kt48546Strict.antlrtree.txt
│       │   │   ├── localVariable.antlrtree.txt
│       │   │   ├── localWithSmartCast.antlrtree.txt
│       │   │   ├── missedGetter.antlrtree.txt
│       │   │   ├── missedSetter.antlrtree.txt
│       │   │   ├── noInferenceFromGetValueThroughSetValue.antlrtree.txt
│       │   │   ├── noInferenceFromWrappedDelegate.antlrtree.txt
│       │   │   ├── noPreliminarySetterInferenceForImplicitlyTypedVar.antlrtree.txt
│       │   │   ├── nonDefaultAccessors.antlrtree.txt
│       │   │   ├── propertyDefferedType.antlrtree.txt
│       │   │   ├── provideDelegate/
│       │   │   │   ├── commonCaseForInference.antlrtree.txt
│       │   │   │   ├── genericProvideDelegate.antlrtree.txt
│       │   │   │   ├── hostAndReceiver1.antlrtree.txt
│       │   │   │   ├── hostAndReceiver2.antlrtree.txt
│       │   │   │   ├── hostAndReceiver3.antlrtree.txt
│       │   │   │   ├── inferenceFromReceiver1.antlrtree.txt
│       │   │   │   ├── inferenceFromReceiver2.antlrtree.txt
│       │   │   │   ├── kt38714.antlrtree.txt
│       │   │   │   ├── localDelegatedProperty.antlrtree.txt
│       │   │   │   ├── noOperatorModifierOnProvideDelegate.antlrtree.txt
│       │   │   │   ├── notNullAssertionInLocalDelegated.antlrtree.txt
│       │   │   │   ├── onObject.antlrtree.txt
│       │   │   │   ├── overloadResolutionForSeveralProvideDelegates.antlrtree.txt
│       │   │   │   ├── provideDelegateOnFunctionalTypeWithThis.antlrtree.txt
│       │   │   │   ├── provideDelegateOperatorDeclaration.antlrtree.txt
│       │   │   │   ├── provideDelegateResolutionWithStubTypes.antlrtree.txt
│       │   │   │   ├── setValue.antlrtree.txt
│       │   │   │   └── simpleProvideDelegate.antlrtree.txt
│       │   │   ├── recursiveType.antlrtree.txt
│       │   │   ├── recursiveType.reversed.antlrtree.txt
│       │   │   ├── redundantGetter.antlrtree.txt
│       │   │   ├── redundantSetter.antlrtree.txt
│       │   │   ├── setterThisTypeMismatch.antlrtree.txt
│       │   │   ├── setterWithSupertype.antlrtree.txt
│       │   │   ├── severalReceivers.antlrtree.txt
│       │   │   ├── thisInDelegate.antlrtree.txt
│       │   │   ├── thisOfAnyType.antlrtree.txt
│       │   │   ├── thisOfNothingNullableType.antlrtree.txt
│       │   │   ├── thisOfNothingType.antlrtree.txt
│       │   │   ├── twoGetMethods.antlrtree.txt
│       │   │   ├── typeMismatchForGetReturnType.antlrtree.txt
│       │   │   ├── typeMismatchForGetWithGeneric.antlrtree.txt
│       │   │   ├── typeMismatchForSetParameter.antlrtree.txt
│       │   │   ├── typeMismatchForThisGetParameter.antlrtree.txt
│       │   │   ├── useTypeParameterOfExtensionProperty.antlrtree.txt
│       │   │   ├── useTypeParameterOfExtensionProperty2.antlrtree.txt
│       │   │   ├── useTypeParameterOfExtensionProperty_Disabled.antlrtree.txt
│       │   │   ├── wrongCountOfParametersInGet.antlrtree.txt
│       │   │   ├── wrongCountOfParametersInSet.antlrtree.txt
│       │   │   └── wrongSetterReturnType.antlrtree.txt
│       │   ├── delegation/
│       │   │   ├── DelegationAndOverriding.antlrtree.txt
│       │   │   ├── DelegationExpectedType.antlrtree.txt
│       │   │   ├── DelegationNotTotrait.antlrtree.txt
│       │   │   ├── DelegationToJavaIface.antlrtree.txt
│       │   │   ├── Delegation_ClashingFunctions.antlrtree.txt
│       │   │   ├── Delegation_Hierarchy.antlrtree.txt
│       │   │   ├── Delegation_MultipleDelegates.antlrtree.txt
│       │   │   ├── Delegation_ScopeInitializationOrder.antlrtree.txt
│       │   │   ├── clashes/
│       │   │   │   ├── finalMemberOverridden.antlrtree.txt
│       │   │   │   ├── propertyTypeMismatch.antlrtree.txt
│       │   │   │   ├── returnTypeMismatch.antlrtree.txt
│       │   │   │   └── varOverriddenByVal.antlrtree.txt
│       │   │   ├── covariantOverrides/
│       │   │   │   ├── fromClass.antlrtree.txt
│       │   │   │   ├── irrelevant.antlrtree.txt
│       │   │   │   ├── kt13952.antlrtree.txt
│       │   │   │   └── simple.antlrtree.txt
│       │   │   ├── kt40510.main.antlrtree.txt
│       │   │   ├── kt44843.lt_neworld_compiler_Foo.antlrtree.txt
│       │   │   ├── kt44843.lt_neworld_compiler_bar_Bar.antlrtree.txt
│       │   │   ├── kt44843.test.antlrtree.txt
│       │   │   ├── kt48546.antlrtree.txt
│       │   │   ├── kt49477.antlrtree.txt
│       │   │   ├── kt49477.reversed.antlrtree.txt
│       │   │   ├── kt49477Error.antlrtree.txt
│       │   │   ├── kt49477Error.reversed.antlrtree.txt
│       │   │   ├── kt8154.antlrtree.txt
│       │   │   └── memberHidesSupertypeOverride/
│       │   │       ├── abstractOverride.antlrtree.txt
│       │   │       ├── delegationToSubType.antlrtree.txt
│       │   │       ├── delegationToSubTypeProperty.antlrtree.txt
│       │   │       ├── delegationToSubTypeWithOverride.antlrtree.txt
│       │   │       ├── delegationToSubTypeWithOverrideProperty.antlrtree.txt
│       │   │       ├── diamond.antlrtree.txt
│       │   │       ├── explicitOverride.antlrtree.txt
│       │   │       ├── fakeOverrideInTheMiddle.antlrtree.txt
│       │   │       ├── generic.antlrtree.txt
│       │   │       ├── sameDelegationInHierarchy.antlrtree.txt
│       │   │       ├── sameDelegationInHierarchy2.antlrtree.txt
│       │   │       ├── severalDelegates.antlrtree.txt
│       │   │       ├── simple.antlrtree.txt
│       │   │       ├── simpleNoOverride.antlrtree.txt
│       │   │       └── simpleProp.antlrtree.txt
│       │   ├── delegationTypeMismatch.antlrtree.txt
│       │   ├── deparenthesize/
│       │   │   ├── ParenthesizedVariable.antlrtree.txt
│       │   │   ├── annotatedSafeCall.antlrtree.txt
│       │   │   ├── checkDeparenthesizedType.antlrtree.txt
│       │   │   ├── labeledSafeCall.antlrtree.txt
│       │   │   ├── multiParenthesizedSafeCall.antlrtree.txt
│       │   │   └── parenthesizedSafeCall.antlrtree.txt
│       │   ├── deprecated/
│       │   │   ├── annotationUsage.antlrtree.txt
│       │   │   ├── candidateBehindHiddenPropertyAccessors.antlrtree.txt
│       │   │   ├── classWithCompanionObject.antlrtree.txt
│       │   │   ├── companionObjectUsage.antlrtree.txt
│       │   │   ├── componentUsage.antlrtree.txt
│       │   │   ├── deprecatedCompanionAndClassReference.antlrtree.txt
│       │   │   ├── deprecatedConstructor.A.antlrtree.txt
│       │   │   ├── deprecatedConstructor.C.antlrtree.txt
│       │   │   ├── deprecatedConstructor.use.antlrtree.txt
│       │   │   ├── deprecatedConstructorProperty.A.antlrtree.txt
│       │   │   ├── deprecatedConstructorProperty.use.antlrtree.txt
│       │   │   ├── deprecatedEnumEntry.A.antlrtree.txt
│       │   │   ├── deprecatedEnumEntry.use.antlrtree.txt
│       │   │   ├── deprecatedError.antlrtree.txt
│       │   │   ├── deprecatedErrorBuilder.antlrtree.txt
│       │   │   ├── deprecatedField.use.antlrtree.txt
│       │   │   ├── deprecatedHidden.antlrtree.txt
│       │   │   ├── deprecatedHiddenOnCallableReferenceArgument.antlrtree.txt
│       │   │   ├── deprecatedInheritance_after.antlrtree.txt
│       │   │   ├── deprecatedInheritance_before.antlrtree.txt
│       │   │   ├── deprecatedPropertyInheritance_after.antlrtree.txt
│       │   │   ├── deprecatedPropertyInheritance_before.antlrtree.txt
│       │   │   ├── deprecatedSinceKotlin/
│       │   │   │   ├── checkValuesAreParseableAsVersion.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinDeclaration.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinHiddenOnReferenceArgument.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinOutsideKotlinPackage.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinWithoutArguments.antlrtree.txt
│       │   │   │   ├── error.antlrtree.txt
│       │   │   │   ├── hidden.antlrtree.txt
│       │   │   │   ├── messageFromDeprecatedAnnotation.antlrtree.txt
│       │   │   │   └── warning.antlrtree.txt
│       │   │   ├── duplicatedOverrideDeprecationOnProperty.antlrtree.txt
│       │   │   ├── functionUsage.antlrtree.txt
│       │   │   ├── genericConstructorUsage.antlrtree.txt
│       │   │   ├── hiddenPropertyAccessors.antlrtree.txt
│       │   │   ├── importJavaSamInterface.K.antlrtree.txt
│       │   │   ├── imports.antlrtree.txt
│       │   │   ├── iteratorUsage.antlrtree.txt
│       │   │   ├── javaDeprecated.B.antlrtree.txt
│       │   │   ├── javaDeprecatedInheritance.use.antlrtree.txt
│       │   │   ├── javaDocDeprecated.B.antlrtree.txt
│       │   │   ├── nestedTypesUsage.antlrtree.txt
│       │   │   ├── objectUsage.antlrtree.txt
│       │   │   ├── propertyUsage.antlrtree.txt
│       │   │   ├── propertyUseSiteTargetedAnnotations.antlrtree.txt
│       │   │   ├── propertyWithInvoke.antlrtree.txt
│       │   │   ├── thisUsage.antlrtree.txt
│       │   │   ├── typeUsage.antlrtree.txt
│       │   │   ├── typealiasCompanionObject.antlrtree.txt
│       │   │   ├── typealiasConstructor.antlrtree.txt
│       │   │   ├── typealiasForDeprecatedClass.antlrtree.txt
│       │   │   ├── typealiasUsage.antlrtree.txt
│       │   │   ├── unusedImport.A.antlrtree.txt
│       │   │   ├── unusedImport.B.antlrtree.txt
│       │   │   ├── usageOnEnum.antlrtree.txt
│       │   │   └── warningOnConstructorErrorOnClass.antlrtree.txt
│       │   ├── derivedIntersectionPropertyShadowsBaseClassField.test.antlrtree.txt
│       │   ├── differentNumericTypesFromSmartCast.antlrtree.txt
│       │   ├── duplicateJvmSignature/
│       │   │   ├── accidentalOverrides/
│       │   │   │   ├── accidentalOverrideFromGrandparent.antlrtree.txt
│       │   │   │   ├── classFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── classFunctionOverriddenByPropertyInConstructor.antlrtree.txt
│       │   │   │   ├── classFunctionOverriddenByPropertyNoGetter.antlrtree.txt
│       │   │   │   ├── classPropertyOverriddenByFunction.antlrtree.txt
│       │   │   │   ├── defaultFunction.antlrtree.txt
│       │   │   │   ├── delegatedFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── genericClassFunction.antlrtree.txt
│       │   │   │   ├── overridesNothing.antlrtree.txt
│       │   │   │   ├── privateClassFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── require.antlrtree.txt
│       │   │   │   ├── traitFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── traitFunctionOverriddenByPropertyNoImpl.antlrtree.txt
│       │   │   │   ├── traitPropertyOverriddenByFunction.antlrtree.txt
│       │   │   │   └── traitPropertyOverriddenByFunctionNoImpl.antlrtree.txt
│       │   │   ├── bridges/
│       │   │   │   ├── class.antlrtree.txt
│       │   │   │   ├── fakeOverrideTrait.antlrtree.txt
│       │   │   │   └── trait.antlrtree.txt
│       │   │   ├── caseInProperties.antlrtree.txt
│       │   │   ├── erasure/
│       │   │   │   ├── clashFromInterfaceAndSuperClass.antlrtree.txt
│       │   │   │   ├── collections.antlrtree.txt
│       │   │   │   ├── delegateToTwoTraits.antlrtree.txt
│       │   │   │   ├── delegationAndOwnMethod.antlrtree.txt
│       │   │   │   ├── delegationToTraitImplAndOwnMethod.antlrtree.txt
│       │   │   │   ├── extensionProperties.antlrtree.txt
│       │   │   │   ├── genericType.antlrtree.txt
│       │   │   │   ├── inheritFromTwoTraits.antlrtree.txt
│       │   │   │   ├── kotlinAndJavaCollections.antlrtree.txt
│       │   │   │   ├── nullableType.antlrtree.txt
│       │   │   │   ├── superTraitAndDelegationToTraitImpl.antlrtree.txt
│       │   │   │   ├── twoTraitsAndOwnFunction.antlrtree.txt
│       │   │   │   ├── typeMappedToJava.antlrtree.txt
│       │   │   │   ├── typeParameter.antlrtree.txt
│       │   │   │   ├── typeParameterWithBound.antlrtree.txt
│       │   │   │   ├── typeParameterWithTwoBounds.antlrtree.txt
│       │   │   │   └── typeParameterWithTwoBoundsInWhere.antlrtree.txt
│       │   │   ├── finalMembersFromBuiltIns/
│       │   │   │   ├── enumMembers.antlrtree.txt
│       │   │   │   └── waitNotifyGetClass.antlrtree.txt
│       │   │   ├── functionAndProperty/
│       │   │   │   ├── class.antlrtree.txt
│       │   │   │   ├── classObject.antlrtree.txt
│       │   │   │   ├── classPropertyInConstructor.antlrtree.txt
│       │   │   │   ├── extensionFunctionAndNormalFunction.antlrtree.txt
│       │   │   │   ├── extensionPropertyAndFunction.antlrtree.txt
│       │   │   │   ├── functionAndSetter.antlrtree.txt
│       │   │   │   ├── functionAndVar.antlrtree.txt
│       │   │   │   ├── localClass.antlrtree.txt
│       │   │   │   ├── localClassInClass.antlrtree.txt
│       │   │   │   ├── nestedClass.antlrtree.txt
│       │   │   │   ├── object.antlrtree.txt
│       │   │   │   ├── objectExpression.antlrtree.txt
│       │   │   │   ├── objectExpressionInConstructor.antlrtree.txt
│       │   │   │   ├── privateClassPropertyNoClash.B.antlrtree.txt
│       │   │   │   ├── topLevel.antlrtree.txt
│       │   │   │   ├── topLevelDifferentFiles.a.antlrtree.txt
│       │   │   │   ├── topLevelDifferentFiles.b.antlrtree.txt
│       │   │   │   ├── topLevelGetter.antlrtree.txt
│       │   │   │   ├── trait.antlrtree.txt
│       │   │   │   └── withErrorTypes.antlrtree.txt
│       │   │   ├── missingNames.antlrtree.txt
│       │   │   ├── specialNames/
│       │   │   │   ├── classObject.antlrtree.txt
│       │   │   │   ├── classObjectCopiedField.antlrtree.txt
│       │   │   │   ├── classObjectCopiedFieldObject.antlrtree.txt
│       │   │   │   ├── dataClassCopy.antlrtree.txt
│       │   │   │   ├── delegationBy.antlrtree.txt
│       │   │   │   ├── enum.antlrtree.txt
│       │   │   │   ├── innerClassField.antlrtree.txt
│       │   │   │   ├── instance.antlrtree.txt
│       │   │   │   └── propertyMetadataCache.antlrtree.txt
│       │   │   ├── statics/
│       │   │   │   ├── jkjk.B.antlrtree.txt
│       │   │   │   ├── jkjk.K.antlrtree.txt
│       │   │   │   ├── kotlinClassExtendsJavaClass.K.antlrtree.txt
│       │   │   │   ├── kotlinClassExtendsJavaClassExtendsJavaClass.K.antlrtree.txt
│       │   │   │   ├── kotlinClassImplementsJavaInterface.K.antlrtree.txt
│       │   │   │   ├── kotlinClassImplementsJavaInterfaceExtendsJavaInteface.K.antlrtree.txt
│       │   │   │   └── kotlinMembersVsJavaNonVisibleStatics.K.antlrtree.txt
│       │   │   ├── synthesized/
│       │   │   │   └── enumValuesValueOf.antlrtree.txt
│       │   │   ├── traitImpl/
│       │   │   │   ├── oneTrait.antlrtree.txt
│       │   │   │   ├── traitFunctionOverriddenByPropertyInTrait.antlrtree.txt
│       │   │   │   ├── traitPropertyOverriddenByFunctionInTrait.antlrtree.txt
│       │   │   │   └── twoTraits.antlrtree.txt
│       │   │   └── vararg.antlrtree.txt
│       │   ├── dynamicTypes/
│       │   │   ├── delegationBy.antlrtree.txt
│       │   │   ├── unsupported.antlrtree.txt
│       │   │   └── withInvisibleSynthesized.k.antlrtree.txt
│       │   ├── enum/
│       │   │   ├── AbstractEnum.antlrtree.txt
│       │   │   ├── AbstractInEnum.antlrtree.txt
│       │   │   ├── AbstractOverrideInEnum.antlrtree.txt
│       │   │   ├── ConstructorCallFromOutside.antlrtree.txt
│       │   │   ├── ExplicitConstructorCall.antlrtree.txt
│       │   │   ├── InsideEntryConstructorCall.antlrtree.txt
│       │   │   ├── InsideSecondaryConstructorCall.antlrtree.txt
│       │   │   ├── NonPrivateConstructor.antlrtree.txt
│       │   │   ├── SecondaryConstructorCall.antlrtree.txt
│       │   │   ├── classObjectInEnum.antlrtree.txt
│       │   │   ├── classObjectInEnumPrivate.antlrtree.txt
│       │   │   ├── commonSupertype.antlrtree.txt
│       │   │   ├── compareTwoDifferentEnums.test.antlrtree.txt
│       │   │   ├── constructorWithDefaultParametersOnly.antlrtree.txt
│       │   │   ├── declaringClass.antlrtree.txt
│       │   │   ├── dontCreatePackageTypeForEnumEntry_after.antlrtree.txt
│       │   │   ├── dontCreatePackageTypeForEnumEntry_before.antlrtree.txt
│       │   │   ├── emptyConstructor.antlrtree.txt
│       │   │   ├── entries/
│       │   │   │   ├── conflictingPropertyEntriesAndReference.antlrtree.txt
│       │   │   │   ├── conflictingPropertyEntriesAndReferenceOn.antlrtree.txt
│       │   │   │   ├── conflictingPropertyEntriesAndReferencePrioritized.antlrtree.txt
│       │   │   │   ├── entriesPropertyAsExtensionClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyAsExtensionClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyAsExtensionClashPrioritized.antlrtree.txt
│       │   │   │   ├── entriesPropertyImportedClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyImportedClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyImportedClashPrioritized.antlrtree.txt
│       │   │   │   ├── entriesPropertyInCompanionClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyInCompanionClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyWithJvmStaticClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyWithJvmStaticClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyWithJvmStaticClashPrioritized.antlrtree.txt
│       │   │   │   ├── entriesUnsupported.antlrtree.txt
│       │   │   │   ├── enumEntriesAmbiguity.antlrtree.txt
│       │   │   │   ├── genericEntriesPropertyClash.antlrtree.txt
│       │   │   │   ├── genericEntriesPropertyClashOn.antlrtree.txt
│       │   │   │   ├── javaEnumEntriesAmbiguity.test.antlrtree.txt
│       │   │   │   ├── javaEnumEntriesAmbiguityOn.test.antlrtree.txt
│       │   │   │   ├── javaFakeEnumEntries.test.antlrtree.txt
│       │   │   │   ├── nameShadowingOfExternallyDefinedEntries.antlrtree.txt
│       │   │   │   ├── nameShadowingOfExternallyDefinedEntriesOn.antlrtree.txt
│       │   │   │   ├── nameShadowingOfExternallyDefinedEntriesPrioritized.antlrtree.txt
│       │   │   │   ├── redeclarationOfEnumEntriesNameWithIntrinsic.antlrtree.txt
│       │   │   │   └── redeclarationOfEnumEntriesNameWithIntrinsicOn.antlrtree.txt
│       │   │   ├── entryShouldBeOfEnumType.antlrtree.txt
│       │   │   ├── enumEntryCannotHaveClassObject.antlrtree.txt
│       │   │   ├── enumEntryInAbstractEnum.antlrtree.txt
│       │   │   ├── enumImplementingTrait.antlrtree.txt
│       │   │   ├── enumInheritance.test.antlrtree.txt
│       │   │   ├── enumIsAssignableToBuiltInEnum.antlrtree.txt
│       │   │   ├── enumMissingName.antlrtree.txt
│       │   │   ├── enumModifier.antlrtree.txt
│       │   │   ├── enumStarImport.enum.antlrtree.txt
│       │   │   ├── enumStarImport.user.antlrtree.txt
│       │   │   ├── enumSubjectTypeCheck.antlrtree.txt
│       │   │   ├── enumWithAnnotationKeyword.antlrtree.txt
│       │   │   ├── enumWithEmptyName.antlrtree.txt
│       │   │   ├── equalityOfEnumAndParameter.antlrtree.txt
│       │   │   ├── equalityOfFlexibleTypeParameters.B.antlrtree.txt
│       │   │   ├── extendingEnumDirectly.antlrtree.txt
│       │   │   ├── extensionNamedAsEnumEntry.antlrtree.txt
│       │   │   ├── ifEnumEntry.antlrtree.txt
│       │   │   ├── importEnumFromJava.test.antlrtree.txt
│       │   │   ├── incompatibleEnumEntryClasses.antlrtree.txt
│       │   │   ├── incompatibleEnums.antlrtree.txt
│       │   │   ├── incompatibleEnums_1_4.antlrtree.txt
│       │   │   ├── inheritFromEnumEntry.antlrtree.txt
│       │   │   ├── inheritanceFromEnum.test.antlrtree.txt
│       │   │   ├── inline.antlrtree.txt
│       │   │   ├── inner/
│       │   │   │   ├── existingClassObject.antlrtree.txt
│       │   │   │   ├── insideClass.antlrtree.txt
│       │   │   │   ├── insideClassObject.antlrtree.txt
│       │   │   │   ├── insideEnum.antlrtree.txt
│       │   │   │   ├── insideEnumEntry_after.antlrtree.txt
│       │   │   │   ├── insideEnumEntry_before.antlrtree.txt
│       │   │   │   ├── insideInnerClassNotAllowed.antlrtree.txt
│       │   │   │   ├── insideObject.antlrtree.txt
│       │   │   │   ├── insideTrait.antlrtree.txt
│       │   │   │   ├── redeclarationInClassObject.antlrtree.txt
│       │   │   │   ├── twoEnums.antlrtree.txt
│       │   │   │   └── twoEnumsInClassObjectAndInnerClass.antlrtree.txt
│       │   │   ├── interfaceWithEnumKeyword.antlrtree.txt
│       │   │   ├── isEnumEntry.antlrtree.txt
│       │   │   ├── javaEnumValueOfMethod.test.antlrtree.txt
│       │   │   ├── javaEnumValuesMethod.test.antlrtree.txt
│       │   │   ├── javaEnumWithAbstractFun.test.antlrtree.txt
│       │   │   ├── javaEnumWithFuns.test.antlrtree.txt
│       │   │   ├── javaEnumWithNameClashing.test.antlrtree.txt
│       │   │   ├── javaEnumWithProperty.test.antlrtree.txt
│       │   │   ├── kt2834.antlrtree.txt
│       │   │   ├── kt8972_cloneNotAllowed.antlrtree.txt
│       │   │   ├── localEnums.antlrtree.txt
│       │   │   ├── modifiersOnEnumEntry.antlrtree.txt
│       │   │   ├── multipleConstructors.antlrtree.txt
│       │   │   ├── openMemberInEnum.antlrtree.txt
│       │   │   ├── overrideFinalEnumMethods.antlrtree.txt
│       │   │   ├── referenceToEnumEntry.antlrtree.txt
│       │   │   ├── secondaryConstructorWithoutDelegatingToPrimaryOne.antlrtree.txt
│       │   │   ├── secondaryConstructorWithoutDelegatingToPrimaryOneWithEnabledFeature.antlrtree.txt
│       │   │   ├── starImportNestedClassAndEntries.E.antlrtree.txt
│       │   │   ├── starImportNestedClassAndEntries.main.antlrtree.txt
│       │   │   ├── typeCompatibility.antlrtree.txt
│       │   │   ├── typeParametersInEnum.antlrtree.txt
│       │   │   ├── valuesValueOfAndEntriesAccessibility.antlrtree.txt
│       │   │   └── wrongUnitializedEnumCompanion.antlrtree.txt
│       │   ├── equalityComparisonToSelf.antlrtree.txt
│       │   ├── equalityWithSmartCastInIfBlock.antlrtree.txt
│       │   ├── evaluate/
│       │   │   ├── binaryMinusDepOnExpType.antlrtree.txt
│       │   │   ├── binaryMinusIndepWoExpType.antlrtree.txt
│       │   │   ├── binaryMinusIndependentExpType.antlrtree.txt
│       │   │   ├── customExtensionOverKotlinExtensionInConst.antlrtree.txt
│       │   │   ├── divisionByZero.antlrtree.txt
│       │   │   ├── float.antlrtree.txt
│       │   │   ├── floatLiteralOutOfRange.antlrtree.txt
│       │   │   ├── infixFunOverBuiltinMemberInConst.antlrtree.txt
│       │   │   ├── inlineClasses/
│       │   │   │   ├── constructorOfUnsignedType.test.antlrtree.txt
│       │   │   │   └── constructorOfUnsignedType.uint.antlrtree.txt
│       │   │   ├── intOverflow.antlrtree.txt
│       │   │   ├── intOverflowWithJavaProperties.A.antlrtree.txt
│       │   │   ├── integer.antlrtree.txt
│       │   │   ├── logicWithNumber.antlrtree.txt
│       │   │   ├── longOverflow.antlrtree.txt
│       │   │   ├── noOverflowWithZero.antlrtree.txt
│       │   │   ├── numberBinaryOperations.antlrtree.txt
│       │   │   ├── numberBinaryOperationsCall.antlrtree.txt
│       │   │   ├── numberBinaryOperationsInfixCall.antlrtree.txt
│       │   │   ├── otherOverflow.antlrtree.txt
│       │   │   ├── parentesized.antlrtree.txt
│       │   │   ├── qualifiedExpressions.a.antlrtree.txt
│       │   │   ├── qualifiedExpressions.b.antlrtree.txt
│       │   │   ├── unaryMinusDepOnExpType.antlrtree.txt
│       │   │   ├── unaryMinusIndepWoExpType.antlrtree.txt
│       │   │   ├── unaryMinusIndependentExpType.antlrtree.txt
│       │   │   └── wrongLongSuffix.antlrtree.txt
│       │   ├── exceptions/
│       │   │   ├── expectedSomeTypesOnBranchForWhenExpressionOfErroneousType.antlrtree.txt
│       │   │   └── kt24158.antlrtree.txt
│       │   ├── explicitDefinitelyNotNullableViaIntersection/
│       │   │   ├── approximation.antlrtree.txt
│       │   │   ├── bareTypes.antlrtree.txt
│       │   │   ├── disabledFeature.antlrtree.txt
│       │   │   ├── inference.antlrtree.txt
│       │   │   ├── isAsOperators.antlrtree.txt
│       │   │   ├── isAsOperatorsEnabled.antlrtree.txt
│       │   │   ├── notApplicable.antlrtree.txt
│       │   │   ├── overrides.antlrtree.txt
│       │   │   ├── overridesJavaAnnotated.main.antlrtree.txt
│       │   │   ├── recursiveBounds.antlrtree.txt
│       │   │   ├── reifiedArguments.antlrtree.txt
│       │   │   └── simple.antlrtree.txt
│       │   ├── exposed/
│       │   │   ├── delegate.antlrtree.txt
│       │   │   ├── exceptionOnFakeInvisible.antlrtree.txt
│       │   │   ├── functional.antlrtree.txt
│       │   │   ├── implements.antlrtree.txt
│       │   │   ├── inaccessibleType.k_Client.antlrtree.txt
│       │   │   ├── internal.antlrtree.txt
│       │   │   ├── internalAndProtected.antlrtree.txt
│       │   │   ├── internalFromLocal.antlrtree.txt
│       │   │   ├── local.antlrtree.txt
│       │   │   ├── localFromInternal.antlrtree.txt
│       │   │   ├── localFromPrivate.antlrtree.txt
│       │   │   ├── localInFunReturnType.antlrtree.txt
│       │   │   ├── localInMemberType.antlrtree.txt
│       │   │   ├── localInPropertyType.antlrtree.txt
│       │   │   ├── nested.antlrtree.txt
│       │   │   ├── object.antlrtree.txt
│       │   │   ├── packagePrivate.other_Your.antlrtree.txt
│       │   │   ├── packagePrivate.test_His.antlrtree.txt
│       │   │   ├── privateFromLocal.antlrtree.txt
│       │   │   ├── privateInFile.antlrtree.txt
│       │   │   ├── privateInFileDisabled.antlrtree.txt
│       │   │   ├── privatePropertyInPrivateConstructor.antlrtree.txt
│       │   │   ├── propertyInConstructorOfPrivateClass.antlrtree.txt
│       │   │   ├── propertyInPrivateConstructor.antlrtree.txt
│       │   │   ├── propertyInPrivateConstructorError.antlrtree.txt
│       │   │   ├── propertyInSimpleConstructor.antlrtree.txt
│       │   │   ├── protected.antlrtree.txt
│       │   │   ├── protectedInProtected.antlrtree.txt
│       │   │   ├── protectedJava.OuterDerived.antlrtree.txt
│       │   │   ├── protectedSameWay.antlrtree.txt
│       │   │   ├── simple.antlrtree.txt
│       │   │   └── typeArgs.antlrtree.txt
│       │   ├── extensions/
│       │   │   ├── ExtensionFunctions.a.antlrtree.txt
│       │   │   ├── ExtensionFunctions.b.antlrtree.txt
│       │   │   ├── ExtensionsCalledOnSuper.antlrtree.txt
│       │   │   ├── GenericIterator.antlrtree.txt
│       │   │   ├── GenericIterator2.antlrtree.txt
│       │   │   ├── classObject.antlrtree.txt
│       │   │   ├── contextReceivers/
│       │   │   │   ├── ambiguityInGroup.antlrtree.txt
│       │   │   │   ├── conflicting.antlrtree.txt
│       │   │   │   ├── conflictingWithDifferentOrder.antlrtree.txt
│       │   │   │   ├── contextKeywordWithElvis.antlrtree.txt
│       │   │   │   ├── contextReceiverTypeParamsUsage.antlrtree.txt
│       │   │   │   ├── contextReceiverTypeParamsUsageError.antlrtree.txt
│       │   │   │   ├── contextualFunctionalTypeConversion.antlrtree.txt
│       │   │   │   ├── fromKEEP/
│       │   │   │   │   ├── autoCloseScope.antlrtree.txt
│       │   │   │   │   ├── canvas.antlrtree.txt
│       │   │   │   │   ├── clickHandler.antlrtree.txt
│       │   │   │   │   ├── compareTo.antlrtree.txt
│       │   │   │   │   ├── decimateEveryEvenThird.antlrtree.txt
│       │   │   │   │   ├── dp.antlrtree.txt
│       │   │   │   │   ├── functionalType.antlrtree.txt
│       │   │   │   │   ├── iterableClass.antlrtree.txt
│       │   │   │   │   ├── json.antlrtree.txt
│       │   │   │   │   ├── loggingContext.antlrtree.txt
│       │   │   │   │   ├── monoidSum.antlrtree.txt
│       │   │   │   │   ├── transaction.antlrtree.txt
│       │   │   │   │   └── userStorage.antlrtree.txt
│       │   │   │   ├── functionalType.antlrtree.txt
│       │   │   │   ├── genericOuterClass.antlrtree.txt
│       │   │   │   ├── insideDeclaration.antlrtree.txt
│       │   │   │   ├── labelFromFunctionName.antlrtree.txt
│       │   │   │   ├── labelsFromClassNameForbidden.antlrtree.txt
│       │   │   │   ├── lazy.antlrtree.txt
│       │   │   │   ├── manyReceivers.antlrtree.txt
│       │   │   │   ├── noBackingField.antlrtree.txt
│       │   │   │   ├── noContextReceiversOnValueClasses.antlrtree.txt
│       │   │   │   ├── noExplicitReceiver.antlrtree.txt
│       │   │   │   ├── noLabelsByClassName.antlrtree.txt
│       │   │   │   ├── nonConflicting.antlrtree.txt
│       │   │   │   ├── outerClass.antlrtree.txt
│       │   │   │   ├── overloadPriority.antlrtree.txt
│       │   │   │   ├── overloading.antlrtree.txt
│       │   │   │   ├── parameterizedContextualLambda.antlrtree.txt
│       │   │   │   ├── plusMatrix.antlrtree.txt
│       │   │   │   ├── subtypingBetweenContextReceivers.antlrtree.txt
│       │   │   │   ├── superWithContext.antlrtree.txt
│       │   │   │   ├── syntaxError.antlrtree.txt
│       │   │   │   ├── thisIdentifierInfo.antlrtree.txt
│       │   │   │   ├── thisWithCustomLabel.antlrtree.txt
│       │   │   │   ├── thisWithReceiverLabelsClasses.antlrtree.txt
│       │   │   │   ├── thisWithReceiverLabelsFunctions.antlrtree.txt
│       │   │   │   ├── thisWithReceiverLabelsProperties.antlrtree.txt
│       │   │   │   ├── twoReceiverCandidatesError.antlrtree.txt
│       │   │   │   ├── typeParameterAsContextReceiver.antlrtree.txt
│       │   │   │   ├── typeParameterized.antlrtree.txt
│       │   │   │   ├── typeParameterizedList.antlrtree.txt
│       │   │   │   ├── unsupported.antlrtree.txt
│       │   │   │   ├── withExplicitReceiver.antlrtree.txt
│       │   │   │   └── withExplicitReceiverError.antlrtree.txt
│       │   │   ├── extensionMemberInClassObject.antlrtree.txt
│       │   │   ├── extensionPropertyVsParameter.antlrtree.txt
│       │   │   ├── kt1875.antlrtree.txt
│       │   │   ├── kt2317.antlrtree.txt
│       │   │   ├── kt3470.antlrtree.txt
│       │   │   ├── kt3563.antlrtree.txt
│       │   │   ├── kt819ExtensionProperties.antlrtree.txt
│       │   │   ├── noClassObjectsInJava.B.antlrtree.txt
│       │   │   ├── object.antlrtree.txt
│       │   │   ├── throwOutCandidatesByReceiver.antlrtree.txt
│       │   │   ├── throwOutCandidatesByReceiver2.antlrtree.txt
│       │   │   └── variableInvoke.antlrtree.txt
│       │   ├── external/
│       │   │   └── noExternalModifierInheritance.antlrtree.txt
│       │   ├── fieldRename/
│       │   │   ├── derivedClassPropertyShadowsBaseClassField.test.antlrtree.txt
│       │   │   ├── derivedClassPropertyShadowsBaseClassField13.test.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyDifferentType.Main.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyDifferentType2.Main.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaFieldInPackagePrivate.B.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaFieldInPackagePrivate.test.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaPackagePrivateField.B.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaPackagePrivateField.test.antlrtree.txt
│       │   │   ├── javaProtectedFieldAndKotlinInvisiblePropertyReference.Base.antlrtree.txt
│       │   │   └── javaProtectedFieldAndKotlinInvisiblePropertyReference.Derived.antlrtree.txt
│       │   ├── fileDependencyRecursion.fileDependencyRecursion.antlrtree.txt
│       │   ├── fileDependencyRecursion.fileDependencyRecursionOther.antlrtree.txt
│       │   ├── finalSupertype.antlrtree.txt
│       │   ├── funInterface/
│       │   │   ├── basicFunInterface.antlrtree.txt
│       │   │   ├── basicFunInterfaceConversion.antlrtree.txt
│       │   │   ├── basicFunInterfaceDisabled.antlrtree.txt
│       │   │   ├── funInterfaceConstructorReferences_after.antlrtree.txt
│       │   │   ├── funInterfaceConstructorReferences_before.antlrtree.txt
│       │   │   ├── funInterfaceConversionOnReceiver.antlrtree.txt
│       │   │   ├── funInterfaceDeclarationCheck.antlrtree.txt
│       │   │   ├── funInterfaceSyntheticConstructors.antlrtree.txt
│       │   │   ├── funIsNotInheritedFromBaseInterface.antlrtree.txt
│       │   │   ├── functionDelegateClashOnJvm.antlrtree.txt
│       │   │   ├── genericSubstitutionForFunInterface.antlrtree.txt
│       │   │   ├── noCompatibilityResolveForFunInterfaces.antlrtree.txt
│       │   │   ├── resolveFunInterfaceWithoutMainMethod.antlrtree.txt
│       │   │   ├── severalConversionsForFunInterface.1.antlrtree.txt
│       │   │   └── suspendFunInterfaceConversion.antlrtree.txt
│       │   ├── funReturnsAny.antlrtree.txt
│       │   ├── functionAsExpression/
│       │   │   ├── AutoLabels.antlrtree.txt
│       │   │   ├── Common.antlrtree.txt
│       │   │   ├── DifficultInferenceForParameter.antlrtree.txt
│       │   │   ├── ForbiddenNonLocalReturn.antlrtree.txt
│       │   │   ├── FunctionType.antlrtree.txt
│       │   │   ├── InferenceParametersTypes.antlrtree.txt
│       │   │   ├── MissingParameterTypes.antlrtree.txt
│       │   │   ├── NameDeprecation.antlrtree.txt
│       │   │   ├── NoOverloadError.antlrtree.txt
│       │   │   ├── Parameters.antlrtree.txt
│       │   │   ├── ReceiverByExpectedType.antlrtree.txt
│       │   │   ├── ReturnAndLabels.antlrtree.txt
│       │   │   ├── ReturnTypeCheck.antlrtree.txt
│       │   │   ├── ScopeCheck.antlrtree.txt
│       │   │   ├── WithGenericParameters.antlrtree.txt
│       │   │   ├── WithOuterGeneric.antlrtree.txt
│       │   │   └── WithoutBody.antlrtree.txt
│       │   ├── functionLiterals/
│       │   │   ├── DeprecatedSyntax.antlrtree.txt
│       │   │   ├── ExpectedParameterTypeMismatchVariance.antlrtree.txt
│       │   │   ├── ExpectedParametersTypesMismatch.antlrtree.txt
│       │   │   ├── LabeledFunctionLiterals.antlrtree.txt
│       │   │   ├── assignmentOperationInLambda.antlrtree.txt
│       │   │   ├── assignmentOperationInLambdaWithExpectedType.antlrtree.txt
│       │   │   ├── destructuringInLambdas/
│       │   │   │   ├── complexInference.antlrtree.txt
│       │   │   │   ├── extensionComponents.antlrtree.txt
│       │   │   │   ├── inferredFunctionalType.antlrtree.txt
│       │   │   │   ├── modifiers.antlrtree.txt
│       │   │   │   ├── noExpectedType.antlrtree.txt
│       │   │   │   ├── redeclaration.antlrtree.txt
│       │   │   │   ├── shadowing.antlrtree.txt
│       │   │   │   ├── simple.antlrtree.txt
│       │   │   │   ├── underscore.antlrtree.txt
│       │   │   │   └── unusedParameters.antlrtree.txt
│       │   │   ├── functionExpressionAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── functionLIteralInBlockInIf.antlrtree.txt
│       │   │   ├── functionLiteralAsArgumentForFunction.antlrtree.txt
│       │   │   ├── functionLiteralInIf.antlrtree.txt
│       │   │   ├── functionLiteralWithoutArgumentList.antlrtree.txt
│       │   │   ├── genericFunctionalTypeOnRHSOfPlusAssign.antlrtree.txt
│       │   │   ├── higherOrderCallMissingParameters.antlrtree.txt
│       │   │   ├── kt11733.antlrtree.txt
│       │   │   ├── kt11733_1.Main.antlrtree.txt
│       │   │   ├── kt16016.antlrtree.txt
│       │   │   ├── kt2906.antlrtree.txt
│       │   │   ├── kt3343.antlrtree.txt
│       │   │   ├── kt4529.antlrtree.txt
│       │   │   ├── kt47493.antlrtree.txt
│       │   │   ├── kt51317.antlrtree.txt
│       │   │   ├── kt56138.antlrtree.txt
│       │   │   ├── kt6541_extensionForExtensionFunction.antlrtree.txt
│       │   │   ├── kt6869.antlrtree.txt
│       │   │   ├── kt7383_starProjectedFunction.antlrtree.txt
│       │   │   ├── lambdaInLambda2.main.antlrtree.txt
│       │   │   ├── missedTypeMismatch.antlrtree.txt
│       │   │   ├── prematurelyAnalyzingLambdaWhileFixingTypeVariableForAnotherArgument.antlrtree.txt
│       │   │   ├── return/
│       │   │   │   ├── AutoLabels.antlrtree.txt
│       │   │   │   ├── AutoLabelsNonLocal.antlrtree.txt
│       │   │   │   ├── ForbiddenNonLocalReturnNoType.antlrtree.txt
│       │   │   │   ├── IfInReturnedExpression.antlrtree.txt
│       │   │   │   ├── IfWithoutElse.antlrtree.txt
│       │   │   │   ├── IfWithoutElseWithExplicitType.antlrtree.txt
│       │   │   │   ├── LambdaWithParameter.antlrtree.txt
│       │   │   │   ├── LocalAndNonLocalReturnInLambda.antlrtree.txt
│       │   │   │   ├── LocalReturnExplicitLabelNoParens.antlrtree.txt
│       │   │   │   ├── LocalReturnExplicitLabelParens.antlrtree.txt
│       │   │   │   ├── LocalReturnHasTypeNothing.antlrtree.txt
│       │   │   │   ├── LocalReturnInNestedFunction.antlrtree.txt
│       │   │   │   ├── LocalReturnInNestedLambda.antlrtree.txt
│       │   │   │   ├── LocalReturnNoCoercionToUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnNull.antlrtree.txt
│       │   │   │   ├── LocalReturnSecondUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnUnitAndDontCareType.antlrtree.txt
│       │   │   │   ├── LocalReturnUnitWithBodyExpression.antlrtree.txt
│       │   │   │   ├── LocalReturnWithExpectedType.antlrtree.txt
│       │   │   │   ├── LocalReturnWithExplicitUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnsWithExplicitReturnType.antlrtree.txt
│       │   │   │   ├── MixedReturnsFromLambda.antlrtree.txt
│       │   │   │   ├── NoCommonSystem.antlrtree.txt
│       │   │   │   ├── SmartCast.antlrtree.txt
│       │   │   │   ├── SmartCastWithExplicitType.antlrtree.txt
│       │   │   │   └── unresolvedReferenceInReturnBlock.antlrtree.txt
│       │   │   ├── returnNull.antlrtree.txt
│       │   │   ├── returnNullWithReturn.antlrtree.txt
│       │   │   ├── underscopeParameters.antlrtree.txt
│       │   │   ├── unusedLiteral.antlrtree.txt
│       │   │   └── unusedLiteralInsideUnitLiteral.antlrtree.txt
│       │   ├── generics/
│       │   │   ├── InconsistentTypeParameterBounds.antlrtree.txt
│       │   │   ├── Projections.antlrtree.txt
│       │   │   ├── PseudoRawTypes.Kotlin.antlrtree.txt
│       │   │   ├── RawTypeInIsExpression.antlrtree.txt
│       │   │   ├── RawTypeInIsPattern.antlrtree.txt
│       │   │   ├── RecursiveUpperBoundCheck.antlrtree.txt
│       │   │   ├── RecursiveUpperBoundWithTwoArguments.antlrtree.txt
│       │   │   ├── TypeParameterBounds.antlrtree.txt
│       │   │   ├── TypeParametersInTypeParameterBounds.antlrtree.txt
│       │   │   ├── anonymousObjectSupertypeWithTypeParameterFromFunction.antlrtree.txt
│       │   │   ├── approximationOfInProjection.antlrtree.txt
│       │   │   ├── argumentsForT.antlrtree.txt
│       │   │   ├── bareTypesWithStarProjections.antlrtree.txt
│       │   │   ├── capturedParameters/
│       │   │   │   ├── captured.antlrtree.txt
│       │   │   │   ├── innerLocalClass.antlrtree.txt
│       │   │   │   ├── localClass.antlrtree.txt
│       │   │   │   ├── localWithTypeParameter.antlrtree.txt
│       │   │   │   ├── objectLiteral.antlrtree.txt
│       │   │   │   └── uncheckedCast.antlrtree.txt
│       │   │   ├── commonSupertypeContravariant.antlrtree.txt
│       │   │   ├── commonSupertypeContravariant2.antlrtree.txt
│       │   │   ├── cyclicBounds/
│       │   │   │   ├── functions.antlrtree.txt
│       │   │   │   └── inClass.antlrtree.txt
│       │   │   ├── doNotCaptureSupertype.antlrtree.txt
│       │   │   ├── finalUpperBoundWithOverride.antlrtree.txt
│       │   │   ├── finalUpperBoundWithoutOverride.antlrtree.txt
│       │   │   ├── genericsInType.antlrtree.txt
│       │   │   ├── innerClasses/
│       │   │   │   ├── bareTypes.antlrtree.txt
│       │   │   │   ├── bareTypesComplex.antlrtree.txt
│       │   │   │   ├── checkBoundsOuter.antlrtree.txt
│       │   │   │   ├── implicitArguments/
│       │   │   │   │   ├── fromCompanionObject_after.antlrtree.txt
│       │   │   │   │   ├── fromCompanionObject_before.antlrtree.txt
│       │   │   │   │   ├── fromOuterClassInObjectLiteral.antlrtree.txt
│       │   │   │   │   ├── fromSuperClasses.antlrtree.txt
│       │   │   │   │   ├── fromSuperClassesLocal.antlrtree.txt
│       │   │   │   │   ├── fromSuperClassesLocalInsideInner.antlrtree.txt
│       │   │   │   │   ├── fromSuperClassesTransitive.antlrtree.txt
│       │   │   │   │   ├── inStaticScope.antlrtree.txt
│       │   │   │   │   └── secondLevelDepth.antlrtree.txt
│       │   │   │   ├── importedInner.antlrtree.txt
│       │   │   │   ├── innerSuperCall.antlrtree.txt
│       │   │   │   ├── innerSuperCallSecondary.antlrtree.txt
│       │   │   │   ├── innerTP.antlrtree.txt
│       │   │   │   ├── innerUncheckedCast.antlrtree.txt
│       │   │   │   ├── innerVariance.antlrtree.txt
│       │   │   │   ├── iterator.antlrtree.txt
│       │   │   │   ├── j+k.main.antlrtree.txt
│       │   │   │   ├── j+k_complex.main.antlrtree.txt
│       │   │   │   ├── kt3357.antlrtree.txt
│       │   │   │   ├── kt408.antlrtree.txt
│       │   │   │   ├── kt6325.antlrtree.txt
│       │   │   │   ├── noTypeVarianceConflictInNestedClass.antlrtree.txt
│       │   │   │   ├── outerArgumentsRequired.antlrtree.txt
│       │   │   │   ├── parameterShadowing.antlrtree.txt
│       │   │   │   ├── qualifiedOuter.antlrtree.txt
│       │   │   │   ├── qualifiedTypesResolution.main.antlrtree.txt
│       │   │   │   ├── qualifiedTypesResolution.test.antlrtree.txt
│       │   │   │   ├── simple.antlrtree.txt
│       │   │   │   ├── simpleIn.antlrtree.txt
│       │   │   │   ├── simpleOut.antlrtree.txt
│       │   │   │   ├── simpleOutUseSite.antlrtree.txt
│       │   │   │   └── substitutedMemberScope.antlrtree.txt
│       │   │   ├── invalidArgumentsNumberInWhere.antlrtree.txt
│       │   │   ├── kt1575-Class.antlrtree.txt
│       │   │   ├── kt1575-Function.antlrtree.txt
│       │   │   ├── kt30590.antlrtree.txt
│       │   │   ├── kt34729.antlrtree.txt
│       │   │   ├── kt53656.antlrtree.txt
│       │   │   ├── kt5508.antlrtree.txt
│       │   │   ├── kt9203.antlrtree.txt
│       │   │   ├── kt9203_1.antlrtree.txt
│       │   │   ├── kt9985.A.antlrtree.txt
│       │   │   ├── localClassTypeRefWithTypeParameterFromFunction.antlrtree.txt
│       │   │   ├── multipleBoundsMemberScope/
│       │   │   │   ├── conflictingReturnType.antlrtree.txt
│       │   │   │   ├── flexibleTypes.main.antlrtree.txt
│       │   │   │   ├── mostSpecific.antlrtree.txt
│       │   │   │   ├── properties.antlrtree.txt
│       │   │   │   ├── propertiesConflict.antlrtree.txt
│       │   │   │   ├── simple.antlrtree.txt
│       │   │   │   └── validTypeParameters.antlrtree.txt
│       │   │   ├── nullability/
│       │   │   │   ├── capturedTypeWithPlatformSupertype.test.antlrtree.txt
│       │   │   │   ├── considerTypeNotNullOnlyIfItHasNotNullBound.antlrtree.txt
│       │   │   │   ├── correctSubstitutionForIncorporationConstraint.test.antlrtree.txt
│       │   │   │   ├── declarationsBoundsViolation.antlrtree.txt
│       │   │   │   ├── expressionsBoundsViolation.antlrtree.txt
│       │   │   │   ├── functionalBound.antlrtree.txt
│       │   │   │   ├── inferNotNullTypeFromIntersectionOfNullableTypes.antlrtree.txt
│       │   │   │   ├── kt25182.antlrtree.txt
│       │   │   │   ├── notNullSmartcastOnIntersectionOfNullables.antlrtree.txt
│       │   │   │   ├── nullToGeneric.antlrtree.txt
│       │   │   │   ├── smartCastRefinedClass.antlrtree.txt
│       │   │   │   ├── smartCasts.antlrtree.txt
│       │   │   │   ├── smartCastsOnThis.antlrtree.txt
│       │   │   │   ├── smartCastsValueArgument.antlrtree.txt
│       │   │   │   ├── tpBoundsViolation.antlrtree.txt
│       │   │   │   ├── tpBoundsViolationVariance.antlrtree.txt
│       │   │   │   ├── tpInBounds.antlrtree.txt
│       │   │   │   ├── useAsReceiver.antlrtree.txt
│       │   │   │   └── useAsValueArgument.antlrtree.txt
│       │   │   ├── nullableTypeParameterScope.antlrtree.txt
│       │   │   ├── outerTypeParametersInNestedClasses.antlrtree.txt
│       │   │   ├── projectionsScope/
│       │   │   │   ├── MLOut.main.antlrtree.txt
│       │   │   │   ├── addAll.antlrtree.txt
│       │   │   │   ├── approximateDispatchReceiver.antlrtree.txt
│       │   │   │   ├── extensionReceiverTypeMismatch.antlrtree.txt
│       │   │   │   ├── extensionResultSubstitution.antlrtree.txt
│       │   │   │   ├── flexibleProjectedScope.main.antlrtree.txt
│       │   │   │   ├── inValueParameter.antlrtree.txt
│       │   │   │   ├── iterateOnExtension.antlrtree.txt
│       │   │   │   ├── kt7296.antlrtree.txt
│       │   │   │   ├── kt8647.antlrtree.txt
│       │   │   │   ├── lambdaArgument.antlrtree.txt
│       │   │   │   ├── leakedApproximatedType.antlrtree.txt
│       │   │   │   ├── multipleArgumentProjectedOut.antlrtree.txt
│       │   │   │   ├── platformSuperClass.main.antlrtree.txt
│       │   │   │   ├── projectedOutConventions.antlrtree.txt
│       │   │   │   ├── projectedOutSmartCast.antlrtree.txt
│       │   │   │   ├── recursiveUpperBoundStar.antlrtree.txt
│       │   │   │   ├── recursiveUpperBoundStarOut.antlrtree.txt
│       │   │   │   ├── starNullability.antlrtree.txt
│       │   │   │   ├── starNullabilityRecursive.antlrtree.txt
│       │   │   │   ├── superClass.antlrtree.txt
│       │   │   │   ├── typeMismatchConventions.antlrtree.txt
│       │   │   │   ├── typeMismatchInLambda.antlrtree.txt
│       │   │   │   ├── typeParameterBounds.antlrtree.txt
│       │   │   │   ├── unsafeVarianceInAliasedFunctionalType.antlrtree.txt
│       │   │   │   ├── unsafeVarianceOnInputTypeOfFunctionalType.antlrtree.txt
│       │   │   │   ├── unsafeVarianceStar.antlrtree.txt
│       │   │   │   ├── unsafeVarianceWithRecursiveGenerics.antlrtree.txt
│       │   │   │   └── varargs.antlrtree.txt
│       │   │   ├── protectedSuperCall.GA.antlrtree.txt
│       │   │   ├── protectedSuperCall.Main.antlrtree.txt
│       │   │   ├── recursive.antlrtree.txt
│       │   │   ├── resolveGenericBoundsBeforeSupertypes.antlrtree.txt
│       │   │   ├── sameTypeParameterUse.antlrtree.txt
│       │   │   ├── starProjections/
│       │   │   │   ├── checkBounds.antlrtree.txt
│       │   │   │   ├── collectionInheritedFromJava.k.antlrtree.txt
│       │   │   │   ├── foldRecursiveTypesToStarProjection.antlrtree.txt
│       │   │   │   ├── inheritedFromJava.k.antlrtree.txt
│       │   │   │   ├── inheritedFromKotlin.antlrtree.txt
│       │   │   │   └── invalid.main.antlrtree.txt
│       │   │   ├── suppressVarianceConflict.antlrtree.txt
│       │   │   ├── tpAsReified/
│       │   │   │   ├── CapturedAsReified.antlrtree.txt
│       │   │   │   ├── ClassDereference.antlrtree.txt
│       │   │   │   ├── Conventions.antlrtree.txt
│       │   │   │   ├── GenericArrayAsReifiedArgument.antlrtree.txt
│       │   │   │   ├── GenericArrayAsReifiedArgumentWarning.antlrtree.txt
│       │   │   │   ├── GenericAsReifiedArgument.antlrtree.txt
│       │   │   │   ├── InConstructor.antlrtree.txt
│       │   │   │   ├── InFunction.antlrtree.txt
│       │   │   │   ├── InProperty.antlrtree.txt
│       │   │   │   ├── InType.antlrtree.txt
│       │   │   │   ├── InlineableReified.antlrtree.txt
│       │   │   │   ├── LocalFun.antlrtree.txt
│       │   │   │   ├── NotInlineableReified.antlrtree.txt
│       │   │   │   └── ReifiedClass.antlrtree.txt
│       │   │   ├── unresolvedClassifierInWhere.antlrtree.txt
│       │   │   ├── varProjection/
│       │   │   │   ├── setterNotProjectedOutAssign.antlrtree.txt
│       │   │   │   ├── setterProjectedOutAssign.test.antlrtree.txt
│       │   │   │   ├── setterProjectedOutNoPlusAssign.antlrtree.txt
│       │   │   │   └── setterProjectedOutPlusAssignDefined.antlrtree.txt
│       │   │   ├── wildcardInValueParameter.main.antlrtree.txt
│       │   │   └── wrongNumberOfTypeArgumentsDiagnostic.antlrtree.txt
│       │   ├── implicitIntersection.antlrtree.txt
│       │   ├── implicitNestedIntersection.antlrtree.txt
│       │   ├── implicitNothing.antlrtree.txt
│       │   ├── imports/
│       │   │   ├── AllUnderImportsAmbiguity.a.antlrtree.txt
│       │   │   ├── AllUnderImportsAmbiguity.b.antlrtree.txt
│       │   │   ├── AllUnderImportsAmbiguity.c.antlrtree.txt
│       │   │   ├── AllUnderImportsLessPriority.a.antlrtree.txt
│       │   │   ├── AllUnderImportsLessPriority.b.antlrtree.txt
│       │   │   ├── AllUnderImportsLessPriority.c.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForFunction.a.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForFunction.b.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForFunction.c.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForProperty.a.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForProperty.b.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForProperty.c.antlrtree.txt
│       │   │   ├── CheckJavaVisibility.k1.antlrtree.txt
│       │   │   ├── CheckJavaVisibility.k2.antlrtree.txt
│       │   │   ├── CheckJavaVisibility2.j.antlrtree.txt
│       │   │   ├── CheckJavaVisibility2.k.antlrtree.txt
│       │   │   ├── CheckVisibility.k1.antlrtree.txt
│       │   │   ├── CheckVisibility.k2.antlrtree.txt
│       │   │   ├── CheckVisibility.k3.antlrtree.txt
│       │   │   ├── ClassClash.a.antlrtree.txt
│       │   │   ├── ClassClash.b.antlrtree.txt
│       │   │   ├── ClassClash.c.antlrtree.txt
│       │   │   ├── ClassClash.top_a.antlrtree.txt
│       │   │   ├── ClassClash.top_b.antlrtree.txt
│       │   │   ├── ClassClash.top_c.antlrtree.txt
│       │   │   ├── ClassClash.top_d.antlrtree.txt
│       │   │   ├── ClassClashStarImport.a.antlrtree.txt
│       │   │   ├── ClassClashStarImport.b.antlrtree.txt
│       │   │   ├── ClassClashStarImport.top_a.antlrtree.txt
│       │   │   ├── ClassClashStarImport.top_b.antlrtree.txt
│       │   │   ├── ClassClashStarImport.top_c.antlrtree.txt
│       │   │   ├── ClassImportsConflicting.a.antlrtree.txt
│       │   │   ├── ClassImportsConflicting.b.antlrtree.txt
│       │   │   ├── ClassImportsConflicting.c.antlrtree.txt
│       │   │   ├── CurrentPackageAndAllUnderImport.a.antlrtree.txt
│       │   │   ├── CurrentPackageAndAllUnderImport.b.antlrtree.txt
│       │   │   ├── CurrentPackageAndAllUnderImport.b1.antlrtree.txt
│       │   │   ├── CurrentPackageAndExplicitImport.a.antlrtree.txt
│       │   │   ├── CurrentPackageAndExplicitImport.b.antlrtree.txt
│       │   │   ├── CurrentPackageAndExplicitImport.b1.antlrtree.txt
│       │   │   ├── DefaultImportsPriority.antlrtree.txt
│       │   │   ├── DoubleImports.ExplicitImported.antlrtree.txt
│       │   │   ├── DoubleImports.StarImported.antlrtree.txt
│       │   │   ├── DoubleImports.Test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity.test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity2.OtherEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity2.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity2.test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity3.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity3.test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity4.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity4.test.antlrtree.txt
│       │   │   ├── ExplicitImportsAmbiguity.a.antlrtree.txt
│       │   │   ├── ExplicitImportsAmbiguity.b.antlrtree.txt
│       │   │   ├── ExplicitImportsAmbiguity.c.antlrtree.txt
│       │   │   ├── ExplicitImportsUnambiguityForFunction.a.antlrtree.txt
│       │   │   ├── ExplicitImportsUnambiguityForFunction.b.antlrtree.txt
│       │   │   ├── ExplicitImportsUnambiguityForFunction.c.antlrtree.txt
│       │   │   ├── ExplicitPackageImportsAmbiguity.a.antlrtree.txt
│       │   │   ├── ExplicitPackageImportsAmbiguity.b.antlrtree.txt
│       │   │   ├── ExplicitPackageImportsAmbiguity.c.antlrtree.txt
│       │   │   ├── ImportClassClash.1.antlrtree.txt
│       │   │   ├── ImportClassClash.2.antlrtree.txt
│       │   │   ├── ImportClassClash.3.antlrtree.txt
│       │   │   ├── ImportClassClash.4.antlrtree.txt
│       │   │   ├── ImportClassClash.5.antlrtree.txt
│       │   │   ├── ImportClassClash.6.antlrtree.txt
│       │   │   ├── ImportClassClash.7.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.a.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.b.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.c.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.d.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.e.antlrtree.txt
│       │   │   ├── ImportFromCurrentWithDifferentName.antlrtree.txt
│       │   │   ├── ImportFromCurrentWithDifferentNameComplex.antlrtree.txt
│       │   │   ├── ImportFromObject.a.antlrtree.txt
│       │   │   ├── ImportFromObject.b.antlrtree.txt
│       │   │   ├── ImportFromObject.c.antlrtree.txt
│       │   │   ├── ImportFromObject.d.antlrtree.txt
│       │   │   ├── ImportFromObject.e.antlrtree.txt
│       │   │   ├── ImportFromRootPackage.anotherFromRootPackage.antlrtree.txt
│       │   │   ├── ImportFromRootPackage.rootPackage.antlrtree.txt
│       │   │   ├── ImportFromRootPackage.yetAnotherFromRootPackage.antlrtree.txt
│       │   │   ├── ImportFunctionWithPackageName.a.antlrtree.txt
│       │   │   ├── ImportFunctionWithPackageName.b.antlrtree.txt
│       │   │   ├── ImportFunctionWithPackageName.c.antlrtree.txt
│       │   │   ├── ImportHidingDefinitionInTheSameFile.antlrtree.txt
│       │   │   ├── ImportNestedWithDifferentName.antlrtree.txt
│       │   │   ├── ImportObjectAndUseAsSupertype.a.antlrtree.txt
│       │   │   ├── ImportObjectAndUseAsSupertype.b.antlrtree.txt
│       │   │   ├── ImportObjectHidesCurrentPackage.a.antlrtree.txt
│       │   │   ├── ImportObjectHidesCurrentPackage.b.antlrtree.txt
│       │   │   ├── ImportOverloadFunctions.1.antlrtree.txt
│       │   │   ├── ImportOverloadFunctions.2.antlrtree.txt
│       │   │   ├── ImportPrivateMember.antlrtree.txt
│       │   │   ├── ImportPrivateMemberFromOtherFile.A.antlrtree.txt
│       │   │   ├── ImportPrivateMemberFromOtherFile.C.antlrtree.txt
│       │   │   ├── ImportPrivateMembersWithStar.antlrtree.txt
│       │   │   ├── ImportProtectedClass.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.a.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.b.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.c.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.d.antlrtree.txt
│       │   │   ├── ImportStaticFunctionWithNonStaticSibling.test.antlrtree.txt
│       │   │   ├── ImportTwoTimes.a.antlrtree.txt
│       │   │   ├── ImportTwoTimes.b.antlrtree.txt
│       │   │   ├── ImportTwoTimesStar.a.antlrtree.txt
│       │   │   ├── ImportTwoTimesStar.b.antlrtree.txt
│       │   │   ├── Imports.a.antlrtree.txt
│       │   │   ├── Imports.b.antlrtree.txt
│       │   │   ├── Imports.c.antlrtree.txt
│       │   │   ├── Imports.d.antlrtree.txt
│       │   │   ├── ImportsConflicting.a.antlrtree.txt
│       │   │   ├── ImportsConflicting.b.antlrtree.txt
│       │   │   ├── ImportsConflicting.c.antlrtree.txt
│       │   │   ├── InaccessiblePrivateClass.a.antlrtree.txt
│       │   │   ├── InaccessiblePrivateClass.b.antlrtree.txt
│       │   │   ├── InaccessiblePrivateClass.c.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f11.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f12.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f21.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f22.antlrtree.txt
│       │   │   ├── JavaPackageLocalClassNotImported.File.antlrtree.txt
│       │   │   ├── JavaPackageLocalClassNotImported.Main.antlrtree.txt
│       │   │   ├── MalformedImports.antlrtree.txt
│       │   │   ├── NestedClassClash.a.antlrtree.txt
│       │   │   ├── NestedClassClash.b.antlrtree.txt
│       │   │   ├── NestedClassClash.c.antlrtree.txt
│       │   │   ├── NestedClassClash.d.antlrtree.txt
│       │   │   ├── OperatorRenameOnImport.a.antlrtree.txt
│       │   │   ├── OperatorRenameOnImport.b.antlrtree.txt
│       │   │   ├── OptionalAnnotationClasses.antlrtree.txt
│       │   │   ├── PackageLocalClassNotImported.File1.antlrtree.txt
│       │   │   ├── PackageLocalClassNotImported.File2.antlrtree.txt
│       │   │   ├── PackageLocalClassNotImported.Main.antlrtree.txt
│       │   │   ├── PackageLocalClassReferencedError.File1.antlrtree.txt
│       │   │   ├── PackageLocalClassReferencedError.Main.antlrtree.txt
│       │   │   ├── PackageVsClass.a.antlrtree.txt
│       │   │   ├── PackageVsClass.b.antlrtree.txt
│       │   │   ├── PackageVsClass.c.antlrtree.txt
│       │   │   ├── PackageVsClass.d.antlrtree.txt
│       │   │   ├── PrivateClassNotImported.File1.antlrtree.txt
│       │   │   ├── PrivateClassNotImported.File2.antlrtree.txt
│       │   │   ├── PrivateClassNotImported.Main.antlrtree.txt
│       │   │   ├── PrivateClassReferencedError.File1.antlrtree.txt
│       │   │   ├── PrivateClassReferencedError.Main.antlrtree.txt
│       │   │   ├── RenameOnImport.a.antlrtree.txt
│       │   │   ├── RenameOnImport.b.antlrtree.txt
│       │   │   ├── RenameOnImport.c.antlrtree.txt
│       │   │   ├── StarImportFromObject.antlrtree.txt
│       │   │   ├── SyntaxError.a.antlrtree.txt
│       │   │   ├── SyntaxError.b.antlrtree.txt
│       │   │   ├── SyntaxError.c.antlrtree.txt
│       │   │   ├── SyntaxError.d.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.a.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.b.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.c.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.d.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.e.antlrtree.txt
│       │   │   ├── WrongImport.a.antlrtree.txt
│       │   │   ├── WrongImport.b.antlrtree.txt
│       │   │   ├── WrongImport.c.antlrtree.txt
│       │   │   ├── brokenImport.Klass.antlrtree.txt
│       │   │   ├── brokenImport.test.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImport.importFunctionWithAllUnderImport.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImport.importFunctionWithAllUnderImportOther.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImportAfterNamedImport.mainFile.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImportAfterNamedImport.testing.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImportAfterNamedImport.testingOther.antlrtree.txt
│       │   │   ├── invisibleFakeReferenceInImport.A.antlrtree.txt
│       │   │   ├── invisibleFakeReferenceInImport.B.antlrtree.txt
│       │   │   ├── invisibleFakeReferenceInImport.C.antlrtree.txt
│       │   │   ├── kt13112.1.antlrtree.txt
│       │   │   ├── kt13112.2.antlrtree.txt
│       │   │   ├── kt13112.3.antlrtree.txt
│       │   │   ├── propertyClassFileDependencyRecursion.propertyClassFileDependencyRecursion.antlrtree.txt
│       │   │   ├── propertyClassFileDependencyRecursion.propertyClassFileDependencyRecursionOther.antlrtree.txt
│       │   │   ├── renamedImportInDifferentFile.first.antlrtree.txt
│       │   │   ├── renamedImportInDifferentFile.main.antlrtree.txt
│       │   │   ├── twoImportLists.a.antlrtree.txt
│       │   │   ├── twoImportLists.b.antlrtree.txt
│       │   │   ├── twoImportLists.c.antlrtree.txt
│       │   │   └── twoImportLists.d.antlrtree.txt
│       │   ├── incompleteCode/
│       │   │   ├── NoSenselessComparisonForErrorType.antlrtree.txt
│       │   │   ├── SupertypeOfErrorType.antlrtree.txt
│       │   │   ├── arrayBracketsRange.antlrtree.txt
│       │   │   ├── checkNothingIsSubtype.antlrtree.txt
│       │   │   ├── controlStructuresErrors.antlrtree.txt
│       │   │   ├── diagnosticWithSyntaxError/
│       │   │   │   ├── arrayExpression.antlrtree.txt
│       │   │   │   ├── checkBackingFieldException.antlrtree.txt
│       │   │   │   ├── completeFunctionArgumentsOfNestedCalls.antlrtree.txt
│       │   │   │   ├── declarationAfterDotSelectorExpected.antlrtree.txt
│       │   │   │   ├── declarationAfterIncompleteElvis.antlrtree.txt
│       │   │   │   ├── funEquals.antlrtree.txt
│       │   │   │   ├── funKeyword.antlrtree.txt
│       │   │   │   ├── funcitonTypes.antlrtree.txt
│       │   │   │   ├── incompleteEnumReference.antlrtree.txt
│       │   │   │   ├── incompleteVal.antlrtree.txt
│       │   │   │   ├── incompleteValWithAccessor.antlrtree.txt
│       │   │   │   ├── incompleteWhen.antlrtree.txt
│       │   │   │   ├── namedFun.antlrtree.txt
│       │   │   │   ├── noTypeParamsInReturnType.antlrtree.txt
│       │   │   │   ├── typeReferenceError.antlrtree.txt
│       │   │   │   ├── valNoName.antlrtree.txt
│       │   │   │   ├── valWithNoNameBeforeNextDeclarationWithModifiers.antlrtree.txt
│       │   │   │   └── valWithNoNameInBlock.antlrtree.txt
│       │   │   ├── illegalSelectorCallableReference.antlrtree.txt
│       │   │   ├── inExpr.antlrtree.txt
│       │   │   ├── incompleteAssignment.antlrtree.txt
│       │   │   ├── incompleteEquals.antlrtree.txt
│       │   │   ├── incompleteTryCatchBlock.antlrtree.txt
│       │   │   ├── kt1955.antlrtree.txt
│       │   │   ├── kt2014.antlrtree.txt
│       │   │   ├── kt4866UnresolvedArrayAccess.antlrtree.txt
│       │   │   ├── kt59041.antlrtree.txt
│       │   │   ├── plusOnTheRight.antlrtree.txt
│       │   │   ├── pseudocodeTraverseNextInstructions.antlrtree.txt
│       │   │   ├── senselessComparisonWithNull.antlrtree.txt
│       │   │   ├── typeParameterOnLhsOfDot.antlrtree.txt
│       │   │   ├── unresolvedArguments.antlrtree.txt
│       │   │   ├── unresolvedOperation.antlrtree.txt
│       │   │   ├── unresolvedTypeWithTypeArguments.antlrtree.txt
│       │   │   └── variableDeclarationInSelector.antlrtree.txt
│       │   ├── incrementDecrementOnFullyQualified.antlrtree.txt
│       │   ├── incrementDecrementOnObject.antlrtree.txt
│       │   ├── inference/
│       │   │   ├── NoInferenceFromDeclaredBounds.antlrtree.txt
│       │   │   ├── annotatedUnderscoredTypeArgument.antlrtree.txt
│       │   │   ├── builderInference/
│       │   │   │   ├── changingResolveIfDontUseBuilderInference.antlrtree.txt
│       │   │   │   ├── constraints/
│       │   │   │   │   └── violating.antlrtree.txt
│       │   │   │   ├── equalityChecksOnIntegerTypes.antlrtree.txt
│       │   │   │   ├── equalityChecksOnIntegerTypesProgressive.antlrtree.txt
│       │   │   │   ├── errorOnStubReceiver.antlrtree.txt
│       │   │   │   ├── incompleteCallInReturnArgumentsWithProperExpectType.antlrtree.txt
│       │   │   │   ├── invalidateKeys.antlrtree.txt
│       │   │   │   ├── kt47744.antlrtree.txt
│       │   │   │   ├── kt47986Default.antlrtree.txt
│       │   │   │   ├── kt47986Disabled.antlrtree.txt
│       │   │   │   ├── kt47986Enabled.antlrtree.txt
│       │   │   │   ├── kt47986_2.antlrtree.txt
│       │   │   │   ├── kt47986_3.antlrtree.txt
│       │   │   │   ├── kt47986_4.antlrtree.txt
│       │   │   │   ├── kt48031.antlrtree.txt
│       │   │   │   ├── kt49285.antlrtree.txt
│       │   │   │   ├── kt49828.antlrtree.txt
│       │   │   │   ├── kt49829.antlrtree.txt
│       │   │   │   ├── kt50498.antlrtree.txt
│       │   │   │   ├── kt50989.antlrtree.txt
│       │   │   │   ├── kt51148.antlrtree.txt
│       │   │   │   ├── kt51464.antlrtree.txt
│       │   │   │   ├── kt53422.antlrtree.txt
│       │   │   │   ├── kt53639.antlrtree.txt
│       │   │   │   ├── labaledCall.main.antlrtree.txt
│       │   │   │   ├── multiLambdaRestriction.antlrtree.txt
│       │   │   │   ├── multiLambdaRestrictionDisabled.antlrtree.txt
│       │   │   │   ├── noBuilderInferenceRestrictionReceiverInconsistency.antlrtree.txt
│       │   │   │   ├── propertySubstitution.antlrtree.txt
│       │   │   │   ├── simpleLambdaInCallWithAnotherLambdaWithBuilderInference.antlrtree.txt
│       │   │   │   ├── skipedUnresolvedInBuilderInferenceWithStubReceiverType.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferences.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesDontCareTypeInBlockExression.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesDontRewriteAtSlice.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesErrorType.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesErrorTypeUnrestricted.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesNonStrictOnlyInputTypes.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesUnrestricted.antlrtree.txt
│       │   │   │   ├── specialCallsWithLambdas.antlrtree.txt
│       │   │   │   ├── stubTypes/
│       │   │   │   │   ├── capturedTypes.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperType.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeContravariant.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeCovariant.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeInvariant.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeNullable.main.antlrtree.txt
│       │   │   │   │   ├── intersect.main.antlrtree.txt
│       │   │   │   │   ├── memberScope.main.antlrtree.txt
│       │   │   │   │   ├── nullability.main.antlrtree.txt
│       │   │   │   │   ├── renderingStubTypes.antlrtree.txt
│       │   │   │   │   ├── stubTypeReceiverRestriction.antlrtree.txt
│       │   │   │   │   └── stubTypeReceiverRestrictionDisabled.antlrtree.txt
│       │   │   │   └── withoutAnnotationDisabledFeature.antlrtree.txt
│       │   │   ├── callableReferences/
│       │   │   │   ├── conversionLastStatementInLambda.antlrtree.txt
│       │   │   │   ├── kt55931.antlrtree.txt
│       │   │   │   └── kt56227.antlrtree.txt
│       │   │   ├── cannotCompleteResolveAmbiguity.antlrtree.txt
│       │   │   ├── cannotCompleteResolveFunctionLiteralsNoUse.antlrtree.txt
│       │   │   ├── cannotCompleteResolveNoInfoForParameter.antlrtree.txt
│       │   │   ├── cannotCompleteResolveNoneApplicable.antlrtree.txt
│       │   │   ├── cannotCompleteResolveWithFunctionLiterals.antlrtree.txt
│       │   │   ├── capturedInProjectedFlexibleType.main.antlrtree.txt
│       │   │   ├── capturedTypes/
│       │   │   │   ├── approximateBeforeFixation.antlrtree.txt
│       │   │   │   ├── approximateContravariantCapturedTypes.antlrtree.txt
│       │   │   │   ├── approximationLeavesNonTrivialLowerBound.antlrtree.txt
│       │   │   │   ├── avoidCreatingUselessCapturedTypes.antlrtree.txt
│       │   │   │   ├── cannotCaptureInProjection.antlrtree.txt
│       │   │   │   ├── captureForNullableTypes.antlrtree.txt
│       │   │   │   ├── captureForPlatformTypes.b.antlrtree.txt
│       │   │   │   ├── captureFromNullableTypeInScope.antlrtree.txt
│       │   │   │   ├── captureFromNullableTypeInScopeAny.antlrtree.txt
│       │   │   │   ├── captureFromNullableTypeVariable.antlrtree.txt
│       │   │   │   ├── captureFromSubtyping.antlrtree.txt
│       │   │   │   ├── captureFromTypeParameterUpperBound.antlrtree.txt
│       │   │   │   ├── captureTypeOnlyOnTopLevel.antlrtree.txt
│       │   │   │   ├── capturedFlexibleIntersectionTypesWithDifferentBounds.main.antlrtree.txt
│       │   │   │   ├── capturedFlexibleIntersectionTypesWithDifferentConstructors.main.antlrtree.txt
│       │   │   │   ├── capturedType.antlrtree.txt
│       │   │   │   ├── capturedTypeAndApproximation.antlrtree.txt
│       │   │   │   ├── capturedTypeSubstitutedIntoOppositeProjection.antlrtree.txt
│       │   │   │   ├── capturedTypeWithInnerTypealias.antlrtree.txt
│       │   │   │   ├── capturedTypeWithTypeVariableSubtyping.antlrtree.txt
│       │   │   │   ├── capturedTypesSubstitutionIntoAbbreviation.antlrtree.txt
│       │   │   │   ├── capturingFromArgumentOfFlexibleType.main.antlrtree.txt
│       │   │   │   ├── differentCapturedTypes.antlrtree.txt
│       │   │   │   ├── dontCheckNewCapturedTypeSpecificChecksForOldOnes.antlrtree.txt
│       │   │   │   ├── expectedTypeMismatchWithInVariance.antlrtree.txt
│       │   │   │   ├── invokeCallWithCapturedReceiver.antlrtree.txt
│       │   │   │   ├── kt25302.antlrtree.txt
│       │   │   │   ├── kt2570.antlrtree.txt
│       │   │   │   ├── kt2872.antlrtree.txt
│       │   │   │   ├── kt46727.main.antlrtree.txt
│       │   │   │   ├── kt46727Warnings.main.antlrtree.txt
│       │   │   │   ├── kt49101.antlrtree.txt
│       │   │   │   ├── kt52782.main.antlrtree.txt
│       │   │   │   ├── memberScopeOfCaptured.antlrtree.txt
│       │   │   │   ├── noCaptureTypeErrorForNonTopLevel.antlrtree.txt
│       │   │   │   ├── notApproximateWhenCopyDescriptors.antlrtree.txt
│       │   │   │   ├── nullableCaptruredTypeAgainstNullableVariable.main.antlrtree.txt
│       │   │   │   ├── nullableCaptruredTypeAgainstNullableVariableWithDisabledComplatibilityFlag.main.antlrtree.txt
│       │   │   │   ├── overApproximationForInCaptured.antlrtree.txt
│       │   │   │   ├── overApproximationForOutCaptured.antlrtree.txt
│       │   │   │   ├── propagateNullailityOnSupertypesWhenCaptureTypes.antlrtree.txt
│       │   │   │   ├── starProjectionRegression.antlrtree.txt
│       │   │   │   ├── substituteCapturedTypesWithTypeVariables.antlrtree.txt
│       │   │   │   └── topLevelCapturingInsideReturnType.antlrtree.txt
│       │   │   ├── capturedTypesInSelfType.antlrtree.txt
│       │   │   ├── coerceFunctionLiteralToSuspend.antlrtree.txt
│       │   │   ├── coercionToUnit/
│       │   │   │   ├── afterBareReturn.antlrtree.txt
│       │   │   │   ├── coercionToUnitForIfAsLastExpressionInLambda.antlrtree.txt
│       │   │   │   ├── coercionToUnitForLastLambdaInLambda.antlrtree.txt
│       │   │   │   ├── coercionToUnitReference.antlrtree.txt
│       │   │   │   ├── coercionToUnitWithNothingType.test.antlrtree.txt
│       │   │   │   ├── coercionWithExpectedType.antlrtree.txt
│       │   │   │   ├── coercionWithExpectedTypeAndBound.antlrtree.txt
│       │   │   │   ├── coercionWithExplicitTypeArgument.antlrtree.txt
│       │   │   │   ├── coercionWithoutExpectedType.antlrtree.txt
│       │   │   │   ├── coerctionToUnitForATypeWithUpperBound.antlrtree.txt
│       │   │   │   ├── coersionWithAnonymousFunctionsAndUnresolved.antlrtree.txt
│       │   │   │   ├── indirectCoercionWithExpectedType.antlrtree.txt
│       │   │   │   ├── kt30242.antlrtree.txt
│       │   │   │   ├── lambdaWithNullableUnitInElvis.antlrtree.txt
│       │   │   │   ├── nestedLambda.antlrtree.txt
│       │   │   │   ├── noCoercion.antlrtree.txt
│       │   │   │   └── nonPropagationOfCoercionToUnitInsideNestedLambda.antlrtree.txt
│       │   │   ├── commonSuperTypeOfErrorTypes.antlrtree.txt
│       │   │   ├── commonSuperTypeOfTypesWithErrorSupertypes.antlrtree.txt
│       │   │   ├── commonSystem/
│       │   │   │   ├── boundOnNullableVariable.antlrtree.txt
│       │   │   │   ├── castToSubtype.antlrtree.txt
│       │   │   │   ├── cstFromNullableChildAndNonParameterizedType.antlrtree.txt
│       │   │   │   ├── cstWithTypeContainingNonFixedVariable.antlrtree.txt
│       │   │   │   ├── dontCaptureTypeVariable.antlrtree.txt
│       │   │   │   ├── exactOnElvis.antlrtree.txt
│       │   │   │   ├── fixVariablesInRightOrder.antlrtree.txt
│       │   │   │   ├── genericCandidateInGenericClass.antlrtree.txt
│       │   │   │   ├── iltInsideSeveralCalls.antlrtree.txt
│       │   │   │   ├── inferenceWithUpperBoundsInLambda.antlrtree.txt
│       │   │   │   ├── kt30300.antlrtree.txt
│       │   │   │   ├── kt31969.antlrtree.txt
│       │   │   │   ├── kt32818.antlrtree.txt
│       │   │   │   ├── kt33197.antlrtree.txt
│       │   │   │   ├── kt3372toCollection.antlrtree.txt
│       │   │   │   ├── lessSpecificTypeForArgumentCallWithExactAnnotation.antlrtree.txt
│       │   │   │   ├── lessSpecificTypeForArgumentCallWithExactAnnotation_ni.antlrtree.txt
│       │   │   │   ├── manyArgumentsForVararg.antlrtree.txt
│       │   │   │   ├── nestedLambdas.antlrtree.txt
│       │   │   │   ├── nonFixedVariableFromBothBranches.test.antlrtree.txt
│       │   │   │   ├── nonFixedVariableInsideFlexibleType.test.antlrtree.txt
│       │   │   │   ├── outProjectedTypeToOutProjected.antlrtree.txt
│       │   │   │   ├── postponedCompletionWithExactAnnotation.antlrtree.txt
│       │   │   │   ├── postponedCompletionWithExactAnnotation_ni.antlrtree.txt
│       │   │   │   ├── selectFromTwoIncompatibleTypes.antlrtree.txt
│       │   │   │   ├── selectIntegerValueTypeFromIf.antlrtree.txt
│       │   │   │   └── theSameFunctionInArgs.antlrtree.txt
│       │   │   ├── completeInferenceIfManyFailed.antlrtree.txt
│       │   │   ├── completion/
│       │   │   │   ├── anonymousFunction.antlrtree.txt
│       │   │   │   ├── basic.antlrtree.txt
│       │   │   │   ├── definitelyNotNullType.antlrtree.txt
│       │   │   │   ├── equalityConstraintUpstairs.antlrtree.txt
│       │   │   │   ├── errorAfterCompletion.antlrtree.txt
│       │   │   │   ├── flexibleType.Test.antlrtree.txt
│       │   │   │   ├── inferLabeledElementTypeForLambdaInReturnInCatch.antlrtree.txt
│       │   │   │   ├── intersectionType.antlrtree.txt
│       │   │   │   ├── kt33166.test.antlrtree.txt
│       │   │   │   ├── kt36233.antlrtree.txt
│       │   │   │   ├── lambdaWithVariableAndNothing.antlrtree.txt
│       │   │   │   ├── nestedVariance.antlrtree.txt
│       │   │   │   ├── nothingFromNestedCall.antlrtree.txt
│       │   │   │   ├── partialForIlt.antlrtree.txt
│       │   │   │   ├── partialForIltWithNothing.antlrtree.txt
│       │   │   │   ├── postponedArgumentsAnalysis/
│       │   │   │   │   ├── basic.antlrtree.txt
│       │   │   │   │   ├── callableReferenceLambdaCombinationInsideCall.antlrtree.txt
│       │   │   │   │   ├── callableReferences.antlrtree.txt
│       │   │   │   │   ├── fixingVariableDuringAddingConstraintForFirstPosponedArgument.antlrtree.txt
│       │   │   │   │   ├── lackOfDeepIncorporation.antlrtree.txt
│       │   │   │   │   ├── lambdasInTryCatch.antlrtree.txt
│       │   │   │   │   ├── notInferableParameterOfAnonymousFunction.antlrtree.txt
│       │   │   │   │   ├── takingExtensibilityFromDeclarationOfAnonymousFunction.antlrtree.txt
│       │   │   │   │   ├── wrongVariableFixationOrder.antlrtree.txt
│       │   │   │   │   └── wrongVariableFixationOrder2.antlrtree.txt
│       │   │   │   ├── transitiveConstraint.antlrtree.txt
│       │   │   │   └── withExact.antlrtree.txt
│       │   │   ├── completionOfMultipleLambdas.antlrtree.txt
│       │   │   ├── conflictingSubstitutions.antlrtree.txt
│       │   │   ├── constraints/
│       │   │   │   ├── approximationWithDefNotNullInInvPositionDuringInference.antlrtree.txt
│       │   │   │   ├── complexDependencyWihtoutProperConstraints.antlrtree.txt
│       │   │   │   ├── constraintFromVariantTypeWithNestedProjection.antlrtree.txt
│       │   │   │   ├── constraintOnFunctionLiteral.antlrtree.txt
│       │   │   │   ├── definitelyNotNullTypeInArguments.antlrtree.txt
│       │   │   │   ├── definitelyNotNullTypeInReturnPosition.antlrtree.txt
│       │   │   │   ├── definitelyNotNullTypeInvariantPosition.antlrtree.txt
│       │   │   │   ├── earlyCompletionForCalls.antlrtree.txt
│       │   │   │   ├── equalityConstraintOnNullableType.antlrtree.txt
│       │   │   │   ├── errorUpperBoundConstraint.test.antlrtree.txt
│       │   │   │   ├── fixTypeVariableWithNothingConstraintEarlierThanComplexVariable.antlrtree.txt
│       │   │   │   ├── ignoreConstraintFromImplicitInNothing.antlrtree.txt
│       │   │   │   ├── inferTypeFromCapturedStarProjection.antlrtree.txt
│       │   │   │   ├── kt6320.antlrtree.txt
│       │   │   │   ├── kt7351ConstraintFromUnitExpectedType.antlrtree.txt
│       │   │   │   ├── kt7433.antlrtree.txt
│       │   │   │   ├── kt8879.antlrtree.txt
│       │   │   │   ├── manyConstraintsDueToFlexibleRawTypes.test.antlrtree.txt
│       │   │   │   ├── manyConstraintsDueToRecursiveFlexibleTypesWithWildcards.test.antlrtree.txt
│       │   │   │   ├── notNullConstraintOnNullableType.antlrtree.txt
│       │   │   │   ├── operationsOnIntegerValueTypes.antlrtree.txt
│       │   │   │   ├── recursiveJavaTypeWithStarProjection.test.antlrtree.txt
│       │   │   │   ├── remainConstraintContainingTypeWithoutProjection.main.antlrtree.txt
│       │   │   │   ├── returnLambdaFromLambda.antlrtree.txt
│       │   │   │   ├── subtypeConstraintOnNullableType.antlrtree.txt
│       │   │   │   ├── supertypeConstraintOnNullableType.antlrtree.txt
│       │   │   │   └── wrongApproximationWithDefNotNullTypesAndDelegates.antlrtree.txt
│       │   │   ├── cstFromErrorAndNonErrorTypes.antlrtree.txt
│       │   │   ├── dependOnExpectedType.antlrtree.txt
│       │   │   ├── dependantOnVariance.antlrtree.txt
│       │   │   ├── dependantOnVarianceNullable.antlrtree.txt
│       │   │   ├── discardInapplicableCandidateWithNotSatisfyingSelfType.antlrtree.txt
│       │   │   ├── dontThrowEmptyIntersectionException.main.antlrtree.txt
│       │   │   ├── elvisInsideWhen.antlrtree.txt
│       │   │   ├── emptyIntersectionTypes/
│       │   │   │   ├── compatibilityResolveWhenVariableHasComplexIntersectionType.antlrtree.txt
│       │   │   │   ├── contravariance.antlrtree.txt
│       │   │   │   ├── covariance.antlrtree.txt
│       │   │   │   ├── emptyIntersectionOnIf.antlrtree.txt
│       │   │   │   ├── kt45461.antlrtree.txt
│       │   │   │   ├── kt45461_10.antlrtree.txt
│       │   │   │   ├── kt45461_11.antlrtree.txt
│       │   │   │   ├── kt45461_12.antlrtree.txt
│       │   │   │   ├── kt45461_13.antlrtree.txt
│       │   │   │   ├── kt45461_14.antlrtree.txt
│       │   │   │   ├── kt45461_15.antlrtree.txt
│       │   │   │   ├── kt45461_16.antlrtree.txt
│       │   │   │   ├── kt45461_17.antlrtree.txt
│       │   │   │   ├── kt45461_18.antlrtree.txt
│       │   │   │   ├── kt45461_19.antlrtree.txt
│       │   │   │   ├── kt45461_2.antlrtree.txt
│       │   │   │   ├── kt45461_20.antlrtree.txt
│       │   │   │   ├── kt45461_21.antlrtree.txt
│       │   │   │   ├── kt45461_22.antlrtree.txt
│       │   │   │   ├── kt45461_23.antlrtree.txt
│       │   │   │   ├── kt45461_24.antlrtree.txt
│       │   │   │   ├── kt45461_25.antlrtree.txt
│       │   │   │   ├── kt45461_26.antlrtree.txt
│       │   │   │   ├── kt45461_27.antlrtree.txt
│       │   │   │   ├── kt45461_28.antlrtree.txt
│       │   │   │   ├── kt45461_29.antlrtree.txt
│       │   │   │   ├── kt45461_3.antlrtree.txt
│       │   │   │   ├── kt45461_30.antlrtree.txt
│       │   │   │   ├── kt45461_31.antlrtree.txt
│       │   │   │   ├── kt45461_32.antlrtree.txt
│       │   │   │   ├── kt45461_33.antlrtree.txt
│       │   │   │   ├── kt45461_34.antlrtree.txt
│       │   │   │   ├── kt45461_35.antlrtree.txt
│       │   │   │   ├── kt45461_35_Enabled.antlrtree.txt
│       │   │   │   ├── kt45461_4.antlrtree.txt
│       │   │   │   ├── kt45461_5.antlrtree.txt
│       │   │   │   ├── kt45461_6.antlrtree.txt
│       │   │   │   ├── kt45461_7.antlrtree.txt
│       │   │   │   ├── kt45461_8.antlrtree.txt
│       │   │   │   ├── kt45461_9.antlrtree.txt
│       │   │   │   ├── kt48765.antlrtree.txt
│       │   │   │   ├── kt48935.antlrtree.txt
│       │   │   │   ├── kt48935_2.antlrtree.txt
│       │   │   │   ├── kt48935_3.antlrtree.txt
│       │   │   │   ├── kt48935_4.antlrtree.txt
│       │   │   │   ├── kt48935_5.antlrtree.txt
│       │   │   │   ├── kt48935_6.antlrtree.txt
│       │   │   │   ├── kt48987.antlrtree.txt
│       │   │   │   ├── kt49661.antlrtree.txt
│       │   │   │   ├── kt51016.antlrtree.txt
│       │   │   │   ├── kt52364.antlrtree.txt
│       │   │   │   ├── kt52393.antlrtree.txt
│       │   │   │   ├── kt52431.antlrtree.txt
│       │   │   │   ├── kt54411.antlrtree.txt
│       │   │   │   ├── nullableEmptyIntersection.antlrtree.txt
│       │   │   │   ├── recursiveTypeParameters.antlrtree.txt
│       │   │   │   ├── selectFromCovariantAndContravariantTypes.antlrtree.txt
│       │   │   │   ├── substitutingSuperTypes.antlrtree.txt
│       │   │   │   └── substitutingSuperTypes2.antlrtree.txt
│       │   │   ├── equalitySubstitutionInsideNonInvariantType.antlrtree.txt
│       │   │   ├── errorsOnImplicitInvokeInSimpleCall.antlrtree.txt
│       │   │   ├── exclExclInference.antlrtree.txt
│       │   │   ├── expectedTypeAdditionalTest.antlrtree.txt
│       │   │   ├── expectedTypeDoubleReceiver.antlrtree.txt
│       │   │   ├── expectedTypeFromCast.antlrtree.txt
│       │   │   ├── expectedTypeFromCastComplexExpression.antlrtree.txt
│       │   │   ├── expectedTypeFromCastParenthesized.antlrtree.txt
│       │   │   ├── expectedTypeWithGenerics.antlrtree.txt
│       │   │   ├── expectedTypeWithGenericsSafeCalls.antlrtree.txt
│       │   │   ├── extensionLambdasAndArrow.antlrtree.txt
│       │   │   ├── findViewById.1.antlrtree.txt
│       │   │   ├── fixVariableToNothing.antlrtree.txt
│       │   │   ├── fixationOrderForProperConstraints.antlrtree.txt
│       │   │   ├── flexibleTypesAsUpperBound.1.antlrtree.txt
│       │   │   ├── forks/
│       │   │   │   ├── nestedCallVariableFixation.main.antlrtree.txt
│       │   │   │   ├── nestedCallVariableFixationSimple.antlrtree.txt
│       │   │   │   └── overloadResolutionByLambdaReturnTypeAndExpectedType.antlrtree.txt
│       │   │   ├── functionPlaceholderError.antlrtree.txt
│       │   │   ├── genericAssignmentOperator.antlrtree.txt
│       │   │   ├── genericCallInThrow.antlrtree.txt
│       │   │   ├── hasErrorInConstrainingTypes.antlrtree.txt
│       │   │   ├── ifWithDependentBranches.antlrtree.txt
│       │   │   ├── illegalUnderscoredTypeArgument.antlrtree.txt
│       │   │   ├── immutableArrayList.k.antlrtree.txt
│       │   │   ├── implicitInvokeExtensionWithFunctionalArgument.antlrtree.txt
│       │   │   ├── implicitInvokeInCompanionObjectWithFunctionalArgument.antlrtree.txt
│       │   │   ├── implicitInvokeInObjectWithFunctionalArgument.antlrtree.txt
│       │   │   ├── implicitInvokeWithFunctionLiteralArgument.antlrtree.txt
│       │   │   ├── inferInFunctionLiterals.antlrtree.txt
│       │   │   ├── inferInFunctionLiteralsWithReturn.antlrtree.txt
│       │   │   ├── inferenceForkRegression.antlrtree.txt
│       │   │   ├── inferenceForkRegressionSimple.antlrtree.txt
│       │   │   ├── intersectionTypeMultipleBoundsAsReceiver.antlrtree.txt
│       │   │   ├── intersectionTypesWithContravariantTypes.antlrtree.txt
│       │   │   ├── intersectionWithEnum.antlrtree.txt
│       │   │   ├── invokeLambdaAsFunction.antlrtree.txt
│       │   │   ├── knownTypeParameters.antlrtree.txt
│       │   │   ├── kt11963.antlrtree.txt
│       │   │   ├── kt12399.antlrtree.txt
│       │   │   ├── kt1293.antlrtree.txt
│       │   │   ├── kt28598.antlrtree.txt
│       │   │   ├── kt28654.antlrtree.txt
│       │   │   ├── kt30405.antlrtree.txt
│       │   │   ├── kt3184.antlrtree.txt
│       │   │   ├── kt32196.antlrtree.txt
│       │   │   ├── kt32415.antlrtree.txt
│       │   │   ├── kt32434.main.antlrtree.txt
│       │   │   ├── kt32462.antlrtree.txt
│       │   │   ├── kt33263.antlrtree.txt
│       │   │   ├── kt35702.antlrtree.txt
│       │   │   ├── kt36044.antlrtree.txt
│       │   │   ├── kt36819.antlrtree.txt
│       │   │   ├── kt37853.antlrtree.txt
│       │   │   ├── kt39220.antlrtree.txt
│       │   │   ├── kt40396.antlrtree.txt
│       │   │   ├── kt46515.antlrtree.txt
│       │   │   ├── kt47316.main.antlrtree.txt
│       │   │   ├── kt49658.antlrtree.txt
│       │   │   ├── kt49658Strict.antlrtree.txt
│       │   │   ├── kt49961.antlrtree.txt
│       │   │   ├── kt50232a.antlrtree.txt
│       │   │   ├── kt53124.exp_main.antlrtree.txt
│       │   │   ├── kt6175.antlrtree.txt
│       │   │   ├── kt619.antlrtree.txt
│       │   │   ├── lambdaArgumentWithLabel.antlrtree.txt
│       │   │   ├── lambdaInValInitializerWithAnonymousFunctions.antlrtree.txt
│       │   │   ├── lambdaParameterTypeInElvis.antlrtree.txt
│       │   │   ├── listConstructor.antlrtree.txt
│       │   │   ├── localFunctionInsideIfBlock.antlrtree.txt
│       │   │   ├── mapFunction.antlrtree.txt
│       │   │   ├── mostSpecificAfterInference.antlrtree.txt
│       │   │   ├── nestedCalls/
│       │   │   │   ├── arrayAccess.antlrtree.txt
│       │   │   │   ├── binaryExpressions.antlrtree.txt
│       │   │   │   ├── checkTypesForQualifiedProperties.antlrtree.txt
│       │   │   │   ├── completeNestedCallsForArraySetExpression.antlrtree.txt
│       │   │   │   ├── completeNestedCallsInference.antlrtree.txt
│       │   │   │   ├── completeNestedForVariableAsFunctionCall.antlrtree.txt
│       │   │   │   ├── externalTypeParameter.antlrtree.txt
│       │   │   │   ├── inferenceForNestedBinaryCall.antlrtree.txt
│       │   │   │   ├── kt3395.antlrtree.txt
│       │   │   │   ├── kt3461checkTypes.antlrtree.txt
│       │   │   │   ├── makeNullableIfSafeCall.antlrtree.txt
│       │   │   │   ├── nontrivialCallExpression.antlrtree.txt
│       │   │   │   ├── preferArgumentToNullability.antlrtree.txt
│       │   │   │   └── preferNothingToBound.antlrtree.txt
│       │   │   ├── noInformationForParameter.antlrtree.txt
│       │   │   ├── nonFunctionalExpectedTypeForLambdaArgument.antlrtree.txt
│       │   │   ├── nothingType/
│       │   │   │   ├── complexDependancyOnVariableWithTrivialConstraint.antlrtree.txt
│       │   │   │   ├── discriminateNothingForReifiedParameter.antlrtree.txt
│       │   │   │   ├── discriminatedNothingAndSmartCast.antlrtree.txt
│       │   │   │   ├── discriminatedNothingInsideComplexNestedCall.antlrtree.txt
│       │   │   │   ├── generateConstraintWithInnerNothingType.antlrtree.txt
│       │   │   │   ├── genericOverride.antlrtree.txt
│       │   │   │   ├── implicitInferenceTToFlexibleNothing.antlrtree.txt
│       │   │   │   ├── implicitNothingConstraintFromReturn.antlrtree.txt
│       │   │   │   ├── inferArgumentToNothingFromNullConstant.antlrtree.txt
│       │   │   │   ├── inferenceWithRecursiveGenericsAndNothing.antlrtree.txt
│       │   │   │   ├── kt24490.antlrtree.txt
│       │   │   │   ├── kt32051.antlrtree.txt
│       │   │   │   ├── kt32081.antlrtree.txt
│       │   │   │   ├── kt32207.antlrtree.txt
│       │   │   │   ├── kt32388.antlrtree.txt
│       │   │   │   ├── kt34335.antlrtree.txt
│       │   │   │   ├── kt56448.main.antlrtree.txt
│       │   │   │   ├── lambdaNothingAndExpectedType.antlrtree.txt
│       │   │   │   ├── nestedLambdaInferenceWithIncorporationOfVariables.antlrtree.txt
│       │   │   │   ├── notEnoughInformationAndNothing.antlrtree.txt
│       │   │   │   ├── notEnoughInformationFromNullabilityConstraint.antlrtree.txt
│       │   │   │   ├── nothingWithCallableReference.antlrtree.txt
│       │   │   │   ├── nullableExpectedTypeFromVariable.antlrtree.txt
│       │   │   │   ├── platformNothingAsUsefulConstraint.test.antlrtree.txt
│       │   │   │   ├── reifiedParameterWithRecursiveBound.antlrtree.txt
│       │   │   │   ├── reportImplicitNothingOnlyForOwnTypeParameters.antlrtree.txt
│       │   │   │   ├── returnAsLastStatementInLambda.antlrtree.txt
│       │   │   │   ├── selectWithNull.antlrtree.txt
│       │   │   │   └── specialCallWithMaterializeAndExpectedType.antlrtree.txt
│       │   │   ├── nothingVsParameterBound.antlrtree.txt
│       │   │   ├── nullableArgumentForDnn.antlrtree.txt
│       │   │   ├── nullableTypeArgumentWithNotNullUpperBound.antlrtree.txt
│       │   │   ├── nullableUpperBound.antlrtree.txt
│       │   │   ├── onlyInputTypesWithMultilevelIncorporation.antlrtree.txt
│       │   │   ├── opposite.antlrtree.txt
│       │   │   ├── possibleCycleOnConstraints.antlrtree.txt
│       │   │   ├── publicApproximation/
│       │   │   │   ├── approximatedIntersectionMorePreciseThanBound.antlrtree.txt
│       │   │   │   ├── chainedLambdas.antlrtree.txt
│       │   │   │   ├── declarationTypes.antlrtree.txt
│       │   │   │   ├── intersectionAfterSmartCastInLambdaReturn.antlrtree.txt
│       │   │   │   ├── intersectionAlternative.antlrtree.txt
│       │   │   │   ├── intersectionLocations.antlrtree.txt
│       │   │   │   ├── lambdaReturnArgumentCall.antlrtree.txt
│       │   │   │   ├── lambdaReturnTypeApproximation.antlrtree.txt
│       │   │   │   ├── nonTrivialVariance.antlrtree.txt
│       │   │   │   ├── parameterInBound.antlrtree.txt
│       │   │   │   ├── projections.antlrtree.txt
│       │   │   │   ├── smartCastInLambdaReturnAfterIntersection.antlrtree.txt
│       │   │   │   └── twoIntersections.antlrtree.txt
│       │   │   ├── receiverTypeMismatch_withProper.Main.antlrtree.txt
│       │   │   ├── receiverTypeMismatch_withoutProper.Main.antlrtree.txt
│       │   │   ├── recursiveCalls/
│       │   │   │   ├── kt23531.antlrtree.txt
│       │   │   │   └── kt23531.reversed.antlrtree.txt
│       │   │   ├── recursiveLocalFuns/
│       │   │   │   ├── localFactorial.antlrtree.txt
│       │   │   │   ├── recursiveFun.antlrtree.txt
│       │   │   │   ├── recursiveLambda.antlrtree.txt
│       │   │   │   └── selfCall.antlrtree.txt
│       │   │   ├── recursiveTypes/
│       │   │   │   ├── multirecursion.antlrtree.txt
│       │   │   │   ├── recursiveInIn.antlrtree.txt
│       │   │   │   ├── recursiveInInv.antlrtree.txt
│       │   │   │   ├── recursiveInOut.antlrtree.txt
│       │   │   │   ├── recursiveInvIn.antlrtree.txt
│       │   │   │   ├── recursiveInvOut.antlrtree.txt
│       │   │   │   ├── recursiveOutIn.antlrtree.txt
│       │   │   │   ├── recursiveOutInv.antlrtree.txt
│       │   │   │   ├── recursiveOutOut.antlrtree.txt
│       │   │   │   ├── recursiveTypeWithNonStarResult.antlrtree.txt
│       │   │   │   ├── recursiveTypes.antlrtree.txt
│       │   │   │   ├── selfTypes/
│       │   │   │   │   ├── disabledInferenceOnSelfTypes/
│       │   │   │   │   │   ├── basicInferenceForImplicitSelfType.antlrtree.txt
│       │   │   │   │   │   ├── recursiveTypeWithTwoTypeParams.antlrtree.txt
│       │   │   │   │   │   └── writerAppenderExampleRecursive.antlrtree.txt
│       │   │   │   │   └── enabledInferenceOnSelfTypes/
│       │   │   │   │       ├── basicInferenceForImplicitSelfType.main.antlrtree.txt
│       │   │   │   │       ├── recursiveTypeWithTwoTypeParams.main.antlrtree.txt
│       │   │   │   │       └── writerAppenderExampleRecursive.main.antlrtree.txt
│       │   │   │   └── twoTypeConstructors.antlrtree.txt
│       │   │   ├── regressions/
│       │   │   │   ├── compareBy.antlrtree.txt
│       │   │   │   ├── kt1029.antlrtree.txt
│       │   │   │   ├── kt1031.antlrtree.txt
│       │   │   │   ├── kt1127.antlrtree.txt
│       │   │   │   ├── kt1145.antlrtree.txt
│       │   │   │   ├── kt1358.antlrtree.txt
│       │   │   │   ├── kt1410.antlrtree.txt
│       │   │   │   ├── kt1718.antlrtree.txt
│       │   │   │   ├── kt1944.antlrtree.txt
│       │   │   │   ├── kt2057.antlrtree.txt
│       │   │   │   ├── kt2179.antlrtree.txt
│       │   │   │   ├── kt2200.antlrtree.txt
│       │   │   │   ├── kt2283.antlrtree.txt
│       │   │   │   ├── kt2286.antlrtree.txt
│       │   │   │   ├── kt2294.antlrtree.txt
│       │   │   │   ├── kt2320.antlrtree.txt
│       │   │   │   ├── kt2324.antlrtree.txt
│       │   │   │   ├── kt2407.antlrtree.txt
│       │   │   │   ├── kt2445.antlrtree.txt
│       │   │   │   ├── kt2459.antlrtree.txt
│       │   │   │   ├── kt2484.antlrtree.txt
│       │   │   │   ├── kt2505.antlrtree.txt
│       │   │   │   ├── kt2514.antlrtree.txt
│       │   │   │   ├── kt2588.antlrtree.txt
│       │   │   │   ├── kt2741.antlrtree.txt
│       │   │   │   ├── kt2754.antlrtree.txt
│       │   │   │   ├── kt2838.antlrtree.txt
│       │   │   │   ├── kt2841.antlrtree.txt
│       │   │   │   ├── kt2841_it.antlrtree.txt
│       │   │   │   ├── kt2841_it_this.antlrtree.txt
│       │   │   │   ├── kt2841_this.antlrtree.txt
│       │   │   │   ├── kt2842.antlrtree.txt
│       │   │   │   ├── kt2883.antlrtree.txt
│       │   │   │   ├── kt3007.antlrtree.txt
│       │   │   │   ├── kt3038.antlrtree.txt
│       │   │   │   ├── kt3150.antlrtree.txt
│       │   │   │   ├── kt3174.antlrtree.txt
│       │   │   │   ├── kt32106.antlrtree.txt
│       │   │   │   ├── kt32250.antlrtree.txt
│       │   │   │   ├── kt32862_both.antlrtree.txt
│       │   │   │   ├── kt32862_none.antlrtree.txt
│       │   │   │   ├── kt3301.antlrtree.txt
│       │   │   │   ├── kt3344.antlrtree.txt
│       │   │   │   ├── kt33629.antlrtree.txt
│       │   │   │   ├── kt34029.antlrtree.txt
│       │   │   │   ├── kt34282.antlrtree.txt
│       │   │   │   ├── kt3496.antlrtree.txt
│       │   │   │   ├── kt3496_2.antlrtree.txt
│       │   │   │   ├── kt3559.antlrtree.txt
│       │   │   │   ├── kt35844.antlrtree.txt
│       │   │   │   ├── kt35943.antlrtree.txt
│       │   │   │   ├── kt36342.antlrtree.txt
│       │   │   │   ├── kt36342_2.antlrtree.txt
│       │   │   │   ├── kt37043.main.antlrtree.txt
│       │   │   │   ├── kt37043_2.antlrtree.txt
│       │   │   │   ├── kt37419.antlrtree.txt
│       │   │   │   ├── kt37650.antlrtree.txt
│       │   │   │   ├── kt38549.antlrtree.txt
│       │   │   │   ├── kt38691.antlrtree.txt
│       │   │   │   ├── kt41386.antlrtree.txt
│       │   │   │   ├── kt41394.antlrtree.txt
│       │   │   │   ├── kt4420.antlrtree.txt
│       │   │   │   ├── kt44440.antlrtree.txt
│       │   │   │   ├── kt47941.antlrtree.txt
│       │   │   │   ├── kt702.antlrtree.txt
│       │   │   │   ├── kt731.antlrtree.txt
│       │   │   │   ├── kt742.antlrtree.txt
│       │   │   │   ├── kt8132.antlrtree.txt
│       │   │   │   ├── kt832.antlrtree.txt
│       │   │   │   ├── kt943.antlrtree.txt
│       │   │   │   ├── kt9461.antlrtree.txt
│       │   │   │   ├── kt948.antlrtree.txt
│       │   │   │   └── noRecursionOnCallingPureKotlinFunctionAsSyntheticJavaAccessor.antlrtree.txt
│       │   │   ├── reportAboutUnresolvedReferenceAsUnresolved.antlrtree.txt
│       │   │   ├── reportNotEnoughTypeInformationErrorsOnBlockExpressions.antlrtree.txt
│       │   │   ├── reportingImprovements/
│       │   │   │   ├── ErrorTypeAsGenericParameter.antlrtree.txt
│       │   │   │   ├── FunctionPlaceholder.antlrtree.txt
│       │   │   │   ├── NoAmbiguityForDifferentFunctionTypes.antlrtree.txt
│       │   │   │   ├── cannotInferParameterTypeWithInference.antlrtree.txt
│       │   │   │   ├── inferTypeFromUnresolvedArgument.antlrtree.txt
│       │   │   │   ├── kt42620.antlrtree.txt
│       │   │   │   ├── reportUnresolvedReferenceWrongReceiverForManyCandidates.antlrtree.txt
│       │   │   │   ├── subtypeForInvariantWithErrorGenerics.antlrtree.txt
│       │   │   │   ├── typeInferenceFailedOnComponentN.antlrtree.txt
│       │   │   │   ├── typeInferenceFailedOnIteratorCall.antlrtree.txt
│       │   │   │   ├── wrongArgumentExtensionFunction.antlrtree.txt
│       │   │   │   └── wrongArgumentPassedToLocalExtensionFunction.antlrtree.txt
│       │   │   ├── resolveWithUnknownLambdaParameterType.antlrtree.txt
│       │   │   ├── returningLambdaInSuspendContext.antlrtree.txt
│       │   │   ├── selectOfLambdaWithExtension.antlrtree.txt
│       │   │   ├── selectOfLambdaWithExtensionDisabled.antlrtree.txt
│       │   │   ├── selectOfLambdaWithExtensionEnabled.antlrtree.txt
│       │   │   ├── smartCastFork.antlrtree.txt
│       │   │   ├── smartCastForkForExpectType.antlrtree.txt
│       │   │   ├── smartCastForkForExpectedTypeNested.antlrtree.txt
│       │   │   ├── specialCallsWithCallableReferences.antlrtree.txt
│       │   │   ├── specialCallsWithLambdas.antlrtree.txt
│       │   │   ├── starApproximation.antlrtree.txt
│       │   │   ├── starApproximationBangBang.antlrtree.txt
│       │   │   ├── starApproximationFlexible.main.antlrtree.txt
│       │   │   ├── starApproximationFromDifferentTypeParameter.antlrtree.txt
│       │   │   ├── stubTypeForSubtyping.antlrtree.txt
│       │   │   ├── substitutions/
│       │   │   │   ├── delegationAndInference.antlrtree.txt
│       │   │   │   ├── hideFlexibleLocalTypeInPublicPosition.main.antlrtree.txt
│       │   │   │   ├── hideFlexibleLocalTypeInPublicPosition_before.main.antlrtree.txt
│       │   │   │   ├── hideLocalTypeForReturnTypeOfSingleExpressionFunction.antlrtree.txt
│       │   │   │   ├── hideNullableLocalTypeInPublicPosition.antlrtree.txt
│       │   │   │   ├── hideNullableLocalTypeInPublicPosition_before.antlrtree.txt
│       │   │   │   ├── kt32189returnTypeWithTypealiasSubtitution.antlrtree.txt
│       │   │   │   ├── kt6081SubstituteIntoClassCorrectly.antlrtree.txt
│       │   │   │   ├── simpleSubstitutionCheckTypeArgumentsNotTypeParameters.antlrtree.txt
│       │   │   │   ├── substitutionIntoAnonymousClass.antlrtree.txt
│       │   │   │   ├── substitutionIntoInnerClass.antlrtree.txt
│       │   │   │   └── substitutionOfTypeEnhancement.main.antlrtree.txt
│       │   │   ├── tooEagerSmartcast.antlrtree.txt
│       │   │   ├── topLevelIntersection.antlrtree.txt
│       │   │   ├── tryNumberLowerBoundsBeforeUpperBounds.antlrtree.txt
│       │   │   ├── typeConstructorMismatch.antlrtree.txt
│       │   │   ├── typeInferenceExpectedTypeMismatch.antlrtree.txt
│       │   │   ├── typeParameterInConstructor.antlrtree.txt
│       │   │   ├── underscoredTypeArgument.antlrtree.txt
│       │   │   ├── underscoredTypeInForbiddenPositions.antlrtree.txt
│       │   │   ├── unsoundness1.antlrtree.txt
│       │   │   ├── unsoundness2.antlrtree.txt
│       │   │   ├── upperBounds/
│       │   │   │   ├── conflictingSubstitutionsFromUpperBound.antlrtree.txt
│       │   │   │   ├── doNotInferFromBoundsOnly.antlrtree.txt
│       │   │   │   ├── flexibilityInCommonSuperTypeCalculation.main.antlrtree.txt
│       │   │   │   ├── flexibilityInCommonSuperTypeCalculation.ni.main.antlrtree.txt
│       │   │   │   ├── inferringVariableByMaterializeAndUpperBound.antlrtree.txt
│       │   │   │   ├── intersectUpperBounds.antlrtree.txt
│       │   │   │   ├── kt2856.antlrtree.txt
│       │   │   │   ├── nonNullUpperBound.antlrtree.txt
│       │   │   │   ├── typeParameterAsUpperBound.antlrtree.txt
│       │   │   │   ├── useBoundsIfUnknownParameters.antlrtree.txt
│       │   │   │   └── useBoundsToInferTypeParamsSimple.antlrtree.txt
│       │   │   ├── useFunctionLiteralsToInferType.antlrtree.txt
│       │   │   ├── violatingUpperBoundForSelfType.antlrtree.txt
│       │   │   └── violatingUpperBoundForSelfTypeError.antlrtree.txt
│       │   ├── infos/
│       │   │   ├── PropertiesWithBackingFields.antlrtree.txt
│       │   │   └── SmartCasts.antlrtree.txt
│       │   ├── initializedAfterRethrow.antlrtree.txt
│       │   ├── inline/
│       │   │   ├── anonymousObjects.antlrtree.txt
│       │   │   ├── approximateReturnedAnonymousObjects.antlrtree.txt
│       │   │   ├── assignment.antlrtree.txt
│       │   │   ├── binaryExpressions/
│       │   │   │   ├── andOr.antlrtree.txt
│       │   │   │   ├── arrayAccess.antlrtree.txt
│       │   │   │   ├── assignment.antlrtree.txt
│       │   │   │   ├── comparison.antlrtree.txt
│       │   │   │   ├── componentAccess.antlrtree.txt
│       │   │   │   ├── contains.antlrtree.txt
│       │   │   │   ├── mathOperations.antlrtree.txt
│       │   │   │   └── rangeTo.antlrtree.txt
│       │   │   ├── capture.antlrtree.txt
│       │   │   ├── constructor.antlrtree.txt
│       │   │   ├── default.antlrtree.txt
│       │   │   ├── defaultLambdaInlineSuspend.antlrtree.txt
│       │   │   ├── defaultLambdaInlining.antlrtree.txt
│       │   │   ├── extensionOnFunction.antlrtree.txt
│       │   │   ├── forbidExtensionCallsOnInlineFunctionalParameters_after.antlrtree.txt
│       │   │   ├── forbidExtensionCallsOnInlineFunctionalParameters_before.antlrtree.txt
│       │   │   ├── fromInlineToNoInline.antlrtree.txt
│       │   │   ├── functions.antlrtree.txt
│       │   │   ├── inlineLambdaInDefaultInlineParameter.antlrtree.txt
│       │   │   ├── inlineReified.antlrtree.txt
│       │   │   ├── inlinedReturnInBranch.antlrtree.txt
│       │   │   ├── invoke.antlrtree.txt
│       │   │   ├── isCheck.antlrtree.txt
│       │   │   ├── kt15410.antlrtree.txt
│       │   │   ├── kt19679.antlrtree.txt
│       │   │   ├── kt21177.antlrtree.txt
│       │   │   ├── kt21177Warning.antlrtree.txt
│       │   │   ├── kt4869.antlrtree.txt
│       │   │   ├── labeled.antlrtree.txt
│       │   │   ├── lambdaCast.antlrtree.txt
│       │   │   ├── localFun.antlrtree.txt
│       │   │   ├── messagesForUnsupportedInInline.antlrtree.txt
│       │   │   ├── nonLocalReturns/
│       │   │   │   ├── anonymousObjects.antlrtree.txt
│       │   │   │   ├── anonymousObjectsNested.antlrtree.txt
│       │   │   │   ├── explicitReturnType.antlrtree.txt
│       │   │   │   ├── fromOnlyLocal.antlrtree.txt
│       │   │   │   ├── inlineLambda.antlrtree.txt
│       │   │   │   ├── labeledReturn.antlrtree.txt
│       │   │   │   ├── lambdaAsGeneric.antlrtree.txt
│       │   │   │   ├── lambdaAsNonFunction.antlrtree.txt
│       │   │   │   ├── lambdaWithGlobalReturnsInsideOnlyLocalOne.antlrtree.txt
│       │   │   │   ├── localFun.antlrtree.txt
│       │   │   │   ├── nestedNonLocals.antlrtree.txt
│       │   │   │   ├── noInlineAnnotation.antlrtree.txt
│       │   │   │   ├── noInlineLambda.antlrtree.txt
│       │   │   │   ├── nonInlinedClass.antlrtree.txt
│       │   │   │   ├── onlyLocalReturnLambda.antlrtree.txt
│       │   │   │   ├── onlyLocalReturnLambdaBinaryExpr.antlrtree.txt
│       │   │   │   ├── propertyAccessorsAndConstructor.antlrtree.txt
│       │   │   │   └── toOnlyLocal.antlrtree.txt
│       │   │   ├── nonPublicMember/
│       │   │   │   ├── inNonPublicClass.antlrtree.txt
│       │   │   │   ├── inNonPublicInnerClass.antlrtree.txt
│       │   │   │   ├── inPackage.antlrtree.txt
│       │   │   │   ├── inPublicClass.antlrtree.txt
│       │   │   │   ├── kt14887.antlrtree.txt
│       │   │   │   ├── kt55179.antlrtree.txt
│       │   │   │   ├── localClass.antlrtree.txt
│       │   │   │   ├── localClass2.antlrtree.txt
│       │   │   │   ├── localFun.antlrtree.txt
│       │   │   │   ├── protectedInlineInsideInternal.antlrtree.txt
│       │   │   │   └── publishedApi.antlrtree.txt
│       │   │   ├── nonVirtualMembersWithInline.antlrtree.txt
│       │   │   ├── nothingToInline.antlrtree.txt
│       │   │   ├── nullabilityOperations.antlrtree.txt
│       │   │   ├── nullableFunction.antlrtree.txt
│       │   │   ├── overrideWithInline.antlrtree.txt
│       │   │   ├── parenthesized.antlrtree.txt
│       │   │   ├── privateClass.antlrtree.txt
│       │   │   ├── propagation.antlrtree.txt
│       │   │   ├── property/
│       │   │   │   ├── invoke.antlrtree.txt
│       │   │   │   ├── propertyWithBackingField.antlrtree.txt
│       │   │   │   ├── unsupportedConstruction.antlrtree.txt
│       │   │   │   └── virtualProperty.antlrtree.txt
│       │   │   ├── protectedCallDepecation.main.antlrtree.txt
│       │   │   ├── protectedCallError.main.antlrtree.txt
│       │   │   ├── publishedApi.antlrtree.txt
│       │   │   ├── recursion.antlrtree.txt
│       │   │   ├── recursiveTypeInPrivateInlineFunction.antlrtree.txt
│       │   │   ├── regressions/
│       │   │   │   └── kt4341.antlrtree.txt
│       │   │   ├── returnedAnonymousObjects.antlrtree.txt
│       │   │   ├── returnedAnonymousObjects_2.antlrtree.txt
│       │   │   ├── returns.antlrtree.txt
│       │   │   ├── sam.test.antlrtree.txt
│       │   │   ├── stringTemplate.antlrtree.txt
│       │   │   ├── superCall.1.antlrtree.txt
│       │   │   ├── superCall.2.antlrtree.txt
│       │   │   ├── superCallDepecation.main.antlrtree.txt
│       │   │   ├── superCallDepecationWarning.main.antlrtree.txt
│       │   │   ├── superCallFromMultipleSubclasses.1.antlrtree.txt
│       │   │   ├── superCallFromMultipleSubclasses.2.antlrtree.txt
│       │   │   ├── superProperty.1.antlrtree.txt
│       │   │   ├── superProperty.2.antlrtree.txt
│       │   │   ├── unaryExpressions/
│       │   │   │   ├── mathOperation.antlrtree.txt
│       │   │   │   ├── notOnCall.antlrtree.txt
│       │   │   │   └── notOperation.antlrtree.txt
│       │   │   ├── valueClasses.antlrtree.txt
│       │   │   ├── vararg.antlrtree.txt
│       │   │   ├── virtualMemberInEnum.antlrtree.txt
│       │   │   ├── virtualValInEnum.antlrtree.txt
│       │   │   ├── when.antlrtree.txt
│       │   │   └── wrongUsage.antlrtree.txt
│       │   ├── inlineClasses/
│       │   │   ├── basicInlineClassDeclaration.antlrtree.txt
│       │   │   ├── basicInlineClassDeclarationDisabled.antlrtree.txt
│       │   │   ├── changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.antlrtree.txt
│       │   │   ├── constructorsJvmSignaturesClash.antlrtree.txt
│       │   │   ├── delegatedPropertyInInlineClass.antlrtree.txt
│       │   │   ├── functionsJvmSignaturesClash.antlrtree.txt
│       │   │   ├── functionsJvmSignaturesConflictOnInheritance.antlrtree.txt
│       │   │   ├── genericInlineClass.antlrtree.txt
│       │   │   ├── identityComparisonWithInlineClasses.antlrtree.txt
│       │   │   ├── inefficientEqualsOverridingInInlineClass.antlrtree.txt
│       │   │   ├── inlineClassCanImplementInterfaceByDelegation.antlrtree.txt
│       │   │   ├── inlineClassCanOnlyImplementInterfaces.antlrtree.txt
│       │   │   ├── inlineClassCannotImplementInterfaceByDelegation.antlrtree.txt
│       │   │   ├── inlineClassConstructorParameterWithDefaultValue.antlrtree.txt
│       │   │   ├── inlineClassDeclarationCheck.antlrtree.txt
│       │   │   ├── inlineClassDeprecated.antlrtree.txt
│       │   │   ├── inlineClassImplementsCollection.antlrtree.txt
│       │   │   ├── inlineClassWithForbiddenUnderlyingType.antlrtree.txt
│       │   │   ├── inlineClassesInsideAnnotations.antlrtree.txt
│       │   │   ├── innerClassInsideInlineClass.antlrtree.txt
│       │   │   ├── lateinitInlineClassesOff.antlrtree.txt
│       │   │   ├── lateinitInlineClassesOn.antlrtree.txt
│       │   │   ├── presenceOfInitializerBlockInsideInlineClass.antlrtree.txt
│       │   │   ├── presenceOfPublicPrimaryConstructorForInlineClass.antlrtree.txt
│       │   │   ├── propertiesWithBackingFieldsInsideInlineClass.antlrtree.txt
│       │   │   ├── recursiveInlineClasses.antlrtree.txt
│       │   │   ├── reifiedGenericUnderlyingType.antlrtree.txt
│       │   │   ├── reservedConstructorsBodyInKotlinPre19.antlrtree.txt
│       │   │   ├── reservedMembersAndConstructsInsideInlineClass.antlrtree.txt
│       │   │   ├── synchronizedForbidden.antlrtree.txt
│       │   │   ├── typedEqualsOperatorDeclarationCheck.antlrtree.txt
│       │   │   ├── typedEqualsOperatorModifierInInlineClass.antlrtree.txt
│       │   │   ├── unsignedLiteralsWithoutArtifactOnClasspath.antlrtree.txt
│       │   │   └── varargsOnParametersOfInlineClassType.antlrtree.txt
│       │   ├── inlineDeprecationsOnImplicitCalls.antlrtree.txt
│       │   ├── inner/
│       │   │   ├── InnerClassNameClash.antlrtree.txt
│       │   │   ├── accessingToJavaNestedClass.K.antlrtree.txt
│       │   │   ├── accessingToJavaNestedClass.test.antlrtree.txt
│       │   │   ├── accessingToKotlinNestedClass.antlrtree.txt
│       │   │   ├── annotationInInnerClass.antlrtree.txt
│       │   │   ├── classesInClassObjectHeader.antlrtree.txt
│       │   │   ├── constructorAccess.antlrtree.txt
│       │   │   ├── deepInnerClass.antlrtree.txt
│       │   │   ├── enumEntries.antlrtree.txt
│       │   │   ├── enumInInnerClass.antlrtree.txt
│       │   │   ├── extensionFun.antlrtree.txt
│       │   │   ├── extensionLambdaInsideNestedClass.antlrtree.txt
│       │   │   ├── illegalModifier_lv12.antlrtree.txt
│       │   │   ├── innerClassInEnumEntryClassMemberResolve.antlrtree.txt
│       │   │   ├── innerClassInEnumEntryClass_lv12.antlrtree.txt
│       │   │   ├── innerClassInEnumEntryClass_lv13.antlrtree.txt
│       │   │   ├── innerClassesInStaticParameters.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiers.Outer.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiers.imported.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiersWithIrrelevantCandidate.Outer.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiersWithIrrelevantCandidate.imported.antlrtree.txt
│       │   │   ├── innerErrorForClassObjects.antlrtree.txt
│       │   │   ├── innerErrorForObjects.antlrtree.txt
│       │   │   ├── innerThisSuper.antlrtree.txt
│       │   │   ├── interfaceInInnerClass.antlrtree.txt
│       │   │   ├── kt5854.antlrtree.txt
│       │   │   ├── kt6026.antlrtree.txt
│       │   │   ├── localClass.antlrtree.txt
│       │   │   ├── localClassInsideNested.antlrtree.txt
│       │   │   ├── localThisSuper.antlrtree.txt
│       │   │   ├── modality.antlrtree.txt
│       │   │   ├── nestedClassAccessedViaInstanceReference.antlrtree.txt
│       │   │   ├── nestedClassExtendsOuter.antlrtree.txt
│       │   │   ├── nestedClassExtendsOuterGeneric.antlrtree.txt
│       │   │   ├── nestedClassInObject.antlrtree.txt
│       │   │   ├── nestedClassNotAllowed_after.antlrtree.txt
│       │   │   ├── nestedClassNotAllowed_before.antlrtree.txt
│       │   │   ├── nestedClassTypeParameterNameCollision.antlrtree.txt
│       │   │   ├── nestedObject.antlrtree.txt
│       │   │   ├── nestedVsInnerAccessOuterMember.antlrtree.txt
│       │   │   ├── outerGenericParam.antlrtree.txt
│       │   │   ├── outerProtectedMember.antlrtree.txt
│       │   │   ├── outerSuperClassMember.antlrtree.txt
│       │   │   ├── qualifiedExpression/
│       │   │   │   ├── classObjectOfNestedClass.antlrtree.txt
│       │   │   │   ├── constructNestedClass.antlrtree.txt
│       │   │   │   ├── dataLocalVariable.antlrtree.txt
│       │   │   │   ├── enumConstant.antlrtree.txt
│       │   │   │   ├── genericNestedClass.antlrtree.txt
│       │   │   │   ├── importNestedClass.a.antlrtree.txt
│       │   │   │   ├── importNestedClass.b.antlrtree.txt
│       │   │   │   ├── nestedClassInPackage.antlrtree.txt
│       │   │   │   ├── nestedEnumConstant.antlrtree.txt
│       │   │   │   ├── nestedObjects.antlrtree.txt
│       │   │   │   └── typePosition.antlrtree.txt
│       │   │   ├── referenceToSelfInLocal.antlrtree.txt
│       │   │   ├── resolvePackageClassInObjects.antlrtree.txt
│       │   │   ├── selfAnnotationForClassObject.antlrtree.txt
│       │   │   ├── traits.antlrtree.txt
│       │   │   ├── typeVarianceConflict.antlrtree.txt
│       │   │   ├── typeVarianceConflictFeatureOn.antlrtree.txt
│    

================================================
FILE CONTENTS
================================================

================================================
FILE: .fleet/run.json
================================================
{
  "configurations": [
    {
      "type": "gradle",
      "name": "Build web version",
      "tasks": [
        "buildWeb"
      ]
    },
    {
      "type": "gradle",
      "name": "Build pdf version",
      "tasks": [
        "buildPdf"
      ]
    }
  ]
}

================================================
FILE: .fleet/settings.json
================================================
{
    "backend.maxHeapSizeMb": 4096
}

================================================
FILE: .github/actions/build-spec-in-docker/action.yml
================================================
name: 'Build Kotlin spec in its Docker container'
runs:
  using: 'docker'
  image: '../../../docker/Dockerfile'
  entrypoint: '/build-spec.sh'


================================================
FILE: .github/actions/upload-spec-artifacts/action.yml
================================================
name: 'Upload Kotlin spec artifacts'
runs:
  using: 'composite'
  steps:
    - name: 'Upload Kotlin spec PDF artifacts'
      uses: actions/upload-artifact@v4
      with:
        name: kotlin-spec-pdf
        path: |
          build/spec/pdf/
    - name: 'Upload Kotlin spec HTML artifacts'
      uses: actions/upload-artifact@v4
      with:
        name: kotlin-spec-html
        path: |
          build/spec/html/


================================================
FILE: .github/workflows/build-spec-on-pr-in-docker.yml
================================================
name: 'Build Kotlin spec on PRs (Docker version)'

on: [pull_request]

jobs:
  build-spec:
    runs-on: ubuntu-20.04
    steps:
      - name: 'Checkout'
        uses: actions/checkout@v3
      - name: 'Build Kotlin spec in its Docker container'
        uses: ./.github/actions/build-spec-in-docker
      - name: 'Upload Kotlin spec artifacts'
        uses: ./.github/actions/upload-spec-artifacts


================================================
FILE: .github/workflows/build-spec-on-pr.yml
================================================
name: Build Kotlin spec on PRs

on: [pull_request]

jobs:
  build-spec:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout repo
        uses: actions/checkout@v3
      - name: Setup Java 11
        uses: actions/setup-java@v3
        with:
          java-version: '11'
          distribution: 'zulu'
          cache: 'gradle'
      - name: Setup pandoc
        env:
          PANDOC_VERSION: 2.14.2
          PANDOC_DEB: pandoc-2.14.2-1-amd64.deb
        run: |
          curl -sLO https://github.com/jgm/pandoc/releases/download/$PANDOC_VERSION/$PANDOC_DEB
          sudo dpkg -i $PANDOC_DEB
          rm $PANDOC_DEB
      - name: Setup Kotlin spec dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y gpp
          sudo apt-get install -y librsvg2-bin
          sudo apt-get install -y npm
          curl -sL https://deb.nodesource.com/setup_18.x | sudo bash -
          sudo apt-get install -y nodejs
          sudo apt-get install -y --no-install-recommends texlive-latex-extra
          sudo apt-get install -y --no-install-recommends texlive-fonts-extra
          sudo apt-get install -y --no-install-recommends texlive-bibtex-extra
          sudo apt-get install -y --no-install-recommends texlive-science
          sudo apt-get install -y --no-install-recommends fontconfig
          sudo apt-get install -y --no-install-recommends lmodern
      - name: Build Kotlin spec
        run: |
          ./gradlew buildPdf buildWeb
      - name: Smoke test Kotlin grammar
        run: |
          ./gradlew :grammar:jar
      - name: 'Upload Kotlin spec artifacts'
        uses: ./.github/actions/upload-spec-artifacts


================================================
FILE: .gitignore
================================================
*.generated.md

grammar/testData/psi/**/*.*
!grammar/testData/psi/**/*.antlrtree.txt
!grammar/testData/psi/**/*.diff

grammar/testData/diagnostics/**/*.*
!grammar/testData/diagnostics/**/*.antlrtree.txt
!grammar/testData/diagnostics/**/*.diff

grammar/src/main/java/**/*

.idea
.gradle
.pages
build
!docs/scripts/build
!scripts/build

kotlin-js-store

*.pws


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct

This project and the corresponding community is governed by the [JetBrains Open Source and Community Code of Conduct](https://github.com/JetBrains#code-of-conduct).


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

If you want to contribute to the Kotlin language specification, welcome!
This document describes the ways one could help with the specification together with the most important contribution guidelines.

## How to contribute?

You have several options on how to contribute.

1. Create an [issue](https://github.com/Kotlin/kotlin-spec/issues)
1. Make a [pull request](https://github.com/Kotlin/kotlin-spec/pulls)
1. Drop an email to [Marat Akhin](mailto:marat.akhin@jetbrains.com) or [Mikhail Belyaev](mailto:mikhail.belyaev@jetbrains.com)

> Note: if doing a pull request, it should be based on the `develop` branch.

In any of these cases, if we are talking about semantic changes to the specification, please try to include not only the improvements themselves, but also the reasoning on why you believe such a change is needed.

> If we are talking about simple, but still very much appreciated improvements, e.g., fixing grammar, spelling or punctuation mistakes, no justification is required for those.

If you are contributing information specific to a particular Kotlin version or an known experimental feature, be sure to mention them in the changes.  

## What to contribute?

There are three main ways how you can contribute to the Kotlin specification, which we outline below.
However, if your idea does not fit into these categories, do not hesitate and still send it our way, as we welcome all contributions and will carefully consider even the most unconventional ones.

### Improve the text

The most straightforward way of improving the specification is making its text better.
The specification is written in Markdown and compiled to the resulting HTML and PDF files via [Pandoc](https://pandoc.org/).
As Markdown is pretty lightweight and flexible, we have only a limited set of guidelines on how it should be written.

* A sentence should be placed on a single line, such an arrangement makes it easier to compare changes between different versions.
* Kotlin code blocks should be marked as such using `` ```kotlin ... ``` `` markdown.
* As we are using implicit header references, a preferred way of referencing to a section named `Awesome section title` is `[as follows][Awesome section title]`.
	- The few exceptions to this rule are when you need to reference a particular section with a duplicated name, these sections usually have a predefined `{#anchor}`.
	They should be referenced using the explicit anchor either `[in place](#anchor)` or via a `[reference][anchor reference]` defined separately as `[anchor reference]: #anchor`.

### Provide additional tests

Besides being a description of how Kotlin should work in different situations, the specification also includes a number of *tests* which check whether a compiler implementation is compatible with the specification.

> Note: as of now, these tests cover only a subset of the specification; in the future, we hope for this test suite to evolve into a complete Kotlin compatibility testing kit.

To access these tests, one may use the "Load tests" link available next to every section header in the HTML version.
After loading the tests, the section will be marked into paragraphs (represented as numbered outlines) and sentences (represented as numbered highlights), with available tests linked to the sentences.

A specification test is linked to one *primary* sentence, which is the main thing the test is checking, and zero or more *secondary* sentences, which are somewhat related to what the test is about.
Sentences are identified by their section path plus their paragraph number plus their sentence number (aka sentence identifier).

If a sentence have one or more tests linked to it (aka a *tested sentence*), it is highlighted in green; otherwise, it is highlighted in gray.
When you click on a tested sentence, a popup window is shown, which contains the available test cases for the sentence as a code snippet, augmented with the following information:

* Test kind; currently we support these kinds of tests:
	+ front-end diagnostics tests;
	+ codegen box tests;
* Test type; currently we support these kinds of tests:
	+ positive tests, which should successfully compile;
	+ negative tests, which should not compile with a compile-time error;
* Test linkage: primary or secondary;
* Test description.

The test code can be run from the popup by clicking the green arrow icon; you can also tweak the code by switching to edit mode via the plus sign icon.

As of now, these tests are hosted in the main [Kotlin compiler repository][spec-test-data], and are used in its continuous integration process.
Because of this, we do not currently have a very user-friendly story of contributing additional specification tests.

If you nonetheless want to contribute a new test for a statement in the specification, you should do the following.

* Write the test case itself as a standalone code snippet;
* Link it to one primary sentence and zero or more secondary sentences via their sentence identifiers;
* Describe the test using the aforementioned classification (kind, type, linkage, description);
* Drop us an email with this information.

TODO(Maybe provide a test case template somewhere?)

[spec-test-data]: https://github.com/JetBrains/kotlin/tree/master/compiler/tests-spec

### Enhance the grammar

Kotlin grammar included in the specification is actually compiled from a standalone grammar description.
It is written in ANTLR v4 format and available in the [`grammar`](./grammar) folder.
Further information about how it can be used is available in the [grammar README.md](./grammar/README.md).

If you want to contribute any grammar improvements, they should be made against the ANTLR version and not against the compiled version included in the specification.
To send them, please follow the general instructions on how to contribute.


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright 2000-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.



================================================
FILE: README.md
================================================
# Kotlin Language Specification

[![JetBrains official project](https://jb.gg/badges/official.svg)](https://github.com/JetBrains#jetbrains-on-github)
[![TeamCity (simple build status)](https://img.shields.io/teamcity/https/teamcity.jetbrains.com/e/Kotlin_Spec_DocsMaster.svg?style=flat)](https://teamcity.jetbrains.com/viewType.html?buildTypeId=Kotlin_Spec_DocsMaster&branch_Kotlin_dev=%3Cdefault%3E&tab=buildTypeStatusDiv)
[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0)
[![Latest release version](https://img.shields.io/github/v/release/Kotlin/kotlin-spec?style=flat)](https://github.com/Kotlin/kotlin-spec/releases)

This repository contains the specification of the [Kotlin programming language](https://kotlinlang.org), which describes how parts of the language should function *in more detail*, as compared to a more traditional user documentation on the [Kotlin Website](https://kotlinlang.org/docs/reference/).

It would be most useful to those who are interested in how Kotlin works on a finer level and how its features interoperate, e.g., language enthusiasts, compiler writers and Kotlin power-users.
However, if you are simply wondering, why some code you wrote works the way it does, this specification might help you get an answer to that.

Currently, the specification covers only what we call *Kotlin/Core*: fundamental parts of Kotlin which should function the same way irregardless of the underlying platform.
In the future, we plan to extend it with additional platform-specific sections covering Kotlin/JVM, Kotlin/JS and Kotlin/Native.

## Compatibility

Kotlin Language Specification is still in progress and has **experimental** stability level, meaning no compatibility should be expected between even incremental releases, any functionality can be added, removed or changed without warning. 

## Artifacts

HTML version of the specification is available on the [Kotlin Website](https://kotlinlang.org/spec).

PDF version can be downloaded using the links in the HTML version or using the [direct link](https://kotlinlang.org/spec/pdf/kotlin-spec.pdf).

## Kotlin grammar

The grammar is a part of the specification and is also contained in this repository.

The reference grammar files in ANTLR4 format are located in the [grammar folder](./grammar/src/main/antlr/).
The human-friendly version is available on the [Kotlin Website](https://kotlinlang.org/docs/reference/grammar.html), in the [HTML](https://kotlinlang.org/spec/syntax-and-grammar.html) or [PDF](https://kotlinlang.org/spec/pdf/sections/syntax-and-grammar.pdf) version of the specification.

## Building the specification

The specification is built using [Gradle](https://gradle.org/).
Therefore, most dependencies are downloaded by the build system.

However, there are several external dependencies which should be installed separately.
For instructions on how to do this, please refer to your operating system documentation.

* [Pandoc](https://pandoc.org/) (tested with version 2.9.1)
* [npm](https://www.npmjs.com/) (tested with version 6.14.6)
* [gpp](https://logological.org/gpp) (tested with version 2.25)
* [bash](https://www.gnu.org/software/bash/) (tested with version 5.0.17)

After installing these dependencies, building the specification is as easy as running:

```
./gradlew buildWeb buildPdf
```

which creates both HTML and PDF versions of the specification in `./build/spec`.

> When doing the build for the very first time, you will see Gradle downloading `ideaIC-LATEST-EAP-SNAPSHOT.zip`, which may take quite a long time.
> This IDEA snapshot is used for specification and grammar tests, and will be cached (until a new version is available), so this lengthy download should happen only once (in a while).

The PDF version is available in two flavours: single-file PDF, containing the complete specification, and a set of section-based PDFs, containing their respective sections.

The HTML version consists of a set of section-based pages linked together via an interactive table of contents.

## Contributing

If you want to contribute to the specification, that's great!
You can help us make the Kotlin specification better by one of the following ways.

1. Create an [issue](https://github.com/Kotlin/kotlin-spec/issues) and describe what you think can be improved
1. Make a [pull request](https://github.com/Kotlin/kotlin-spec/pulls) and extends the specification
1. Discuss the specification on the Kotlin [forums](https://discuss.kotlinlang.org/)
1. Drop an email to [Marat Akhin](mailto:marat.akhin@jetbrains.com) or [Mikhail Belyaev](mailto:mikhail.belyaev@jetbrains.com) with your suggestions

> Note: if doing a pull request, it should be based on the `develop` branch.

We welcome any and all feedback to the specification, but may tweak, change or iterate with you on the contribution before including it in the specification.

Further details on how to contribute to the specification are available in [CONTRIBUTING.md](CONTRIBUTING.md).

## Reference

If one needs to reference this specification, they may use the following:

> Marat Akhin, Mikhail Belyaev et al. "Kotlin language specification: Kotlin/Core", JetBrains / JetBrains Research, 2020


================================================
FILE: ROADMAP.md
================================================
# Specification roadmap

## Short-term plans

* Improve Kotlin code examples
* Synchronize specification of complex features with their up-to-latest-date implementation
	* Bound smart casts
	* Operator expansions for non-trivial cases (aka operator desugaring)
	* Fallthrough-like overload resolution (`provideDelegate` + `getValue`, `plusAssign` + `plus` with assignment, etc.)
* Describe type approximation and type decaying in more detail

## Long-term plans

* Describe Kotlin Multiplatform Project (MPP) support
* Implement platform-specific parts of Kotlin language specification
	* Kotlin/JVM
	* Kotlin/JS
	* Kotlin/Native


================================================
FILE: build.gradle.kts
================================================
import at.phatbl.shellexec.ShellExec

plugins {
    kotlin("jvm") version "1.7.0" apply false
    id("at.phatbl.shellexec") version "1.5.2"
}

val htmlBuildDir = "$buildDir/spec/html"
val pdfBuildDir = "$buildDir/spec/pdf"
val resourcesBuildDir = "$htmlBuildDir/resources"
val jsBuildDir = "$resourcesBuildDir/js"

tasks.create<Copy>("copyStatic") {
    group = "internal"

    from("$projectDir/web/resources")
    into(resourcesBuildDir)
}

tasks.create<Copy>("copyBuiltJs") {
    group = "internal"

    mustRunAfter("web:build")

    from("$projectDir/web/build/js")
    into(jsBuildDir)
}

tasks.create<Copy>("copyHtml") {
    group = "internal"

    mustRunAfter("docs:buildHtml", "docs:buildHtmlBySections")

    from("$projectDir/docs/build/spec/html")
    into(htmlBuildDir)
}

tasks.create<Copy>("copyPdf") {
    group = "internal"

    mustRunAfter("docs:buildPdf", "docs:buildPdfBySections")

    from("$projectDir/docs/build/spec/pdf")
    into(pdfBuildDir)
}

tasks.create<Copy>("copyStubIndexToRedirectToIntroduction") {
    group = "internal"

    mustRunAfter("docs:buildPdf", "docs:buildPdfBySections")

    from("$projectDir/web/resources/html")
    into(htmlBuildDir)
}

tasks.create("buildJs") {
    group = "internal"

    dependsOn("copyStatic")
    dependsOn("web:build")
    dependsOn("copyBuiltJs")

    doFirst {
        File(jsBuildDir).mkdirs()
    }
}

tasks.create("buildWeb") {
    group = "build"

    dependsOn("docs:buildHtml")
    dependsOn("docs:buildHtmlBySections")
    dependsOn("copyHtml")
    dependsOn("buildJs")
}

tasks.create("buildWebFullOnly") {
    group = "build"

    dependsOn("docs:buildHtml")
    dependsOn("copyHtml")
    dependsOn("buildJs")
}

tasks.create("buildWebBySectionsOnly") {
    group = "build"

    dependsOn("docs:buildHtmlBySections")
    dependsOn("copyHtml")
    dependsOn("buildJs")
    dependsOn("copyStubIndexToRedirectToIntroduction")
}

tasks.create("buildPdf") {
    group = "build"

    dependsOn("docs:buildPdf")
    dependsOn("docs:buildPdfBySections")
    dependsOn("copyPdf")
}

tasks.create<ShellExec>("syncGrammarWithKotlinGrammarApache2Repo") {
    group = "internal"
    command = """echo -e "Run the following commands: git checkout release; ...; git subtree push --prefix grammar/src/main/antlr git@github.com:Kotlin/kotlin-grammar-apache2 release""""
}


================================================
FILE: docker/Dockerfile
================================================
FROM pandoc/latex:2.14.2-ubuntu
MAINTAINER Marat Akhin <marat.akhin@jetbrains.com>

WORKDIR /source

# install Java 11
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
RUN apt-add-repository 'deb http://repos.azulsystems.com/ubuntu stable main'
RUN apt-get update
RUN apt-get install -y zulu-11

# install packages for the Kotlin spec
RUN apt-get install -y git
RUN apt-get install -y gpp
RUN apt-get install -y librsvg2-bin
RUN apt-get install -y npm
RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs

# install more TeX Live packages
RUN tlmgr install --no-persistent-downloads enumitem
RUN tlmgr install --no-persistent-downloads cancel
RUN tlmgr install --no-persistent-downloads todonotes
RUN tlmgr install --no-persistent-downloads titlesec
RUN tlmgr install --no-persistent-downloads newunicodechar

# add build-spec.sh file for GitHub Actions
COPY build-spec.sh /build-spec.sh


================================================
FILE: docker/build-spec.sh
================================================
#!/bin/bash

cd /github/workspace

./gradlew buildWeb buildPdf

./gradlew :grammar:jar


================================================
FILE: docs/build.gradle.kts
================================================
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.net.URI

plugins {
    application
    kotlin("jvm")
    id("at.phatbl.shellexec")
}

group = "org.jetbrains.kotlin.spec"
version = "0.1"

val htmlBuildDir = "$buildDir/spec/html"
val pdfBuildDir = "$buildDir/spec/pdf"
val resourcesBuildDir = "$htmlBuildDir/resources"
val jsBuildDir = "$resourcesBuildDir/js"
val scriptsDir = "$projectDir/scripts/build"
val ls: String = System.lineSeparator()

repositories {
    maven {
        url = URI("https://packages.jetbrains.team/maven/p/plan/apal")
    }
    mavenCentral()
}

sourceSets {
    main {
        java.srcDir("src/main/kotlin")
    }
}

dependencies {
    implementation("ru.spbstu:g4-to-ebnf:0.0.0.4")
    implementation("ru.spbstu:kotlin-pandoc:0.0.15")
    implementation("ru.spbstu:simple-diagrammer:0.0.0.7")
    constraints {
        implementation("org.apache.commons:commons-text:1.10.0") {
            because("versions below 1.10 are vulnerable (https://security.snyk.io/vuln/SNYK-JAVA-ORGAPACHECOMMONS-3043138)")
        }
    }
    implementation("com.github.ajalt:clikt:2.8.0")
    implementation("com.zaxxer:nuprocess:2.0.3")
    implementation("org.antlr:antlr4:4.8")
}

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "11"
}

tasks.create<Jar>("filtersJar") {
    from(
        sourceSets.main.get().output,
        *configurations.runtimeClasspath.get().map { if (it.isDirectory()) it else zipTree(it) }.toTypedArray()
    )
    archiveFileName.set("filters.jar")
    with(tasks.jar.get())

    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

tasks.create<JavaExec>("convertGrammar") {
    val grammarsDir = "$rootDir/grammar/src/main/antlr"
    val lexerGrammar = "KotlinLexer.g4"
    val parserGrammar = "KotlinParser.g4"
    val outputFile = "./src/md/kotlin.core/grammar.generated.md"

    inputs.files("$grammarsDir/$lexerGrammar", "$grammarsDir/$parserGrammar")
    outputs.file(outputFile)

    classpath = sourceSets["main"].runtimeClasspath
    mainClass.set("org.jetbrains.kotlin.spec.ConvertGrammarKt")
    args = listOf("-d", grammarsDir, "-l", lexerGrammar, "-p", parserGrammar, "-o", outputFile)
}

tasks.create("prepareShell") {
    group = "internal"

    val disableTODOS = project.findProperty("disableTODOS") != null
    val enableStaticMath = project.findProperty("enableStaticMath") != null

    if (enableStaticMath) {
        dependsOn(":kotlinNpmInstall") // we need npm to install Katex to run it
    }

    doFirst {
        val res = with(StringBuilder()) {
            appendLine("PROJECT_DIR=$projectDir")
            if (disableTODOS) appendLine("TODO_OPTION=--disable-todos")
            else appendLine("TODO_OPTION=--enable-todos")

            if (enableStaticMath) {
                appendLine("STATIC_MATH_OPTION=--enable-static-math")
                appendLine("KATEX_BIN_OPTION=\"--katex=${rootProject.buildDir}/js/node_modules/.bin/katex\"")
            }
            else appendLine("STATIC_MATH_OPTION=--disable-static-math")
        }

        File("$buildDir/prepare.sh").writeText("$res")
    }

}

tasks.create("buildPdf") {
    group = "internal"
    dependsOn("pdf:build")
}

tasks.create("buildPdfBySections") {
    group = "internal"
    dependsOn("pdfSections:build")
}

tasks.create("buildHtml") {
    group = "internal"
    dependsOn("html:build")
}

tasks.create("buildHtmlBySections") {
    group = "internal"
    dependsOn("htmlSections:build")
}

tasks.create<JavaExec>("execute") {
    group = "internal"

    classpath = sourceSets["main"].runtimeClasspath

    mainClass.set(project.findProperty("mainClass") as? String ?: "")
    args = (project.findProperty("args") as? String)?.split(" ") ?: emptyList()
    val wd = project.findProperty("workDir") as? String
    workingDir = wd?.let { File(it) } ?: File(".")

    standardInput = System.`in`
    standardOutput = System.out
    errorOutput = System.err
}


================================================
FILE: docs/html/build.gradle.kts
================================================
val htmlBuildDir = "${project.parent?.buildDir}/spec/html"
val scriptsDir = "${project.parent?.projectDir}/scripts/build"

tasks.create<Exec>("build") {
    group = "internal"

    inputs.dir("${project.parent?.projectDir}/src/md/kotlin.core")

    dependsOn(":docs:prepareShell")
    dependsOn(":docs:convertGrammar")
    dependsOn(":docs:filtersJar")

    environment["PROJECT_DIR"] = project.parent?.projectDir!!

    doFirst {
        workingDir = File(scriptsDir)
        commandLine = listOf("bash", "$scriptsDir/buildHtml.sh")

        File(htmlBuildDir).mkdirs()
    }
}


================================================
FILE: docs/htmlSections/build.gradle.kts
================================================
import java.nio.file.Paths

val htmlBuildDir = "${project.parent?.buildDir}/spec/html"
val scriptsDir = "${project.parent?.projectDir}/scripts/build"

tasks.create<Exec>("build") {
    group = "internal"

    inputs.dir("${project.parent?.projectDir}/src/md/kotlin.core")

    dependsOn(":docs:prepareShell")
    dependsOn(":docs:convertGrammar")
    dependsOn(":docs:filtersJar")

    environment["PROJECT_DIR"] = project.parent?.projectDir!!

    doFirst {
        workingDir = File(scriptsDir)
        commandLine = listOf("bash", "$scriptsDir/buildHtmlBySections.sh")

        Paths.get(htmlBuildDir).toFile().apply { deleteRecursively(); mkdirs() }
    }
}


================================================
FILE: docs/pdf/build.gradle.kts
================================================
val pdfBuildDir = "${project.parent?.buildDir}/spec/pdf"
val scriptsDir = "${project.parent?.projectDir}/scripts/build"

tasks.create<Exec>("build") {
    group = "internal"

    inputs.dir("${project.parent?.projectDir}/src/md/kotlin.core")
    outputs.files("${pdfBuildDir}/kotlin-spec.pdf")

    dependsOn(":docs:prepareShell")
    dependsOn(":docs:convertGrammar")
    dependsOn(":docs:filtersJar")

    environment["PROJECT_DIR"] = project.parent?.projectDir!!

    doFirst {
        workingDir = File(scriptsDir)
        commandLine = listOf("bash", "$scriptsDir/buildPdf.sh")

        File(pdfBuildDir).mkdirs()
    }
}


================================================
FILE: docs/pdfSections/build.gradle.kts
================================================
import java.nio.file.Paths

val pdfBuildDir = "${project.parent?.buildDir}/spec/pdf"
val scriptsDir = "${project.parent?.projectDir}/scripts/build"

tasks.create<Exec>("build") {
    group = "internal"

    inputs.dir("${project.parent?.projectDir}/src/md/kotlin.core")

    dependsOn(":docs:prepareShell")
    dependsOn(":docs:convertGrammar")
    dependsOn(":docs:filtersJar")

    environment["PROJECT_DIR"] = project.parent?.projectDir!!

    doFirst {
        workingDir = File(scriptsDir)
        commandLine = listOf("bash", "$scriptsDir/buildPdfBySections.sh")


        Paths.get("$pdfBuildDir/sections").toFile().apply { deleteRecursively(); mkdirs() }
    }
}


================================================
FILE: docs/scripts/build/buildHtml.sh
================================================
#!/bin/env bash

source directories.sh
source ${BUILD_DIR}/prepare.sh
source settings.sh

init_settings "html"

export PROJECT_DIR
export TODO_OPTION
export STATIC_MATH_OPTION
export KATEX_BIN_OPTION

cd ${PROJECT_DIR}/src/md

gpp -H ./index.md | pandoc \
--filter ${FILTERS_DIR}/compoundFilter.sh \
  ${PREAMBLE_OPTIONS} \
  ${COMMON_PANDOC_OPTIONS} \
  ${FORMAT_PANDOC_OPTIONS} \
  ${TOC_PANDOC_OPTIONS} \
  ${HTML_ASSETS_OPTIONS} \
-o ${BUILD_DIR}/spec/html/kotlin-spec.html


================================================
FILE: docs/scripts/build/buildHtmlBySections.sh
================================================
#!/bin/env bash

source directories.sh
source ${BUILD_DIR}/prepare.sh
source settings.sh

init_settings "html"

export PROJECT_DIR
export TODO_OPTION
export STATIC_MATH_OPTION
export KATEX_BIN_OPTION

cd ${PROJECT_DIR}/src/md

TMP_DIR=${BUILD_DIR}/~tmp/html

mkdir -p $TMP_DIR

gpp -H ./index.md \
| pandoc ${PREAMBLE_OPTIONS} ${COMMON_PANDOC_OPTIONS} ${FORMAT_PANDOC_OPTIONS} -t json \
| bash ${FILTERS_DIR}/compoundFilter.sh html --split --output-directory=$TMP_DIR --generate-toc

mkdir -p ${BUILD_DIR}/html

for f in $TMP_DIR/*.json;
do \
  (pandoc \
    ${PREAMBLE_OPTIONS} \
    ${COMMON_PANDOC_OPTIONS} \
    $f \
    ${HTML_ASSETS_OPTIONS} \
    -o ${BUILD_DIR}/spec/html/"$(basename "$f" .json).html") &
done
wait

rm -rf $TMP_DIR


================================================
FILE: docs/scripts/build/buildPdf.sh
================================================
#!/bin/env bash

source directories.sh
source ${BUILD_DIR}/prepare.sh
source settings.sh

init_settings "pdf"

export PROJECT_DIR
export TODO_OPTION
export STATIC_MATH_OPTION

IMAGE_DIR_OPTION="--image-directory=${BUILD_DIR}/pdf/images"
export IMAGE_DIR_OPTION

cd ${PROJECT_DIR}/src/md

gpp -H ./index.md | pandoc \
--filter ${FILTERS_DIR}/compoundFilter.sh \
  ${PREAMBLE_OPTIONS} \
  ${COMMON_PANDOC_OPTIONS} \
  ${FORMAT_PANDOC_OPTIONS} \
  ${TOC_PANDOC_OPTIONS} \
--variable documentclass=book \
--number-sections \
-o ${BUILD_DIR}/spec/pdf/kotlin-spec.pdf


================================================
FILE: docs/scripts/build/buildPdfBySections.sh
================================================
#!/bin/env bash

source directories.sh
source ${BUILD_DIR}/prepare.sh
source settings.sh

init_settings "pdf"

export PROJECT_DIR
export TODO_OPTION
export STATIC_MATH_OPTION

cd ${PROJECT_DIR}/src/md

TMP_DIR=${BUILD_DIR}/~tmp/pdf

export IMAGE_DIR_OPTION="--image-directory=${TMP_DIR}/pdf/images"

mkdir -p $TMP_DIR

gpp -H ./index.md \
| pandoc ${PREAMBLE_OPTIONS} ${COMMON_PANDOC_OPTIONS} ${FORMAT_PANDOC_OPTIONS} -t json \
| bash ${FILTERS_DIR}/compoundFilter.sh latex --split --output-directory=$TMP_DIR

mkdir -p ${BUILD_DIR}/pdf/sections

for f in $TMP_DIR/*.json;
do \
  (pandoc \
    ${PREAMBLE_OPTIONS} \
    ${COMMON_PANDOC_OPTIONS} \
    $f \
    --variable documentclass=book \
    --number-sections \
    -o ${BUILD_DIR}/spec/pdf/sections/"$(basename "$f" .json).pdf") &
done
wait

rm -rf $TMP_DIR


================================================
FILE: docs/scripts/build/directories.sh
================================================
#!/bin/env bash

export PROJECT_DIR

SECTIONS_DIR="$PROJECT_DIR/src/md/kotlin.core"
FILTERS_DIR="$PROJECT_DIR/scripts/filters"
BUILD_DIR="$PROJECT_DIR/build"


================================================
FILE: docs/scripts/build/settings.sh
================================================
#!/bin/env bash

FORMAT_PANDOC_OPTIONS="-f markdown-raw_html+smart+tex_math_double_backslash"

#--variable=subparagraph is a fix for https://stackoverflow.com/questions/42916124/not-able-to-use-titlesec-with-markdown-and-pandoc

COMMON_PANDOC_OPTIONS="\
  -s \
  --variable linkcolor=blue \
  --variable filecolor=cyan \
  --syntax-definition=kotlin.xml \
  --variable=subparagraph \
  --variable=math: \
  --top-level-division=part"

TOC_PANDOC_OPTIONS="\
  --toc \
  --toc-depth=6"

HTML_ASSETS_OPTIONS="\
  -c ./resources/css/main.css \
  -c ./resources/js/katex/katex.min.css \
  --katex=./resources/js/katex/"

PREAMBLE_OPTIONS=""

init_settings() {
    local type=$1
    if [ "${type}" == "pdf" ]; then
        PREAMBLE_OPTIONS="-H ./preamble.tex"
    elif [ "${type}" == "html" ]; then
      PREAMBLE_OPTIONS="-H ./preamble.html --include-before-body ./preface.html --include-after-body ./epilogue.html"
      if [ "${STATIC_MATH_OPTION}" == "--disable-static-math" ]; then
        PREAMBLE_OPTIONS="$PREAMBLE_OPTIONS -H ./dynamic_math.html"
      fi
    fi
}


================================================
FILE: docs/scripts/filters/brokenReferencesReportFilter.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.BrokenReferencesReporterKt $*


================================================
FILE: docs/scripts/filters/compoundFilter.sh
================================================
#!/bin/bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.CompoundFilterKt $* --embed $TODO_OPTION $STATIC_MATH_OPTION $KATEX_BIN_OPTION $IMAGE_DIR_OPTION


================================================
FILE: docs/scripts/filters/copyPasteFilter.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.CopyPasteFilterKt $*


================================================
FILE: docs/scripts/filters/inlineDiagramFilter.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.InlineDiagramFilterKt $* --embed


================================================
FILE: docs/scripts/filters/inlineKatexFilter.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.InlineKatexKt $* $STATIC_MATH_OPTION $KATEX_BIN_OPTION


================================================
FILE: docs/scripts/filters/markSentencesFilter.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.MarkSentencesFilterKt $*


================================================
FILE: docs/scripts/filters/mathInCodeFilter.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.MathInCodeFilterKt $*


================================================
FILE: docs/scripts/filters/processTodoFilter.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.ProcessTodoFilterKt $* $TODO_OPTION


================================================
FILE: docs/scripts/filters/splitSections.sh
================================================
#!/bin/env bash
java -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.SplitDocumentKt $*


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/brokenReferencesReporter.kt
================================================
package org.jetbrains.kotlin.spec

import ru.spbstu.pandoc.*
import ru.spbstu.pandoc.helper.*

private class ModifiedToStringVisitor: PandocVisitor() {

    val builder = StringBuilder()

    override fun visit(i: Inline.Code): Inline = i.also { builder.append("$") } // no code
    override fun visit(i: Inline.Math): Inline = i.also { builder.append("$") } // no math
    override fun visit(i: Inline.RawInline): Inline = i.also { builder.append("$") } // no LaTeX

    override fun visit(i: Inline.Str): Inline {
        builder.append(i.text)
        return super.visit(i)
    }

    override fun visit(i: Inline.Quoted): Inline {
        val quotes = when(i.type) {
            QuoteType.DoubleQuote -> "\""
            QuoteType.SingleQuote -> "\'"
        }
        builder.append(quotes)
        val res = super.visit(i)
        builder.append(quotes)
        return res
    }

    override fun visit(i: Inline.Space): Inline {
        builder.append(" ")
        return super.visit(i)
    }

    override fun visit(i: Inline.SoftBreak): Inline {
        builder.append("\n")
        return super.visit(i)
    }

    override fun visit(i: Inline.LineBreak): Inline {
        builder.append("\n")
        return super.visit(i)
    }
}

private fun toCharSequence(b: Block): CharSequence = ModifiedToStringVisitor().also { b.accept(it) }.builder

object BrokenReferencesReporter: PandocVisitor() {

    var lastHeader: Block? = null
    val re = """\[[^]]+\]\[[^]]+\]""".toRegex()

    fun detect(b: Block): Block {
        val matches = re.findAll(toCharSequence(b));

        for(match in matches) {
            System.err.println("Broken link detected in section '${lastHeader?.getContentsAsText()}': " + match.value)
        }

        return b
    }

    override fun visit(b: Block.Para) = detect(b)
    override fun visit(b: Block.Plain) = detect(b)
    override fun visit(b: Block.LineBlock) = detect(b)

    override fun visit(b: Block.Header) = detect(b.also { lastHeader = b })

}

fun main() = makeFilter(BrokenReferencesReporter)

================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/compoundFilter.kt
================================================
package org.jetbrains.kotlin.spec

import com.fasterxml.jackson.module.kotlin.readValue
import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.convert
import com.github.ajalt.clikt.parameters.options.convert
import com.github.ajalt.clikt.parameters.options.defaultLazy
import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.types.file
import ru.spbstu.pandoc.Format
import ru.spbstu.pandoc.Pandoc
import ru.spbstu.pandoc.PandocVisitor
import ru.spbstu.pandoc.jackson.constructObjectMapper
import ru.spbstu.pandoc.makeFilter
import java.io.File

operator fun PandocVisitor.plus(otherVisitor: PandocVisitor) = object : PandocVisitor() {
    override fun visit(doc: Pandoc): Pandoc {
        return otherVisitor.visit(this@plus.visit(doc))
    }
}

private object CompoundFilter : CliktCommand() {
    val format: Format by argument("Pandoc output format").convert { Format(it) }
    val split: Boolean by option().flag("--no-split")
    val disableTODOS: Boolean by option().flag("--enable-todos")
    val imageDirectory: File? by option().file(canBeFile = false)
    val embed: Boolean by option().flag()
    val defaultFormat: String? by option()

    val disableStaticMath by option().flag("--enable-static-math")
    val katex by option()

    val outputDirectory: File by option().file(canBeFile = false).defaultLazy { File(".") }
    val generateTOC: Boolean by option().flag("--no-toc")

    override fun run() {
        outputDirectory.mkdirs()
        imageDirectory?.mkdirs()
        var visitor = listOf(
            SpecTodoFilterVisitor(format, disableTODOS),
            SpecSentencesFilterVisitor,
            SpecCopyPasteFilterVisitor,
            SpecInlineDiagramFilterVisitor(defaultFormat, format, imageDirectory, embed),
            MathInCode,
            BrokenReferencesReporter
        ).reduce { a, b -> a + b }

        if (!disableStaticMath && format.isHTML())
            visitor += InlineKatex(katex)

        val om = constructObjectMapper()
        val ii = om.readValue<Pandoc>(System.`in`)

        if (split) {
            visitor += Splitter(outputDirectory, format.format, generateTOC)
            visitor.visit(ii)
        } else {
            om.writeValue(System.out, visitor.visit(ii))
        }
    }
}

fun main(args: Array<String>) = CompoundFilter.main(args)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/convertGrammar.kt
================================================
package org.jetbrains.kotlin.spec

import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.options.required
import org.antlr.v4.Tool
import org.antlr.v4.parse.ANTLRParser
import org.antlr.v4.tool.Grammar
import org.antlr.v4.tool.LexerGrammar
import org.antlr.v4.tool.ast.*
import ru.spbstu.grammarConverter.parseRules
import ru.spbstu.grammarConverter.toMarkdown
import java.io.File
import java.util.*

fun inlineGrammar(grammarDir: String, lexerGrammar: String, parserGrammar: String): String {
    val tool = Tool().apply { libDirectory = grammarDir }
    val lexerGrammarText = File("$grammarDir/$lexerGrammar").readText()
    val parserGrammarSourceLines = File("$grammarDir/$parserGrammar").readLines()

    val lexer = LexerGrammar(tool, tool.parseGrammarFromString(lexerGrammarText)).apply {
        fileName = lexerGrammar
        tool.process(this, false)
    }
    val parser = Grammar(tool, tool.parseGrammarFromString(parserGrammarSourceLines.joinToString(System.lineSeparator()))).apply {
        fileName = parserGrammar
        tool.process(this, false)
    }

    val visitor = GrammarVisitor(lexer, parserGrammarSourceLines).also { parser.ast.visit(it) }

    return visitor.processedParserGrammarSourceLines.joinToString(System.lineSeparator())
}

private fun convertGrammar(outputMarkdownFilePath: String, grammarDir: String, lexerGrammar: String, parserGrammar: String) {
    val parserGrammarWithInlinedLexerRules = inlineGrammar(grammarDir, lexerGrammar, parserGrammar)
    val outputMarkdownFile = File(outputMarkdownFilePath).outputStream()

    outputMarkdownFile.bufferedWriter().use { writer ->
        val rules = parseRules(parserGrammarWithInlinedLexerRules.byteInputStream())
        writer.append(rules.toMarkdown(true)).appendLine()
    }
}

private object Driver : CliktCommand() {
    val outputFilePath by option("-o", "--output", help="path to output file in markdown format (.md)").required()
    val grammarDir by option("-d", "--grammar_dir", help="path to dir with lexer and parser grammars").required()
    val lexerGrammar by option("-l", "--lexer_grammar", help="lexer grammar filename").required()
    val parserGrammar by option("-p", "--parser_grammar", help="parser grammar filename").required()

    override fun run() = convertGrammar(outputFilePath, grammarDir, lexerGrammar, parserGrammar)
}

class GrammarVisitor(private val lexer: LexerGrammar, parserGrammarSourceLines: List<String>): GrammarASTVisitor {
    val processedParserGrammarSourceLines: MutableList<String> = parserGrammarSourceLines.toMutableList()
    private val offsets = mutableMapOf<Int, TreeMap<Int, Int>>()

    override fun visit(node: GrammarAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: GrammarRootAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: RuleAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: BlockAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: OptionalBlockAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: PlusBlockAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: StarBlockAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: AltAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: NotAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: PredAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: RangeAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: SetAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }
    override fun visit(node: RuleRefAST) { if (node.children != null) { node.childrenAsArray.map { it.visit(this) } } }

    override fun visit(node: TerminalAST) {
        val lexerRule = lexer.rules[node.token.text]

        if (lexerRule == null || !isSimpleLexerRule(lexerRule.ast.childrenAsArray[1]) || node.token.text in excludedNodes)
            return

        val tokenValue = lexerRule.tokenRefs.singleOrNull() ?: return

        val tokenNameLength = node.token.text.length
        val startPositionInLine = node.charPositionInLine
        val endPositionInLine = startPositionInLine + tokenNameLength
        val lineIndex = node.line - 1

        val offsetForLine = offsets[lineIndex]
        val offset = offsetForLine?.subMap(0, startPositionInLine)?.values?.sum() ?: 0

        processedParserGrammarSourceLines[lineIndex] = processedParserGrammarSourceLines[lineIndex].replaceRange(
                range = (startPositionInLine - offset) until (endPositionInLine - offset),
                replacement = tokenValue
        )
        if (lineIndex !in offsets) {
            offsets[lineIndex] = TreeMap()
        }

        val offsetsTree = offsets[lineIndex]

        if (offsetsTree != null) {
            offsetsTree[startPositionInLine] = node.token.text.length - tokenValue.length
        }
    }

    private fun isSimpleLexerRule(rule: GrammarAST): Boolean {
        if (rule.children != null && rule.childrenAsArray.count { supportedNodes.contains(it.type) } > 1)
            return false

        if (rule.children == null || rule.children.size == 0)
            return rule.type == ANTLRParser.STRING_LITERAL

        return isSimpleLexerRule(rule.childrenAsArray[0])
    }

    companion object {
        private val supportedNodes = setOf(
                ANTLRParser.TOKEN_REF, ANTLRParser.LEXER_CHAR_SET, ANTLRParser.RULE_REF, ANTLRParser.BLOCK,
                ANTLRParser.ALT, ANTLRParser.SET, ANTLRParser.RULE, ANTLRParser.STRING_LITERAL, ANTLRParser.RULEMODIFIERS,
                ANTLRParser.POSITIVE_CLOSURE, ANTLRParser.CLOSURE, ANTLRParser.OPTIONAL
        )

        private val excludedNodes = setOf(
                "AT_NO_WS", "AT_PRE_WS", "AT_POST_WS", "QUEST_NO_WS", "QUEST_WS", "NL", "EOF"
        )
    }
}

fun main(args: Array<String>) = Driver.main(args)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/copyPasteFilter.kt
================================================
package org.jetbrains.kotlin.spec

import ru.spbstu.pandoc.*
import ru.spbstu.pandoc.helper.*

private class IdCollector : PandocVisitor() {
    val blocks: MutableMap<String, Block> = mutableMapOf()
    val inlines: MutableMap<String, Inline> = mutableMapOf()

    override fun visit(b: Block): Block {
        if(b is Attributes && b.attr.id.isNotBlank()) blocks[b.attr.id] = b
        return super.visit(b)
    }

    override fun visit(i: Inline): Inline {
        if(i is Attributes && i.attr.id.isNotBlank()) inlines[i.attr.id] = i
        return super.visit(i)
    }
}

object SpecCopyPasteFilterVisitor : PandocVisitor() {
    var nextId: Int = 0

    private val collector = IdCollector()

    override fun visit(doc: Pandoc): Pandoc {
        collector.visit(doc)
        return super.visit(doc)
    }

    private fun getBlock(id: String): Block =
            when(id) {
                in collector.inlines -> {
                    val i = collector.inlines[id]!!
                    Block.Plain(listOf(i))
                }
                in collector.blocks -> collector.blocks[id]!!
                else -> Block.Plain(listOf(Inline.Strong(listOf(Inline.Str("Id $id not found")))))
            }

    private fun getInline(id: String): Inline =
            when(id) {
                in collector.inlines -> collector.inlines[id]!!
                in collector.blocks ->
                    Inline.Strong(listOf(Inline.Str("[Cannot paste block $id as inline]")))
                else -> Inline.Strong(listOf(Inline.Str("[Id $id not found]")))
            }

    override fun visit(b: Block.Div): Block {
        when {
            "paste" in b.attr.classes -> {
                val props = b.attr.propertiesMap
                val target = props["target"] ?: return super.visit(b)
                val block = getBlock(target)

                if (block is Attributes) {
                    val id = if(b.attr.id.isNotBlank()) b.attr.id else "$target-pasted-${nextId++}"
                    return block.copy(attr = block.attr.copy(id = id))
                }
                return block
            }
            else -> return super.visit(b)
        }
    }

    override fun visit(i: Inline.Span): Inline {
        when {
            "paste" in i.attr.classes -> {
                val props = i.attr.propertiesMap
                val target = props["target"] ?: return super.visit(i)
                val inline = getInline(target)

                if (inline is Attributes) {
                    val id = if(i.attr.id.isNotBlank()) i.attr.id else "$target-pasted-${nextId++}"
                    return inline.copy(attr = inline.attr.copy(id = id))
                }
                return inline
            }
            else -> return super.visit(i)
        }
    }

}

fun main() = makeFilter(SpecCopyPasteFilterVisitor)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/inlineDiagramFilter.kt
================================================
package org.jetbrains.kotlin.spec

import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.convert
import com.github.ajalt.clikt.parameters.options.convert
import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import ru.spbstu.diagrams.CharMatrix
import ru.spbstu.diagrams.Diagram
import ru.spbstu.diagrams.DiagramProperties
import ru.spbstu.diagrams.export.exportAsInlinePNG
import ru.spbstu.diagrams.export.exportAsInlineSVG
import ru.spbstu.diagrams.export.exportAsPNG
import ru.spbstu.diagrams.export.exportAsSVG
import ru.spbstu.pandoc.*
import ru.spbstu.pandoc.builder.InlineBuilder
import ru.spbstu.pandoc.builder.blocks
import java.io.File

private enum class ImgFormat(val suffix: String) { PNG(".png"), SVG(".svg");

    companion object {
        fun fromExtension(ext: String) = when (ext) {
            "svg" -> SVG
            "png" -> PNG
            else -> throw IllegalArgumentException("Unknown format: $ext")
        }
    }
}

class SpecInlineDiagramFilterVisitor(
    val defaultFormat: String?,
    val format: Format,
    val imageDirectory: File?,
    val embed: Boolean
) : PandocVisitor() {
    override fun visit(b: Block.CodeBlock): Block {
        if ("diagram" !in b.attr.classes) return super.visit(b)

        val props = b.attr.propertiesMap
        val altText = props["alt-text"]
        val imageFormat = props["format"] ?: defaultFormat ?: "svg"

        // this is a hack, but for some reason the same svg is much smaller in HTML than in LaTeX
        val scaling = if (format.isHTML()) 0.7 else 0.35

        val dprops = DiagramProperties(
                fontSpec = "Fira Mono;Consolas;Monospaced",
                textScale = 1.5,
                diagramScale = scaling
        )
        val diag = Diagram.fromMatrix(
                CharMatrix.read(b.text.reader().buffered()),
                dprops
        )

        return blocks {
            div {
                clazz = "diagram"
                id = b.attr.id
                plain {
                    renderToFile(
                        ImgFormat.fromExtension(imageFormat),
                        diag,
                        altText,
                        imageDirectory,
                        embed,
                        format
                    )
                }
            }
        }.first()
    }
}

private val htmlFormats = setOf("html", "html4", "html5", "revealjs", "s5", "slideous", "slidy")

private fun InlineBuilder.renderToFile(
    imageFormat: ImgFormat,
    diag: Diagram,
    altText: String?,
    imageDirectory: File?,
    embed: Boolean,
    format: Format
) {
    if (format.isHTML() && embed) {
        when(imageFormat) {
            ImgFormat.SVG -> rawInline(format = Format.HTML) {
                "<img src='${ exportAsInlineSVG(diag) }' />"
            }
            ImgFormat.PNG -> rawInline(format = Format.HTML) {
                "<img src='${ exportAsInlinePNG(diag) }' />"
            }
        }
        return
    }
    val file = File.createTempFile(/*prefix*/ "tmp", /*suffix*/ imageFormat.suffix, /*directory*/ imageDirectory)

    when (imageFormat) {
        ImgFormat.SVG -> exportAsSVG(diag, file)
        ImgFormat.PNG -> exportAsPNG(diag, file)
    }

    image(Target(file.absolutePath, altText ?: file.absolutePath))
}

private object Main : CliktCommand() {
    private val format: Format by argument("Pandoc output format").convert { Format(it) }
    private val imageDirectory: File? by option().convert { File(it) }
    private val embed: Boolean by option().flag()
    private val defaultFormat: String? by option()

    override fun run() {
        makeFilter(SpecInlineDiagramFilterVisitor(defaultFormat, format, imageDirectory, embed))
    }
}

fun main(args: Array<String>) = Main.main(args)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/inlineKatex.kt
================================================
package org.jetbrains.kotlin.spec

import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.convert
import com.github.ajalt.clikt.parameters.options.convert
import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.options.required
import com.zaxxer.nuprocess.NuAbstractProcessHandler
import com.zaxxer.nuprocess.NuProcess
import com.zaxxer.nuprocess.NuProcessBuilder
import com.zaxxer.nuprocess.NuProcessHandler
import ru.spbstu.pandoc.*
import java.io.File
import java.nio.ByteBuffer
import java.util.concurrent.CompletableFuture
import java.util.concurrent.TimeUnit

class InlineKatex(val katexBinary: String?) : PandocVisitor() {
    val katexCache: MutableMap<String, Inline> = mutableMapOf()

    fun katex(text: String, display: Boolean): Inline {
        val stdOut = StringBuilder()

        val exitCode = CompletableFuture<Int>()

        val processListener = object : NuAbstractProcessHandler() {
            override fun onStderr(buffer: ByteBuffer, closed: Boolean) {
                System.err.append(Charsets.UTF_8.decode(buffer))
                super.onStderr(buffer, closed)
            }

            override fun onStdout(buffer: ByteBuffer, closed: Boolean) {
                stdOut.append(Charsets.UTF_8.decode(buffer))
                super.onStdout(buffer, closed)
            }

            override fun onExit(statusCode: Int) {
                exitCode.complete(statusCode)
            }
        }

        val npx = katexBinary ?: "katex"
        val katex = if(display) NuProcessBuilder(processListener, npx, "--display-mode")
        else NuProcessBuilder(processListener, npx)

        with(katex.start()) {
            writeStdin(Charsets.UTF_8.encode(text))
            closeStdin(false)
            exitCode.get()

            return Inline.RawInline(Format.HTML, "$stdOut")
        }
    }

    override fun visit(i: Inline.Math): Inline {
        val display = i.type == MathType.DisplayMath

        return katexCache.getOrPut(i.text) { katex(i.text, display) }
    }
}

private object DoNothing: PandocVisitor() {
    override fun visit(doc: Pandoc): Pandoc = doc
}

private object InlineKatexFilter : CliktCommand() {
    val format: Format by argument("Pandoc output format").convert { Format(it) }
    val disableStaticMath by option().flag("--enable-static-math")
    val katex by option()

    val isHTML get() = format.isHTML()

    override fun run() {
        if(isHTML && !disableStaticMath) makeFilter(InlineKatex(katexBinary = katex))
        else makeFilter(DoNothing)
    }
}

fun main(args: Array<String>) = InlineKatexFilter.main(args)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/markSentencesFilter.kt
================================================
package org.jetbrains.kotlin.spec

import ru.spbstu.pandoc.*

private const val SENTENCE_CLASS = "sentence"
private const val PARAGRAPH_CLASS = "paragraph"

private fun <T> Iterable<T>.breakBy(f : (T) -> Boolean): Pair<MutableList<T>, MutableList<T>> {
    val it = iterator()
    val before: MutableList<T> = mutableListOf()
    val after: MutableList<T> = mutableListOf()
    for(t in it) {
        if(f(t)) {
            after += t
            break
        }
        before += t
    }
    after.addAll(it.asSequence())
    return before to after
}

private fun <T> MutableList<T>.unconsed() = first() to subList(1, lastIndex + 1)

private val stopList = setOf(
        "e.g.", "i.e.", "w.r.t.", "ca.",
        "cca.", "etc.", "f.", "ff.",
        "i.a.", "Ph.D.", "Q.E.D.", "vs."
) // et.al. is commonly at the end of sentence => not here

private fun breakSentence(inlines: List<Inline>): Pair<List<Inline>, List<Inline>> {
    fun isEndLine(i: Inline): Boolean = when {
        i is Inline.Str
                && (i.text.endsWith(".") || i.text.endsWith("?") || i.text.endsWith("!"))
                && i.text !in stopList ->
                true
        i is Inline.LineBreak -> true
        else -> false
    }

    val (ac, bc) = inlines.breakBy(::isEndLine)
    if(bc.isEmpty()) return ac to emptyList()
    if(bc.size == 1) return inlines to emptyList()

    val (h, t_) = bc.unconsed()
    val (h2, tail) = t_.unconsed()

    when {
        h2 is Inline.Space
                || h2 is Inline.SoftBreak
                || (h2 is Inline.Span && SENTENCE_CLASS in h2.attr.classes)
                || (h == Inline.Str(".")) && h2 is Inline.Str && h2.text.startsWith(")") -> {
            ac += h
            ac += h2
            return ac to tail
        }
        (h is Inline.Str) && h.text.startsWith(".)")
                || (h is Inline.LineBreak) && h2 is Inline.Str && h2.text.startsWith(".") -> {
            ac += h
            tail.add(0, h2)
            return ac to tail
        }
        else -> {
            tail.add(0, h2)
            val (dc, ec) = breakSentence(tail)
            return (ac + h + dc) to ec
        }
    }
}

private fun splitSentences(inlines: List<Inline>): MutableList<List<Inline>> {
    if(inlines.isEmpty()) return mutableListOf()

    var (sent, rest) = breakSentence(inlines)
    val res = mutableListOf(sent)
    while(rest.isNotEmpty()) {
        val (sent_, rest_) = breakSentence(rest)
        rest = rest_
        res += sent_
    }

    return res
}

private fun process(inlines: List<Inline>): List<Inline> =
        splitSentences(inlines).map { Inline.Span(Attr(classes = listOf(SENTENCE_CLASS)), it) }

object SpecSentencesFilterVisitor : PandocVisitor() {
    override fun visit(b: Block.Para): Block {
        return Block.Div(
                Attr(classes = listOf(PARAGRAPH_CLASS)),
                listOf(b.copy(inlines = process(b.inlines)))
        )
    }

    override fun visit(b: Block.Plain): Block {
        return b.copy(inlines = process(b.inlines))
    }

    override fun visit(b: Block.Div): Block {
        if(PARAGRAPH_CLASS in b.attr.classes) return b;
        return super.visit(b)
    }

    override fun visit(i: Inline.Span): Inline {
        if(SENTENCE_CLASS in i.attr.classes) return i
        return super.visit(i)
    }
}

fun main() = makeFilter(SpecSentencesFilterVisitor)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/mathInCodeFilter.kt
================================================
package org.jetbrains.kotlin.spec

import ru.spbstu.pandoc.*

object MathInCode : PandocVisitor() {
    override fun visit(b: Block.CodeBlock): Block {
        b.attr.classes.any { it.endsWith("+math") } || return super.visit(b)
        val newAttr = b.attr.copy(classes = b.attr.classes.map { it.replace("+math", "") })
        val codeLines = b.text.lines()
        val res = mutableListOf<Inline>()

        for(line in codeLines) {
            if("$$$" !in line) res += Inline.Code(attr = newAttr, text = line)
            else {
                for(chunk in line.split("$$$").chunked(2)) {
                    res += Inline.Code(attr = newAttr, text = chunk[0])
                    if(chunk.size > 1) {
                        res += Inline.Math(MathType.InlineMath, text = chunk[1].trimEnd().removeSuffix("$$$"))
                    }
                }
            }
            res += Inline.LineBreak
        }

        return Block.Plain(res)
    }
}

fun main() = makeFilter(MathInCode)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/processTodoFilter.kt
================================================
package org.jetbrains.kotlin.spec

import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.convert
import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import ru.spbstu.pandoc.*

private fun String.splitAt(index: Int) = substring(0, minOf(index, length)) to substring(minOf(index, length))

class SpecTodoFilterVisitor(val format: Format, val disableTODOS: Boolean) : PandocVisitor() {
    fun makeInlineTODO(contents: List<Inline>): Inline? = when {
        disableTODOS -> null
        format.isLaTeX() -> {
            Inline.Span(
                    Attr(classes = listOf("TODO")),
                    listOf(Inline.RawInline(Format.TeX, """\todo{""")) +
                            contents +
                            Inline.RawInline(Format.TeX, "}")
            )
        }
        else -> Inline.Span(Attr(), listOf(
                Inline.Span(Attr(classes = listOf("TODO")), contents),
                Inline.Span(Attr(classes = listOf("TODO-marker")), listOf(Inline.Str("*")))
        ))
    }

    fun makeBlockTODO(contents: Block): Block = when {
        disableTODOS -> Block.Null
        format.isHTML() -> Block.Div(Attr(classes = listOf("TODO")), listOf(contents))
        format.isLaTeX() ->
            Block.Div(Attr(classes = listOf("TODO")),
                    listOf(
                            Block.RawBlock(Format.TeX, """\todo[inline]{"""),
                            contents,
                            Block.RawBlock(Format.TeX, """}""")
                    )
            )
        else -> contents
    }

    override fun visit(iis: List<Inline>, @Suppress("UNUSED") token: Inline?): List<Inline> {
        val res: MutableList<Inline> = mutableListOf()
        val transformed = super.visit(iis, token)
        val it = transformed.iterator()
        for(e in it) {
            when {
                e is Inline.Str && e.text.contains("(TODO") -> {
                    val (e1, e2) = e.text.splitAt(e.text.indexOf("(TODO"))
                    if(e1.isNotEmpty()) res.add(Inline.Str(e1))
                    val interm =
                            mutableListOf<Inline>()
                    var tail: Inline? = null
                    var levels = 0
                    val app = sequenceOf(Inline.Str(e2)) + it.asSequence()
                    outer@ for(e3 in app)  {
                        if(e3 is Inline.Str) {
                            for((i, ch) in e3.text.withIndex()) {
                                when(ch) {
                                    '(' -> ++levels
                                    ')' -> if(levels <= 1){
                                        val (h, t) = e3.text.splitAt(i + 1)
                                        interm.add(Inline.Str(h))
                                        if (t.isNotEmpty()) tail = Inline.Str(t)
                                        break@outer
                                    } else --levels
                                }
                            }
                        }
                        interm.add(e3)
                    }
                    makeInlineTODO(interm)?.let { res.add(it) }
                    if(tail != null) res.add(tail)
                }
                else -> res.add(e)
            }
        }
        return res
    }

    override fun visit(b: Block.Para): Block {
        val sup = super.visit(b)
        val first = b.inlines.firstOrNull()
        if(first is Inline.Str && first.text.startsWith("TODO")) {
            if(disableTODOS) return Block.Null
            return makeBlockTODO(sup)
        }
        return sup
    }

    override fun visit(b: Block.Plain): Block {
        val sup = super.visit(b)
        val first = b.inlines.firstOrNull()
        if(first is Inline.Str && first.text.startsWith("TODO")) {
            return makeBlockTODO(sup)
        }
        return sup
    }
}

object SpecTodoFilter : CliktCommand() {
    val format: Format by argument("Pandoc output format").convert { Format(it) }
    val disableTODOS: Boolean by option().flag("--enable-todos", default = false)

    override fun run() {
        makeFilter(SpecTodoFilterVisitor(format, disableTODOS))
    }
}

fun main(args: Array<String>) = SpecTodoFilter.main(args)


================================================
FILE: docs/src/main/kotlin/org/jetbrains/kotlin/spec/splitDocument.kt
================================================
package org.jetbrains.kotlin.spec

import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.options.convert
import com.github.ajalt.clikt.parameters.options.defaultLazy
import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import kotlinx.warnings.Warnings
import ru.spbstu.pandoc.*
import ru.spbstu.pandoc.builder.BlockBuilder
import ru.spbstu.pandoc.builder.blocks
import ru.spbstu.pandoc.jackson.constructObjectMapper
import ru.spbstu.pandoc.jackson.readValue
import java.io.File

private class IdMapper(val splitLevel: Int) : PandocVisitor() {
    var currentSection: String = ""
    val entities: MutableMap<String, String> = mutableMapOf()

    override fun visit(b: Block): Block =
            super.visit(b).also {
                if (b is Attributes && b.attr.id.isNotBlank()) entities["#${b.attr.id}"] = currentSection
            }

    override fun visit(i: Inline): Inline =
            super.visit(i).also {
                if (i is Attributes && i.attr.id.isNotBlank()) entities["#${i.attr.id}"] = currentSection
            }

    override fun visit(b: Block.Header): Block {
        if (b.level <= splitLevel) currentSection = b.attr.id
        return super.visit(b)
    }
}

private class LinkFixer(splitLevel: Int, val format: String) : PandocVisitor() {
    val ids: IdMapper = IdMapper(splitLevel)
    val ext = if (format != "html") "pdf" else "html"

    override fun visit(doc: Pandoc): Pandoc {
        doc.accept(ids)
        return super.visit(doc)
    }

    override fun visit(i: Inline.Link): Inline {
        val targetId = i.target.v0
        if (targetId in ids.entities) {
            val sec = ids.entities[targetId]!!
            return i.copy(target = i.target.copy(v0 = "${sec}.${ext}${targetId}"))
        }
        return super.visit(i)
    }
}

val mapper = constructObjectMapper()

data class Section(val title: String, val number: Int?, val blocks: MutableList<Block> = mutableListOf())
data class TOCElement(val title: List<Inline>,
                      val id: String,
                      val numbered: Boolean = true,
                      val subSections: MutableList<TOCElement> = mutableListOf()) {
    fun add(level: Int, title: List<Inline>, id: String, numbered: Boolean = true): Unit = when (level) {
        0 -> subSections += TOCElement(title, id, numbered = numbered)
        else -> {
            when {
                subSections.isEmpty() -> subSections.add(TOCElement(listOf(), ""))
            }
            subSections.last().add(level - 1, title, id, numbered = numbered)
        }
    }

    fun toPandocList(): List<Block> = blocks { toPandocList(this@TOCElement) }
}

fun BlockBuilder.toPandocList(tocElement: TOCElement): Unit = with(tocElement) {
    if (title.isNotEmpty()) {
        plain {
            link(Target("#${id}", "")) {
                classes += "toc-element"
                if (!numbered) classes += "unnumbered"
                id = "toc-element-${this@with.id}"
                +title
            }
        }
    }

    if (subSections.isNotEmpty()) {
        bulletList {
            for (subSec in subSections) {
                item {
                    toPandocList(subSec)
                }
            }
        }
    }
}

class TOCMaker : PandocVisitor() {
    val fakeTop = TOCElement(listOf(), "top")

    /* this is a shallow visitor, not going below level 1 */
    override fun visit(b: Block): Block =
            @Suppress(Warnings.USELESS_CAST)
            if (b is Block.Header) visit(b as Block.Header)
            else b

    override fun visit(b: Block.Header): Block {
        fakeTop.add(b.level, b.text, b.attr.id, numbered = "unnumbered" !in b.attr.classes)
        return b
    }

    fun buildPandocList(): Block =
            fakeTop
                    .toPandocList()
                    .filterIsInstance<Block.BulletList>()
                    .first()
                    .items
                    .first()
                    .let { Block.Div(Attr(id = "TOC"), it) }
}

fun counterName(splitLevel: Int): String? = when (splitLevel) {
    1 -> "part"
    2 -> "chapter"
    3 -> "section"
    4 -> "subsection"
    5 -> "subsubsection"
    6 -> "paragraph"
    else -> null
}

fun setSectionCounterLatex(secNumber: Int, splitLevel: Int): Block {
    val counterName = counterName(splitLevel) ?: return Block.Null
    return Block.RawBlock(Format.TeX, """\setcounter{$counterName}{${secNumber - 1}}""")
}

fun setSectionCounterHtml(secNumber: Int, splitLevel: Int): Block {
    val counterName = counterName(splitLevel) ?: return Block.Null
    return Block.RawBlock(Format.HTML, """<span style="visibility: hidden; counter-reset: $counterName ${secNumber - 1};"></span>""")
}

class Splitter(val outputDirectory: File, val format: String, val generateTOC: Boolean, val splitLevel: Int = 2) : PandocVisitor() {
    override fun visit(doc: Pandoc): Pandoc {
        val linkFixer = LinkFixer(splitLevel, format)
        val newDoc = linkFixer.visit(doc)
        val generatedTOC = when {
            generateTOC -> TOCMaker()
                    .apply { visit(doc) }
                    .buildPandocList()
                    .let { linkFixer.visit(it) }
            else -> null
        }

        val blockIt = newDoc.blocks.iterator()

        val preamble = mutableListOf<Block>()
        val sections = mutableListOf<Section>()

        var secNumber = 0

        for (block in blockIt) {
            if (block is Block.Header && block.level <= splitLevel) {
                if ("unnumbered" !in block.attr.classes && block.level == splitLevel) {
                    sections.add(Section(block.attr.id, ++secNumber))
                } else {
                    sections.add(Section(block.attr.id, null))
                }

                sections.last().blocks.add(block)
                break
            }
            preamble += block
        }

        for (block in blockIt) {
            if (block is Block.Header && block.level <= splitLevel) {
                if ("unnumbered" !in block.attr.classes && block.level == splitLevel) {
                    sections.add(Section(block.attr.id, ++secNumber))
                } else {
                    sections.add(Section(block.attr.id, null))
                }
            }
            sections.last().blocks.add(block)
        }

        for ((sectionTitle, sectionNumber, sectionBlocks) in sections) {
            val secDoc = newDoc.copy(
                    blocks = blocks {
                        +preamble

                        if (generatedTOC != null) +generatedTOC

                        when {
                            sectionNumber == null -> {
                            }
                            format == "html" -> +setSectionCounterHtml(sectionNumber, splitLevel)
                            else -> +setSectionCounterLatex(sectionNumber, splitLevel)
                        }

                        +sectionBlocks
                    }
            )
            File(outputDirectory, "$sectionTitle.json").bufferedWriter().use {
                mapper.writeValue(it, secDoc)
            }
        }
        return doc // not actually a filter
    }
}

private object SplitDocument : CliktCommand() {
    val format: String by option("-f", "--format", help = "Format to use").defaultLazy { "html" }
    val outputDirectory: File by option().convert { File(it) }.defaultLazy { File(".") }
    val generateTOC: Boolean by option().flag("--toc")

    override fun run() {
        val doc: Pandoc = mapper.readValue(System.`in`)
        outputDirectory.mkdirs()
        Splitter(outputDirectory, format, generateTOC).visit(doc)
    }
}

fun main(args: Array<String>) = SplitDocument.main(args)


================================================
FILE: docs/src/md/commands.md
================================================
<#mode quote>

\newcommand{\currentKotlinMajorVersion}{\textrm{1.9}}

\newcommand{\opMathTT}[2]{%
  \expandafter\newcommand{#1}{\operatorname{\texttt{#2}}}%
}

\newcommand{\opMathIT}[2]{%
  \expandafter\newcommand{#1}{\operatorname{\mathit{#2}}}%
}

\newcommand{\opMathTEXT}[2]{%
  \expandafter\newcommand{#1}{\operatorname{\text{#2}}}%
}

\newcommand{\llbracket}{\left[\!\left[}
\newcommand{\rrbracket}{\right]\!\right]}

\newcommand{\sbn}{\mathrel{\operatorname{\stackrel{null}{<:}}}}
\newcommand{\sbnn}{\mathrel{\operatorname{\stackrel{!}{<:}}}}

\newcommand{\amp}{\mathbin{\operatorname{\&}}}
\newcommand{\hor}{\mathbin{\operatorname{|}}}

\newcommand{\sur}{\mathrel{\operatorname{\cancel{<:>}}}}
\newcommand{\notSubtype}{\mathrel{\operatorname{\cancel{<:}}}}

\newcommand{\Ss}{\mathbb{S}}

\opMathTEXT{\LUB}{LUB}
\opMathTEXT{\GLB}{GLB}

\opMathTT{\outV}{out\,}
\opMathTT{\invV}{inv\,}
\opMathTT{\inV}{in\,}

\opMathTT{\Any}{kotlin.Any}
\opMathTT{\AnyQ}{kotlin.Any?}

\opMathTT{\Nothing}{kotlin.Nothing}
\opMathTT{\NothingQ}{kotlin.Nothing?}

\opMathTT{\Unit}{kotlin.Unit}

\opMathTT{\Function}{kotlin.Function}
\opMathTT{\suspend}{suspend}
\opMathTEXT{\FunctionN}{FunctionN}
\opMathTEXT{\FT}{FT}
\opMathTEXT{\FTR}{FTR}
\opMathTEXT{\RT}{RT}

\opMathTEXT{\CSB}{CSB}

\opMathTT{\Array}{kotlin.Array}

\opMathTT{\Double}{kotlin.Double}
\opMathTT{\Float}{kotlin.Float}
\opMathTT{\Long}{kotlin.Long}
\opMathTT{\Int}{kotlin.Int}
\opMathTT{\Short}{kotlin.Short}
\opMathTT{\Byte}{kotlin.Byte}
\opMathTT{\Char}{kotlin.Char}
\opMathTT{\Boolean}{kotlin.Boolean}

\opMathTT{\Enum}{kotlin.Enum}

\opMathTEXT{\ATS}{ATS}
\opMathTEXT{\ILT}{ILT}
\opMathTEXT{\Widen}{Widen}

\opMathTEXT{\PD}{PD}
\opMathTEXT{\ND}{ND}
\opMathTEXT{\ID}{ID}

\opMathIT{\ptor}{ptor}
\opMathIT{\stor}{stor}
\opMathIT{\init}{init}
\opMathIT{\prop}{prop}
\opMathIT{\md}{md}
\opMathIT{\companionObj}{companionObj}
\opMathIT{\nested}{nested}
\opMathIT{\dataClass}{dataClass}
\opMathIT{\dataClassParam}{dp}
\opMathIT{\dataObject}{dataObject}

\opMathIT{\name}{name}
\opMathIT{\type}{type}

\opMathTEXT{\SmartCastData}{SmartCastData}
\opMathTEXT{\Expression}{Expression}
\opMathTEXT{\SmartCastType}{SmartCastType}
\opMathTEXT{\Type}{Type}
\opMathTEXT{\Nullability}{Nullability}

\newcommand{\join}{\sqcup}
\newcommand{\meet}{\sqcap}

\opMathTT{\is}{is}
\opMathTT{\notIs}{!is}
\opMathTT{\as}{as}
\opMathTT{\notAs}{!as}
\opMathTT{\eqq}{==}
\opMathTT{\notEqq}{!\!\!=}
\opMathTT{\refEqq}{===}
\opMathTT{\notRefEqq}{!\!\!==}

\opMathIT{\assume}{assume}
\opMathIT{\killDataFlow}{killDataFlow}
\opMathTT{\backedge}{backedge}
\opMathIT{\swap}{swap}
\opMathIT{\isNullable}{isNullable}
\opMathIT{\smartCastTypeOf}{smartCastTypeOf}
\opMathIT{\typeOf}{typeOf}
\opMathIT{\approxNegationType}{approxNegationType}

\opMathIT{\Assigned}{Assigned}
\opMathIT{\Unassigned}{Unassigned}

\newcommand{\coroutineSuspended}{\texttt{COROUTINE\_SUSPENDED}}


================================================
FILE: docs/src/md/dynamic_math.html
================================================
<script type="text/javascript">
    require([
        "resources/js/katex/katex.min.js"
    ], katex => {
        let render = () => {
            let mathElements = document.getElementsByClassName("math");
            let macros = [];
            for (let i = 0; i < mathElements.length; i++) {
                let texText = mathElements[i].firstChild;
                if (mathElements[i].tagName == "SPAN") {
                    katex.render(texText.data, mathElements[i], {
                        displayMode: mathElements[i].classList.contains("display"),
                        throwOnError: false,
                        macros: macros,
                        fleqn: false
                    });
                }
            }
        }

        if (document.readyState === "loading") {
            document.addEventListener("DOMContentLoaded", render);
        } else {
            render();
        }
    });
</script>


================================================
FILE: docs/src/md/epilogue.html
================================================


================================================
FILE: docs/src/md/index.md
================================================
<#mode quote>
---
title: Kotlin language specification
author:
- Marat Akhin
- Mikhail Belyaev
subtitle: Version 1.9-rfc+0.1
---

<#include "commands.md">

<#include "kotlin.core/index.md">


================================================
FILE: docs/src/md/kotlin.core/annotations.md
================================================
## Annotations

Annotations are a form of syntactically-defined metadata which may be associated with different entities in a Kotlin program.
Annotations are specified in the source code of the program and may be accessed on a particular platform using platform-specific mechanisms both by the compiler (and source-processing tools) and at runtime (using [reflection][Reflection] facilities).
Values of annotation types can also be created directly, but are usually operated on using platform-specific facilities.

> Note: before Kotlin 1.6, annotation types could not be created directly.

### Annotation values

An annotation value is a value of a special [annotation type][Annotation declarations].
An annotation type is a special kind of class type which is allowed to include read-only properties of the following types:

- [Integer types][Built-in integer types];
- [Enum types][Enum class declaration];
- [String type][`kotlin.String`];
- Other annotation types;
- [Arrays][Array types] of any type listed above.

> Important: when we say "other annotation types", we mean an annotation type cannot reference itself, either directly or indirectly.
> For example, if annotation type `A` references annotation type `B` which references an array of `A`, it is prohibited and reported as a compile-time error.

Annotation classes are not allowed to have any member functions, constructors or mutable properties.
They are also not allowed to have declared supertypes and are considered to be implicitly derived from `kotlin.Annotation`.

### Annotation retention

The retention level of an annotation declares which compilation artifacts (for a particular compiler on a particular platform) *retain* this kind of annotation.
There are the following types of retention available:

- Source retention (accessible by source-processing tools);
- Binary retention (retained in compilation artifacts);
- Runtime retention (accessible at runtime).

  > Each subsequent level inherits what is accessible on the previous levels.

For availability and particular ways of accessing the metadata specified by these annotations please refer to the corresponding platform-specific documentation.

### Annotation targets

The *target* of a particular type of annotations is the kind of program entity which this annotations may be placed on.
There are the following targets available:

- A [class declaration][Class declaration] (including annotation classes);
- An [annotation class declaration][Annotation class declaration];
- A [type parameter][Type parameters];
- A [property declaration][Property declaration];
- A [property backing field][Getters and setters];
- A [property getter][Getters and setters];
- A [property setter][Getters and setters];
- A [local property declaration][Local property declaration];
- A value parameter in [function][Function declaration] or [constructor][Constructor declaration] declaration;
- A [constructor][Constructor declaration];
- A [function declaration][Function declaration];
- A [type][Type system] usage;
- An arbitrary [expression][Expressions];
- A [Kotlin file][Scopes and identifiers];
- A [type alias declaration][Type alias].

### Annotation declarations

Annotations are declared using [annotation class declarations][Annotation class declaration].
See the corresponding section for details.

Annotations may be declared *repeatable* (meaning that the same annotation may be applied to the same entity more than once) or *non-repeatable* (meaning that only one annotation of a particular type may be applied to the same entity).

### Built-in annotations

#### `kotlin.annotation.Retention`

`kotlin.annotation.Retention` is an annotation which is only used on annotation classes to specify their annotation retention level.
It has the following single field:

* ```kotlin
  val value: AnnotationRetention = AnnotationRetention.RUNTIME
  ```

  The retention level of the annotated annotation.

`kotlin.annotation.AnnotationRetention` is an enum class with the following values (see [Annotation retention section][Annotation retention] for details):

* `SOURCE`;
* `BINARY`;
* `RUNTIME`.

#### `kotlin.annotation.Target`

`kotlin.annotation.Target` is an annotation which is only used on annotation classes to specify targets those annotations are valid for.
It has the following single field:

* ```kotlin
  vararg val allowedTargets: AnnotationTarget
  ```

  The allowed annotation targets of the annotated annotation.

`kotlin.annotation.AnnotationTarget` is an enum class with the following values (see [Annotation targets section][Annotation targets] for details):

* `CLASS`;
* `ANNOTATION_CLASS`;
* `TYPE_PARAMETER`;
* `PROPERTY`;
* `FIELD`;
* `LOCAL_VARIABLE`;
* `VALUE_PARAMETER`;
* `CONSTRUCTOR`;
* `FUNCTION`;
* `PROPERTY_GETTER`;
* `PROPERTY_SETTER`;
* `TYPE`;
* `EXPRESSION`;
* `FILE`;
* `TYPEALIAS`.

#### `kotlin.annotation.Repeatable`

`kotlin.annotation.Repeatable` is an annotation which is only used on annotation classes to specify whether this particular annotation is repeatable.
Annotations are non-repeatable by default.

#### `kotlin.RequiresOptIn` / `kotlin.OptIn`

`kotlin.RequiresOptIn` is an annotation class with two fields:

* ```kotlin
  val message: String = ""
  ```

  The message describing the particular opt-in requirements.

* ```kotlin
  val level: Level = Level.ERROR
  ```

  The severity level of the experimental status with two possible values: `Level.WARNING` and `Level.ERROR`.

This annotation is used to introduce implementation-defined experimental language or standard library features.

`kotlin.OptIn` is an annotation class with a single field:

* ```kotlin
  vararg val markerClass: KClass<out Annotation>
  ```

  The classes which this annotation allows to use.

This annotation is used to explicitly mark declarations which use experimental features marked by `kotlin.RequiresOptIn`.

It is implementation-defined how this annotation is processed.

> Note: before Kotlin 1.4.0, there were two other built-in annotations: `@Experimental` (now replaced by `@RequiresOptIn`) and `@UseExperimental` (now replaced by `@OptIn`) serving the same purpose which are now deprecated.

#### `kotlin.Deprecated` / `kotlin.ReplaceWith`

`kotlin.Deprecated` is an annotation class with the following fields:

* ```kotlin
  val message: String
  ```

  A message supporting the deprecation.

* ```kotlin
  val replaceWith: ReplaceWith = ReplaceWith("")
  ```

  An optional replacement for the deprecated code.

* ```kotlin
  val level: DeprecationLevel = DeprecationLevel.WARNING
  ```

  The deprecation level with three possible values: `DeprecationLevel.WARNING`, `DeprecationLevel.ERROR` and `DeprecationLevel.HIDDEN`.

`kotlin.ReplaceWith` is itself an annotation class containing the information on how to perform the replacement in case it is provided.
It has the following fields:

* ```kotlin
  val expression: String
  ```

  The replacement code.

* ```kotlin
  vararg val imports: String
  ```

  An array of imports needed for the replacement code to work correctly.

`kotlin.Deprecated` is a built-in annotation supporting the deprecation cycle for declarations: marking some declarations as outdated, soon to be replaced with other declarations, or not recommended for use.
It is implementation-defined how this annotation is processed, with the following recommendations:

* Attempting to use a declaration with deprecation level of `DeprecationLevel.WARNING` should produce a compile-time warning;
* Attempting to use a declaration with deprecation level of `DeprecationLevel.ERROR` should produce a compile-time error.

#### `kotlin.Suppress`

`kotlin.Suppress` is an annotation class with the following single field:

* ```kotlin
  vararg val names: String
  ```

  The names of features this annotation is suppressing.

`kotlin.Suppress` is used to optionally mark any piece of code as suppressing some language feature, such as a compiler warning, an IDE mechanism or a language feature.
The names of features which one can suppress with this annotation are implementation-defined, as is the processing of this annotation itself.

#### `kotlin.SinceKotlin`

`kotlin.SinceKotlin` is an annotation class with the following single field:

* ```kotlin
  val version: String
  ```

  The version of Kotlin language.

`kotlin.SinceKotlin` is used to mark a declaration which is only available since a particular version of the language.
These mostly refer to standard library declarations.
It is implementation-defined how this annotation is processed.

#### `kotlin.UnsafeVariance`

`kotlin.UnsafeVariance` is an annotation class with no fields which is only applicable to types.
Any type instance marked by this annotation explicitly states that the [variance][Type parameter variance] errors arising for this particular type instance are to be ignored by the compiler.

#### `kotlin.DslMarker`

`kotlin.DslMarker` is an annotation class with no fields which is applicable only to other annotation classes.
An annotation class annotated with `kotlin.DslMarker` is marked as a marker of a specific DSL (domain-specific language).
Any type annotated with such a marker is said to belong to that specific DSL.
This affects [overload resolution][Overload resolution] in the following way: no two implicit receivers with types belonging to the same DSL are available in the same scope.
See [Overload resolution section][Receivers] for details.

#### `kotlin.PublishedApi`

`kotlin.PublishedApi` is an annotation class with no fields which is applicable to any declaration.
It may be applied to any declaration with `internal` visibility to make it available to `public` `inline` declarations.
See [Declaration visibility section][Declaration visibility] for details.

#### `kotlin.BuilderInference`

Marks the annotated function of function argument as eligible for [builder-style type inference][Builder-style type inference].
See corresponding section for details.

> Note: as of Kotlin $\currentKotlinMajorVersion{}$, this annotation is experimental and, in order to use it in one's code, one must explicitly enable it using opt-in annotations given above.
> The particular marker class used to perform this is implementation-defined.

#### `kotlin.RestrictSuspension`

In some cases we may want to limit which [suspending functions] can be called in another suspending function with an extension receiver of a specific type; i.e., if we want to provide a coroutine-enabled DSL, but disallow the use of arbitrary suspending functions.
To do so, the type `T` of that extension receiver needs to be annotated with `kotlin.RestrictSuspension`, which enables the following limitations.

* Suspending functions with an extension receiver of type `T` are restricted from calling other suspending functions besides those accessible on this receiver.
* Suspending functions of type `T` can be called only on an extension receiver.

#### `kotlin.OverloadResolutionByLambdaReturnType`

This annotation is used to allow using lambda return type to refine [function applicability][Determining function applicability for a specific call] during [overload resolution].
Further details are available in the [corresponding section][Using lambda return type to refine function applicability].

> Note: as of Kotlin $\currentKotlinMajorVersion{}$, this annotation is experimental and, in order to use it in one's code, one must explicitly enable it using opt-in annotations given above.
> The particular marker class used to perform this is implementation-defined.


================================================
FILE: docs/src/md/kotlin.core/builtins.md
================================================
## Built-in types and their semantics

Kotlin has several built-in classifier types, which are important for the rest of this document.
Some information about these types is given in the [type system section][Built-in types], here we extend it with additional non-type-system-relevant details.

> Note: these types may have regular declarations in the standard library, but they also introduce semantics not representable via Kotlin source code.

In this section we describe these types and their semantics.

> Note: this section is not meant to be a detailed description of all types available in the standard library, for that please refer to the standard library documentation.

### `kotlin.Any` {#kotlin.any-builtins}

Besides being the [unified supertype][`kotlin.Any`-typesystem] of all non-nullable types, $\Any$ must also provide the following methods.

- ```kotlin
  public open operator fun equals(other: Any?): Boolean
  ```

    Returns `true` iff a value is equal to some other value.
    Implementations of `equals` must satisfy the properties of reflexivity (`x.equals(x)` is always true), symmetry (`x.equals(y) == y.equals(x)`), transitivity (if `x.equals(y)` is true and `y.equals(z)` is true, `x.equals(z)` is also true) and consistency (`x.equals(y)` should not change its result between multiple invocations).
    A non-null value also must never be considered equal to `null`, i.e., `x.equals(null)` must be `false`.

- ```kotlin
  public open fun hashCode(): Int
  ```

    Returns the hash code for a value.
    Implementations of `hashCode` must satisfy the following property: if two values are equals w.r.t. `equals`, `hashCode` must consistently produce the same result.

- ```kotlin
  public open fun toString(): String
  ```
    
    Returns a string representation of a value.

[`kotlin.Any`-typesystem]: #kotlin.any-typesystem

### `kotlin.Nothing` {#kotlin.nothing-builtins}

$\Nothing$ is an [uninhabited type][`kotlin.Nothing`-typesystem], which means the evaluation of an expression with $\Nothing$ type can never complete normally.
Therefore, it is used to mark special situations, such as

* non-terminating expressions
* exceptional control flow
* control flow transfer

Further details about how $\Nothing$ should be handled are available [here][Control- and data-flow analysis] and [here][Type inference].

[`kotlin.Nothing`-typesystem]: #kotlin.nothing-typesystem

### `kotlin.Unit`

$\Unit$ is a unit type, i.e., a type with only one value $\Unit$; all values of type $\Unit$ should reference the same underlying $\Unit$ object.
It is somewhat similar in purpose to `void` return type in other programming languages in that it signifies an *absence of a value* (i.e. the returned type for a function returning nothing), but is different in that there is, in fact, a single value of this type.

### `kotlin.Boolean`

`kotlin.Boolean` is the boolean logic type of Kotlin, representing a value which may be either `true` or `false`.
It is the type of [boolean literals][Boolean literals] as well as the type returned or expected by some built-in Kotlin operators.

### Built-in integer types {#built-in-integer-types-builtins}

Kotlin has several built-in classifier types, which represent signed integer numbers of different bit size.
These types are important w.r.t. [type system][Built-in integer types-typesystem] and [integer literals][Integer literals].
Every built-in integer type `I` is a subtype of  [`kotlin.Comparable<I>`][`kotlin.Comparable`].

The signed integer types are the following.

* `kotlin.Int`
* `kotlin.Short`
* `kotlin.Byte`
* `kotlin.Long`

> Note: Kotlin does not have a built-in arbitrary-precision integer type.

> Note: Kotlin does not have any built-in unsigned integer types.

TODO([Kotlin 1.3+, Experimental] Add unsigned types)

These types may or may not have different runtime representations, depending on the used platform and/or implementation.
Consult the specific platform reference for further details.

`kotlin.Int` is the type of integer numbers that is required to be able to hold the values at least in the range from $-2^{31}$ to $2^{31} - 1$.
If an arithmetic operation on `kotlin.Int` results in arithmetic overflow, the result is unspecified.

`kotlin.Short` is the type of integer numbers that is required to be able to hold the values at least in the range from $-2^{15}$ to $2^{15} - 1$.
If an arithmetic operation on `kotlin.Short` results in arithmetic overflow, the result is unspecified.

`kotlin.Byte` is the type of integer numbers that is required to be able to hold the values at least in the range from $-2^{7}$ to $2^{7} - 1$.
If an arithmetic operation on `kotlin.Byte` results in arithmetic overflow, the result is unspecified.

`kotlin.Long` is the type of integer numbers that is required to be able to hold the values at least in the range from $-2^{63}$ to $2^{63} - 1$.
If an arithmetic operation on `kotlin.Long` results in arithmetic overflow, the result is unspecified.

> Note: by "arithmetic overflow" we assume both positive and negative integer overflows.   

> Important: a platform implementation may specify behaviour for an arithmetic overflow.

[Built-in integer types-typesystem]: #built-in-integer-types-typesystem

#### Integer type widening

In [overload resolution][Overload resolution], we actually have a priority between built-in integer types which is very similar to a [subtyping] relation between these types; however, this priority is important only w.r.t. overload resolution and does not entail any actual subtyping between built-in integer types.

In order to introduce this priority we describe a type transformation called *widening* of integer types.
$\Widen(T)$ for a built-in integer type $T$ is defined as follows:

- $\Widen(\Int) = \Int \amp \Short \amp \Byte \amp \Long$
- $\Widen(\Short) = \Short \amp \Byte$
- $\Widen(T) = T$ for any other $T$

> Informally: $\Widen$ means, for the purposes of overload resolution, $\Int$ is preferred over any other built-in integer type and $\Short$ is preferred to $\Byte$.
> Using $\Widen$, we can reduce this priority to subtyping: $T$ is more preferred than $U$ if $\Widen(T) <: \Widen(U)$; this scheme allows to handle built-in integer types transparently when selecting the [most specific overload candidate][Algorithm of MSC selection].
>
> For example, consider the following two functions:
>
> ```kotlin
> fun foo(value: Int) = 1
> fun foo(value: Short) = 2
> 
> ...
> 
> foo(2)
> ```
> 
> As the integer literal 2 has a type that is applicable for both versions of `foo` (see [Overload resolution section][Overload resolution] for details) and the types `kotlin.Int` and `kotlin.Short` are not related w.r.t. subtyping, it would not be possible to select a more specific candidate out of the two.
> However, if we consider $\Widen(\Int)$ and $\Widen(\Short)$ respectively as the types of `value`, first candidate becomes more specific than the second, because $\Widen(\Int) <: \Widen(\Short)$.

### Built-in floating point arithmetic types

There are two built-in classifier types which represent floating-point numbers: `kotlin.Float` and `kotlin.Double`.
These types may or may not have different runtime representations, depending on the used platform and/or implementation.
Consult the specific platform reference for further details.

`kotlin.Float` is the type of floating-point number that is able to contain all the numbers as a [IEEE 754][IEEE754] single-precision binary floating number with the same precision.
`kotlin.Float` is a subtype of  [`kotlin.Comparable<kotlin.Float>`][`kotlin.Comparable`].

`kotlin.Double` is the type of floating-point number that is able to contain all the numbers as a [IEEE 754][IEEE754] double-precision binary floating number with the same precision.
`kotlin.Double` is a subtype of  [`kotlin.Comparable<kotlin.Double>`][`kotlin.Comparable`].

TODO([Kotlin.JVM] Specify IEEE 754 quirks w.r.t. smart casts, cc @dmitry.petrov)

Platform implementations may give additional information on how these types are represented on a particular platform.

[IEEE754]: https://ieeexplore.ieee.org/document/8766229

### `kotlin.Char`

`kotlin.Char` is the built-in classifier type which represents a single Unicode symbol in [UCS-2][UCS-2] character encoding.
It is the type of [character literals][Character literals].

> Important: a platform implementation may *extend* the supported character encodings, e.g., to UTF-16.

### `kotlin.String`

`kotlin.String` is the built-in classifier type which represents a sequence of Unicode symbol in [UCS-2][UCS-2] character encoding.
It is the type of the result of [string interpolation][String interpolation expressions].

> Important: a platform implementation may *extend* the supported character encodings, e.g., to UTF-16.

[UCS-2]: https://standards.iso.org/ittf/PubliclyAvailableStandards/c069119_ISO_IEC_10646_2017.zip

### `kotlin.Enum`

`kotlin.Enum<T>` is the built-in parameterized classifier type which is used as a superclass for all [enum classes][Enum class declaration]: every enum class `E` is implicitly a subtype of `kotlin.Enum<E>`.

`kotlin.Enum<T>` has the following characteristics.

* `kotlin.Enum<T>` is a subtype of [`kotlin.Comparable<T>`][`kotlin.Comparable`]

`kotlin.Enum<T>` provides the following properties.

* ```kotlin
  public final val name: String
  ```

    Contains the name of this enumeration constant, exactly as declared in its declaration.

* ```kotlin
  public final val ordinal: Int
  ```
  
    Contains the ordinal of this enumeration constant, i.e., its position in the declaration, starting from zero.

`kotlin.Enum<T>` provides the following member functions.

* ```kotlin
  public override final fun compareTo(other: T): Int
  ```
  
    The implementation of `kotlin.Comparable`.
    The result of `a.compareTo(b)` for enum class instances `a` and `b` is equivalent to `a.ordinal.compareTo(b.ordinal)`.

* ```kotlin
  public override final fun equals(other: Any?): Boolean
  ```

* ```kotlin
  public override final fun hashCode(): Int
  ```

    These member functions are defined to their default behaviour: only the same entry of an enum class is equal to itself and no other object.
    Hash implementation is required to be consistent, but unspecified.

    > Note: the presence of these final member functions ensures the semantics of equality and comparison for the enumeration objects, as they cannot be overridden by the user.

* ```kotlin
  protected final fun clone(): Any
  ```
  
    Throws an unspecified exception.
  
    > Note: the `clone()` implementation throws an exception, as enumeration objects cannot be copied and on some platforms `clone` function serves for copying.

### Built-in array types

`kotlin.Array<T>` is the built-in parameterized classifier type which is used to represent an indexed fixed-size collection of elements of type `T`.

It is final (i.e., cannot be inherited from) and has the following public constructor.

* ```kotlin
  public inline constructor(size: Int, init: (Int) -> T)
  ```
  
    Creates a new array with the specified size, where each element is calculated by calling the specified `init` function with the corresponding element's index.
    The function `init` is called for each array element sequentially starting from the first one.
    This constructor is special in two ways: first, it is `inline` and inline constructors are not generally allowed in Kotlin.
    Second, it is required for the parameter `T` to be instantiated with a [runtime-available type][Runtime-available types].

`kotlin.Array<T>` provides the following methods and properties.

* ```kotlin
  public operator fun get(index: Int): T
  ```

    Returns the array element at the specified index.
    If the [index] is out of bounds of this array, throws an `IndexOutOfBoundsException`.

* ```kotlin
  public operator fun set(index: Int, value: T): Unit
  ```

    Sets the array element at the specified index to the specified value.
    If the [index] is out of bounds of this array, throws an `IndexOutOfBoundsException`.

* ```kotlin
  public val size: Int
  ```

    Returns the array size.

* ```kotlin
  public operator fun iterator(): Iterator<T>
  ```
  
    Creates an [iterator][Iterator types] for iterating over the elements of the array.

#### Specialized array types

In addition to the general `kotlin.Array<T>` type, Kotlin also has the following specialized array types:

* `kotlin.DoubleArray` (for `kotlin.Array<kotlin.Double>`)
* `kotlin.FloatArray` (for `kotlin.Array<kotlin.Float>`)
* `kotlin.LongArray` (for `kotlin.Array<kotlin.Long>`)
* `kotlin.IntArray` (for `kotlin.Array<kotlin.Int>`)
* `kotlin.ShortArray` (for `kotlin.Array<kotlin.Short>`)
* `kotlin.ByteArray` (for `kotlin.Array<kotlin.Byte>`)
* `kotlin.CharArray` (for `kotlin.Array<kotlin.Char>`)
* `kotlin.BooleanArray` (for `kotlin.Array<kotlin.Boolean>`)

These array types are similar to the corresponding `kotlin.Array<T>` type; i.e., `kotlin.IntArray` has the same methods and properties as `kotlin.Array<Int>`, with the following changes.

* ```kotlin
  public constructor(size: Int)
  ```

    Creates a new array with the specified size, where each element is set to the corresponding built-in type default value.

    > Note: default values are platform-specific.

* ```kotlin
  public operator fun iterator(): {TYPE}Iterator
  ```
  
    Creates a [specialized iterator][Specialized iterator types] for iterating over the elements of the array.

### Iterator types

`kotlin.Iterator<out T>` is the built-in parameterized classifier type which is used to represent a sequence of elements of type `T`, allowing for sequential access to these elements.

It provides the following methods.

* ```kotlin
  public operator fun next(): T
  ```

    Returns the next element in the sequence.

* ```kotlin
  public operator fun hasNext(): Boolean
  ```
  
    Returns `true` if the sequence has more elements.

#### Specialized iterator types

Specialized iterator types are iterator types used for [specialized array types][Specialized array types].
They inherit `kotlin.Iterator<out T>` for their type (i.e., `kotlin.CharIterator` inherits `kotlin.Iterator<Char>`) and provide the following methods.

* ```kotlin
  public operator fun next{TYPE}(): {TYPE}
  ```

    Returns the next element in the sequence as a specific type.
  
    > Note: this additional method allows the compiler and/or developer to avoid unneeded platform-specific boxing/unboxing conversions.

### `kotlin.Throwable`

`kotlin.Throwable` is the built-in classifier type that is the base type of all [exception types][Exceptions].
Any value that is used in a [`throw` expression][Throw expressions] must have a static type that is a subtype of `kotlin.Throwable`.
Any type that is used in a `catch` part of the [`try` expression][Try-expressions] must be a subtype of (or equal to) `kotlin.Throwable`.

It provides at least the following properties:

* ```kotlin
  public val message: String?
  ```
  
  An optional message depicting the cause of the throw.
  
* ```kotlin
  public val cause: Throwable?
  ```
  
  An optional other value of type `kotlin.Throwable` allowing for nested throwables to be constructed.

Other members may exist, please refer to the standard library documentation for details.
No subtype of `kotlin.Throwable` is allowed to have type parameters.
Declaring such a type is a compile-time error.

### `kotlin.Comparable`

`kotlin.Comparable<in T>` is a built-in parameterized type which represents values that may be compared for total ordering.
It provides the following member function:

```kotlin
public operator fun compareTo(other: T): Int
```

This function is used to implement [comparison operators][Comparison expressions] through [overloadable operator convention][Operator overloading] for standard library classes.

> Note: a type is not required to be a subtype of `kotlin.Comparable` in order to implement total ordering operations

### `kotlin.Function` {#kotlin.function-builtins}

`kotlin.Function<out R>` is the base classifier type of all [function types][Function types].
See the relevant section for details.

### Built-in annotation types

Kotlin has a number of built-in [annotation types][Annotations], which are covered in more detail [here][Built-in annotations].

### Reflection support builtin types

#### `kotlin.reflect.KClass`

`kotlin.reflect.KClass<T: Any>` is the class used to represent runtime type information for [runtime-available classifier types][Runtime-available types].
It is also used in platform-specific reflection facilities.

This is the type of [class literals][Class literals].
This type is required to introduce `equals` and `hashCode` member function implementations (see [`kotlin.Any`][`kotlin.Any`]) that allow for comparison and hashing of runtime type information, e.g., that class literals are equal if they represent the same runtime type and not equal otherwise.
Platform definitions, as well as particular implementations, may introduce additional members for this type.

#### `kotlin.reflect.KCallable`

`kotlin.reflect.KCallable<out R>` is the class used to represent runtime information for callables (i.e. properties and functions).
It is mainly used as base type for other types described in this section.
It provides at least the following property:

```kotlin
public val name: String
```

This property contains the name of the callable.
Other members or base types for this class may be provided by platform and/or implementation.

#### `kotlin.reflect.KProperty`

`kotlin.reflect.KProperty<out R>` is the class used to represent runtime information for [properties][Property declaration].
It is the base type of [property references][Callable references].
This type is used in [property delegation][Delegated property declaration].
`kotlin.reflect.KProperty<R>` is a subtype of `kotlin.reflect.KCallable<R>`.
Other members or base types for this class may be provided by platform and/or implementation.

#### `kotlin.reflect.KFunction`

`kotlin.reflect.KFunction<out R>` is the class used to represent runtime information for [functions][Function declaration].
It is the base type of [function references][Callable references].
`kotlin.reflect.KFunction<R>` is a subtype of `kotlin.reflect.KCallable<R>` and `kotlin.Function<R>`.
Other members or base types for this class may be provided by platform and/or implementation.



================================================
FILE: docs/src/md/kotlin.core/cdfa.md
================================================
## Control- and data-flow analysis

Several Kotlin features such as [variable initialization analysis] and [smart casting analysis] require performing control- and data-flow analyses.
This section describes them and their applications.

### Control flow graph

We define all control-flow analyses for Kotlin on a classic model called a control-flow graph (CFG).
A CFG of a program is a graph which loosely defines all feasible paths the flow of a particular program can take during execution.
All CFGs given in this section are *intraprocedural*, meaning that they describe the flow inside a *single* function, not taking function calls into account.
CFG may, however, include multiple function bodies if said functions are *declared* inside each other (as is the case for [lambdas][Lambda literals]).

The following sections describe CFG *fragments* associated with a particular Kotlin code construct.
These fragments are introduced using visual notation rather than relational notation to simplify the understanding of the graph structure.
To represent intermediate values created during computation, we use *implicit registers*, denoted `$1`, `$2`, `$3`, etc.
These are considered to be unique in each CFG fragment (assigning the same register twice in the same CFG may only occur in unrelated program paths) and in the complete CFG, too.
The numbers given are only notational.

We introduce special `eval` nodes, represented in *dashed lines*, to connect CFG fragments into bigger fragments.
`eval x` here means that this node must be replaced with the whole CFG fragment associated with `x`.
When this replacement is performed, the value produced by `eval` is the same value that the meta-register `$result` holds in the corresponding fragment.
All incoming edges of a fragment are connected to the incoming edges of the `eval` node, while all outgoing edges of a fragment are connected to the outgoing edges of the `eval` node.
It is important, however, that, if such edges are absent either in the fragment or in the `eval` node, they (edges) are removed from the CFG.

We also use the `eval b` notation where `b` is not a single statement, but rather a [control structure body][Code blocks].
The fragment for a control structure body is the sequence of fragments for its statements, connected in the program order.

Some of the fragments have two kinds of outgoing edges, labeled `t` and `f` on the pictures.
In a similar fashion, some `eval` nodes have two outgoing edges with the same labels.
If such a fragment is inserted into such a node, only edges with matching labels are merged into each other.
If either the fragment or the node have only unlabeled outgoing edges, the process is performed same as above.

For some types of analyses, it is important which boolean conditions hold on a control flow path.
We use special `assume` nodes to introduce these conditions.
`assume x` means that boolean condition `x` is always `true` when program flow passes through this particular node.

Some nodes are *labeled*, similarly to how statements may be labeled in Kotlin.
Labeled nodes are considered CFG-unique and are handled as follows: if a fragment mentions a particular labeled node, this node is the same as any other node with this label in the complete CFG (i.e., a singular actual node is shared between all its labeled references).
This is important when building graphs representing loops.

There are two other special kinds of nodes: `unreachable` nodes, signifying unreachable code, and `backedge` nodes, important for some kinds of analyses.

#### Expressions {#expressions-cdfa}

Simple expressions, like literals and references, do not affect the control-flow of the program in any way and are irrelevant w.r.t. CFG.

##### Function calls and operators

> Note: we do not consider [operator calls][Operator overloading] as being different from function calls, as they are just special types of function calls.
> Henceforth, they are not treated separately.

```kotlin
x.f(arg1,..., argN)
```

```diagram
               +
               v
      +~~~~~~~~+~~~~~~~~+
      :                 :
      :   $2 = eval x   :
      :                 :
      +~~~~~~~~+~~~~~~~~+
               |
               v
     +~~~~~~~~~+~~~~~~~~~~+
     :                    :
     :   $1 = eval arg1   :
     :                    :
     +~~~~~~~~~+~~~~~~~~~~+
               |
               v
              ...
               +
               v
     +~~~~~~~~~+~~~~~~~~~~+
     :                    :
     :   $N = eval argN   :
     :                    :
     +~~~~~~~~~+~~~~~~~~~~+
               |
               v
+--------------+----------------+
|                               |
|   $result = $2.f($1,...,$N)   |
|                               |
+--------------+----------------+
               |
               v
```

```kotlin
f(arg1,..., argN)
```

```diagram
              +
              v
    +~~~~~~~~~+~~~~~~~~~~+
    :                    :
    :   $1 = eval arg1   :
    :                    :
    +~~~~~~~~~+~~~~~~~~~~+
              |
              v
             ...
              +
              v
    +~~~~~~~~~+~~~~~~~~~~+
    :                    :
    :   $N = eval argN   :
    :                    :
    +~~~~~~~~~+~~~~~~~~~~+
              |
              v
+-------------+--------------+
|                            |
|   $result = f($1,...,$N)   |
|                            |
+-------------+--------------+
              |
              v
```

##### Conditional expressions

> Note: to simplify the notation, we consider only `if`-expressions with both branches present.
> Any `if`-statement in Kotlin may be trivially turned into such an expression by replacing the missing `else` branch with a `kotlin.Unit` object expression.

```kotlin
if(c) tt else ff
```

```diagram
                   +
                   v
          +~~~~~~~~+~~~~~~~~+
          :                 :
          :   $1 = eval c   :
          :                 :
          +~~~~~+~~~~~+~~~~~+
             t  |     |  f
         +------+     +-------+
         v                    v
 +-------+-------+    +-------+--------+
 |               |    |                |
 |   assume $1   |    |   assume !$1   |
 |               |    |                |
 +-------+-------+    +-------+--------+
         |                    |
         v                    v
+~~~~~~~~+~~~~~~~~+  +~~~~~~~~+~~~~~~~~+
:                 :  :                 :
:   $2 = eval tt  :  :   $2 = eval ff  :
:                 :  :                 :
+~~~~~~~~+~~~~~~~~+  +~~~~~~~~+~~~~~~~~+
         |                    |
         +-------+    +-------+
                 v    v
          +------+----+------+
          |                  |
          |   $result = $2   |
          |                  |
          +---------+--------+
                    |
                    v
```

```kotlin
when { 
    c1 -> b1
    else -> bE
}
```

```diagram
                    +
                    v
          +~~~~~~~~~+~~~~~~~~+
          :                  :
          :   $1 = eval c1   :
          :                  :
          +~~~~~~+~~~~~+~~~~~+
              t  |     |  f
         +-------+     +-------+
         v                     v
 +-------+-------+     +-------+--------+
 |               |     |                |
 |   assume $1   |     |   assume !$1   |
 |               |     |                |
 +-------+-------+     +-------+--------+
         |                     |
         v                     v
+~~~~~~~~+~~~~~~~~~+  +~~~~~~~~+~~~~~~~~~+
:                  :  :                  :
:   $2 = eval b1   :  :   $2 = eval bE   :
:                  :  :                  :
+~~~~~~~~+~~~~~~~~~+  +~~~~~~~+~~~~~~~~~~+
         |                    |
         +-------+     +------+
                 v     v
           +-----+-----+------+
           |                  |
           |   $result = $2   |
           |                  |
           +--------+---------+
                    |
                    v
```

> Important: we only consider `when` expressions having exactly two branches for simplicity.
> A `when` expression with more than two branches may be trivially desugared into a series of nested when expression as follows:
>
> ```kotlin
> when { 
>     <entry1>
>     <entries...>
>     else -> bE
> }
> ```
> 
> is the same as
> 
> ```kotlin
> when { 
>     <entry1>
>     else -> {
>         when {
>             <entries...>
>             else -> bE
>         }
>     }
> }
> ```

##### Boolean operators

```kotlin
!x
```

```diagram
                        +
                        v
               +~~~~~~~~+~~~~~~~~+
               :                 :
               :   $1 = eval x   :
               :                 :
               +~~~~~+~~~~~+~~~~~+
                     |     |
           +---------+     +-----------+
        t  |                           |  f
           v                           v
   +-------+-------+          +--------+-------+
   |               |          |                |
   |   assume $1   |          |   assume !$1   |
   |               |          |                |
   +-------+-------+          +--------+-------+
           |                           |
           v                           v
+----------+----------+     +----------+---------+
|                     |     |                    |
|   $result = false   |     |   $result = true   |
|                     |     |                    |
+----------+----------+     +----------+---------+
        f  |                           |  t
           v                           v
```

```kotlin
x || y
```

```diagram
                        +
                        v
               +~~~~~~~~+~~~~~~~~+
               :                 :
               :   $1 = eval x   :
               :                 :
               +~~~~~+~~~~~+~~~~~+
                     |     |
          +----------+     +-------+
       t  |                        |  f
          v                        v
  +-------+-------+       +--------+-------+
  |               |       |                |
  |   assume $1   |       |   assume !$1   |
  |               |       |                |
  +-------+-------+       +--------+-------+
          |                        |
          |                        v
          |               +~~~~~~~~+~~~~~~~~+
          |               :                 :
          |               :   $2 = eval y   :
          |               :                 :
          |               +~~~~~+~~~~~+~~~~~+
          |                     |     |
          |              +------+     +-------+
          |           t  |                    |  f
          |              v                    v
          |      +-------+-------+   +--------+-------+
          |      |               |   |                |
          |      |   assume $2   |   |   assume !$2   |
          |      |               |   |                |
          |      +-------+-------+   +--------+-------+
          |              |                    |
          |   +----------+                    |
          v   v                               v
+---------+---+------+             +----------+----------+
|                    |             |                     |
|   $result = true   |             |   $result = false   |
|                    |             |                     |
+---------+----------+             +----------+----------+
       t  |                                   |  f
          v                                   v
```

```kotlin
x && y
```

```diagram
                               +
                               v
                      +~~~~~~~~+~~~~~~~~+
                      :                 :
                      :   $1 = eval x   :
                      :                 :
                      +~~~~~+~~~~~+~~~~~+
                            |     |
                     +------+     +--------+
                  t  |                     |  f
                     v                     v
             +-------+-------+    +--------+-------+
             |               |    |                |
             |   assume $1   |    |   assume !$1   |
             |               |    |                |
             +-------+-------+    +--------+-------+
                     |                     |
                     v                     |
            +~~~~~~~~+~~~~~~~~+            |
            :                 :            |
            :   $2 = eval y   :            |
            :                 :            |
            +~~~~~+~~~~~+~~~~~+            |
                  |     |                  |
           +------+     +------+           |
        t  |                   |  f        |
           v                   v           |
   +-------+-------+   +-------+-------+   |
   |               |   |               |   |
   |   assume $2   |   |   assume !$2  |   |
   |               |   |               |   |
   +-------+-------+   +-------+-------+   |
           |                   |           |
           |                   |           |
           v                   v           v
+----------+---------+    +----+-----------+----+
|                    |    |                     |
|   $result = true   |    |   $result = false   |
|                    |    |                     |
+----------+---------+    +----------+----------+
        t  |                         |  f
           v                         v
```

##### Other expressions

```kotlin
x ?: y
```

```diagram
                             +
                             v
                    +~~~~~~~~+~~~~~~~~+
                    :                 :
                    :   $1 = eval x   :
                    :                 :
                    +~~~~~+~~~~~+~~~~~+
                          |     |
              +-----------+     +------------+
              v                              v
+-------------+------------+   +-------------+------------+
|                          |   |                          |
|   assume ($1 === null)   |   |   assume ($1 !== null)   |
|                          |   |                          |
+-------------+------------+   +-------------+------------+
              |                              |
              v                              v
     +~~~~~~~~+~~~~~~~~+              +------+------+
     :                 :              |             |
     :   $2 = eval y   :              |   $3 = $1   |
     :                 :              |             |
     +~~~~~~~~+~~~~~~~~+              +------+------+
              |                              |
              v                              |
       +------+------+                       |
       |             |                       |
       |   $3 = $2   |                       |
       |             |                       |
       +------+------+                       |
              |                              |
              |      +-----------------------+
              v      v
        +-----+------+-----+
        |                  |
        |   $result = $3   |
        |                  |
        +--------+---------+
                 |
                 v
```

```kotlin
x?.y
```

```diagram
                             +
                             v
                    +~~~~~~~~+~~~~~~~~+
                    :                 :
                    :   $1 = eval x   :
                    :                 :
                    +~~~~~+~~~~~+~~~~~+
                          |     |
              +-----------+     +------------+
              v                              v
+-------------+------------+   +-------------+------------+
|                          |   |                          |
|   assume ($1 === null)   |   |   assume ($1 !== null)   |
|                          |   |                          |
+-------------+------------+   +-------------+------------+
              |                              |
              v                              v
      +-------+-------+              +-------+-------+
      |               |              |               |
      |   $3 = null   |              |   $3 = $1.y   |
      |               |              |               |
      +-------+-------+              +-------+-------+
              |                              |
              |      +-----------------------+
              v      v
        +-----+------+-----+
        |                  |
        |   $result = $3   |
        |                  |
        +--------+---------+
                 |
                 v
```

```kotlin
try { a... }
catch (e1: T1) { b1... }
...
catch (eN: TN) { bN... }
finally { c... }
```

```diagram
   +                    +                    +       +
   |                    v                    |       |
   |           +~~~~~~~~+~~~~~~~~+           |       |
   |           :                 :           |       |
   |           :   $1 = eval a   :           |       |
   |           :                 :           |       |
   |           +~~+~~~~~+~~~~~+~~+           |       |
   |              |     |     |              |       |
   |      +-------+     |     +-------+      |       |
   |      |             |             |      |       |
   |      |             |             |      |       |
   v      v             |             v      v       |
+~~+~~~~~~+~~~~~~~~+    v    +~~~~~~~~+~~~~~~+~~+    |
:                  :         :                  :    |
:   $1 = eval b1   :   ...   :   $1 = eval bN   :    |
:                  :         :                  :    |
+~~~~~~~~~+~~~~~~~~+         +~~~~~~~~+~~~~~~~~~+    |
          |             +             |              |
          +---------+   |   +---------+              |
                    v   v   v                        |
               +----+---+---+-----+                  |
               |                  |                  |
               |   $result = $1   |                  |
               |                  |                  |
               +--------+---------+                  |
                        |                            |
                        v                            v
                 +~~~~~~+~~~~~~~+            +~~~~~~~+~~~~~~+
                 :          (2) :            :          (1) :
                 :   eval c     :            :   eval c     :
                 :              :            :              :
                 +~~~~~~+~~~~~~~+            +~~~~~~~~~~~~~~+
                        |
                        v
```

> Important: in this diagram we consider `finally` block *twice*.
> The (1) block is used when handling the `finally` block and its body.
> The (2) block is used when considering the `finally` block w.r.t. rest of the CFG.

```kotlin
a!!
```

```diagram
                             +
                             v
                    +~~~~~~~~+~~~~~~~~+
                    :                 :
                    :   $1 = eval a   :
                    :                 :
                    +~~~~~+~~~~~+~~~~~+
                          |     |
              +-----------+     +-------+
              v                         v
+-------------+------------+   +--------+--------+
|                          |   |                 |
|   assume ($1 !== null)   |   |   unreachable   |
|                          |   |                 |
+-------------+------------+   +-----------------+
              |
              v
     +--------+---------+
     |                  |
     |   $result = $1   |
     |                  |
     +--------+---------+
              |
              v
```

```kotlin
a as T
```

```diagram
                             +
                             v
                    +~~~~~~~~+~~~~~~~~+
                    :                 :
                    :   $1 = eval a   :
                    :                 :
                    +~~~~~+~~~~~+~~~~~+
                          |     |
              +-----------+     +-------+
              v                         v
+-------------+------------+   +--------+--------+
|                          |   |                 |
|     assume ($1 is T)     |   |   unreachable   |
|                          |   |                 |
+-------------+------------+   +-----------------+
              |
              v
     +--------+---------+
     |                  |
     |   $result = $1   |
     |                  |
     +--------+---------+
              |
              v
```

```kotlin
a as? T
```

```diagram
                         +
                         v
                +~~~~~~~~+~~~~~~~~+
                :                 :
                :   $1 = eval a   :
                :                 :
                +~~~~~+~~~~~+~~~~~+
                      |     |
            +---------+     +----------+
            v                          v
+-----------+----------+   +-----------+-----------+
|                      |   |                       |
|   assume ($1 is T)   |   |   assume ($1 !is T)   |
|                      |   |                       |
+-----------+----------+   +-----------+-----------+
            |                          |
            v                          v
     +------+------+           +-------+-------+
     |             |           |               |
     |   $2 = $1   |           |   $2 = null   |
     |             |           |               |
     +------+------+           +-------+-------+
            |                          |
            +---------+      +---------+
                      v      v
                +-----+------+-----+
                |                  |
                |   $result = $2   |
                |                  |
                +---------+--------+
                          |
                          v
```

```kotlin
{ a: T ... -> body... }
```

```diagram
             +                       +
             v                       v
+------------+-----------+   +~~~~~~~+~~~~~~~+
|                        |   :               :
|   $result = $literal   |   :   eval body   :
|                        |   :               :
+------------+-----------+   +~~~~~~~~~~~~~~~+
             |
             v
```

```kotlin
return
return@label
```

```diagram
         +
         v
+--------+--------+
|                 |
|   unreachable   |
|                 |
+-----------------+
```

```kotlin
return a
return@label a
throw a
```

```diagram
            +
            v
     +~~~~~~+~~~~~+
     :            :
     :   eval a   :
     :            :
     +~~~~~~+~~~~~+
            |
            v
   +--------+--------+
   |                 |
   |   unreachable   |
   |                 |
   +-----------------+
```

```kotlin
break@loop
```

```diagram
        +  
        v  
+~~~~~~~+~~~~~~~~+
:                :
:   @loop:exit   :
:                :
+~~~~~~~~~~~~~~~~+
```

```kotlin
continue@loop
```

```diagram
         +
         v
+~~~~~~~~+~~~~~~~~+
|                 |
|    backedge     |
|                 |
+~~~~~~~~~~~~~~~~~+
         |
         v  
+~~~~~~~~+~~~~~~~~+
:                 :
:   @loop:entry   :
:                 :
+~~~~~~~~~~~~~~~~~+
```

#### Statements {#statements-cdfa}

> Note: to simplify the notation, we consider only labeled loops, as unlabeled loops may be trivially turned into labeled ones by assigning them a unique label.

```kotlin
loop@ while(c) { b... }
```

```diagram
                              +
                              v
                              |
                     +--------+--------+
                     |                 |
                     |   @loop.entry   |
                     |                 |
                     +--------+--------+
                              |
        +-----------------+   |
        |                 v   v
+-------+------+     +~~~~+~~~+~~~~~~~~+
|              |     :                 :
|   backedge   |     :   $1 = eval c   :
|              |     :                 :
+-------+------+     +~~~~~+~~~~~+~~~~~+
        ^               t  |     |  f
        |           +------+     +--------+
        |           v                     v
        |   +-------+-------+    +--------+-------+
        |   |               |    |                |
        |   |   assume $1   |    |   assume !$1   |
        |   |               |    |                |
        |   +-------+-------+    +--------+-------+
        |           |                     |
        |           v                     v
        |     +~~~~~+~~~~~~+     +--------+--------+
        |     :            :     |                 |
        |     :   eval b   :     |   @loop.exit    |
        |     :            :     |                 |
        |     +~~~~~+~~~~~~+     +--------+--------+
        |           |                     |
        +-----------+                     |
                                          v
```

```kotlin
loop@ do { b... } while(c)
```

```diagram
                              +
                              v
                              |
                     +--------+--------+
                     |                 |
                     |   @loop.entry   |
                     |                 |
                     +--------+--------+
                              |
        +-----------------+   |
        |                 v   v
+-------+------+       +~~+~~~+~~~~~+
|              |       :            :
|   backedge   |       :   eval b   :
|              |       :            :
+-------+------+       +~~~~~~+~~~~~+
        ^                     |
        |                     v
        |            +~~~~~~~~+~~~~~~~~+
        |            :                 :
        |            :   $1 = eval c   :
        |            :                 :
        |            +~~~~~+~~~~~+~~~~~+
        |               t  |     |  f
        |           +------+     +--------+
        |           v                     v
        |   +-------+-------+    +--------+-------+
        |   |               |    |                |
        |   |   assume $1   |    |   assume !$1   |
        |   |               |    |                |
        |   +-------+-------+    +--------+-------+
        |           |                     |
        +-----------+                     v
                                 +--------+--------+
                                 |                 |
                                 |   @loop.exit    |
                                 |                 |
                                 +--------+--------+
                                          |
                                          |
                                          v
```

#### Declarations

```kotlin
var a = b
var a by b
val a = b
val a by b
```

```diagram      
         +
         |
         v
+~~~~~~~~+~~~~~~~~+
:                 :
:   $1 = eval b   :
:                 :
+~~~~~~~~+~~~~~~~~+
         |
         v
  +------+-------+
  |              |
  |    a = $1    |
  |              |
  +------+-------+
         |
         v
```

```kotlin
fun f() { body... }
```

```diagram
          +
          |
          v
+~~~~~~~~~+~~~~~~~~~~+
:                    :
:   $1 = eval body   :
:                    :
+~~~~~~~~~~~~~~~~~~~~+
```

```kotlin
class A (...) { 
    'declaration 1'
    'declaration 2'
    'init-block 1'
    'declaration 3'
    'init-block 2'
    ...
}
```

For every declaration and init block in a class body, the control flow is propagated through every element in the order of their appearance.
Here we give a simplified example.

TODO: in fact, init analysis does work like this, while smart casting does not

TODO: function decls are order-agnostic???

```diagram
             +
             |
             v
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
:                          :
:   eval 'declaration 1'   :
:                          :
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
             |
             v
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
:                          :
:   eval 'declaration 2'   :
:                          :
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
             |
             v
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
:                          :
:   eval 'init-block 1'    :
:                          :
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
             |
             v
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
:                          :
:   eval 'declaration 3'   :
:                          :
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
             |
             v
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
:                          :
:   eval 'init-block 2'    :
:                          :
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
             |
             v
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
:                          :
:           ...            :
:                          :
+~~~~~~~~~~~~~~~~~~~~~~~~~~+            
             |
             v
+~~~~~~~~~~~~+~~~~~~~~~~~~~+
:                          :
:   eval 'declaration n'   :
:                          :
+~~~~~~~~~~~~~~~~~~~~~~~~~~+
```

#### Examples

```kotlin
fun f() = listOf(1, 2).map { it + 2 }.filter { it > 0 }
```

```diagram
                                          +
                                          v
                                    +-----+------+
                                    |            |
                                    |   $1 = 1   |
                                    |            |
                                    +-----+------+
                                          |
                                          v
                                    +-----+------+
                                    |            |
                                    |   $2 = 2   |
                                    |            |
                                    +-----+------+
                                          |
                                          v
                              +-----------+-------------+
                              |                         |
                              |   $3 = listOf($1, $2)   |
                              |                         |
                              +-----+--------------+----+
                                    |              |
                             +------+              +------------+
                             v                                  v
                  +----------+----------+                +------+------+
                  |                     |                |             |
                  |   $4 = { it + 2 }   |                |   $5 = it   |
                  |                     |                |             |
                  +----------+----------+                +------+------+
                             |                                  |
                             v                                  v
                  +----------+----------+                 +-----+------+
                  |                     |                 |            |
                  |   $8 = $3.map($4)   |                 |   $6 = 2   |
                  |                     |                 |            |
                  +------+-------+------+                 +-----+------+
                         |       |                              |
               +---------+       +--------+                     v
               v                          v            +--------+---------+
    +----------+----------+        +------+-------+    |                  |
    |                     |        |              |    |   $7 = $5 + $2   |
    |   $9 = { it > 0 }   |        |   $10 = it   |    |                  |
    |                     |        |              |    +------------------+
    +----------+----------+        +------+-------+
               |                          |
               v                          v
+--------------+--------------+     +-----+-------+
|                             |     |             |
|   $result = $8.filter($9)   |     |   $11 = 0   |
|                             |     |             |
+--------------+--------------+     +-----+-------+
               |                          |
               |                          v
               |               +----------+----------+
               |               |                     |
               |               |   $12 = $10 > $11   |
               |               |                     |
               v               +---------------------+
```



```kotlin
fun f(x: Int) {
    var y = x
    loop@ while(y != 500) {
        y++
        if(y % 20 == 3) break@loop
    }
}
```

```diagram
                +------------+
                |            |
                |   $1 = x   |
                |            |
                +------+-----+
                       |
                       v
                +------+-----+
                |            |
                |   y = $1   |
                |            |
                +------+-----+
                       |
                       v
              +--------+--------+
              |                 |
              |   @loop.entry   +<----------------------------+
              |                 |                             |
              +--------+--------+                     +-------+------+
                       |                              |              |
                       v                              |   backedge   |
                 +-----+------+                       |              |
                 |            |                       +-------+------+
                 |   $2 = y   |                               ^
                 |            |                               |
                 +-----+------+                               |
                       |                                      |
                       v                                      |
                +------+-------+                              |
                |              |                              |
                |   $3 = 500   |                              |
                |              |                              |
                +------+-------+                              |
                       |                                      |
                       v                                      |
           +-----------+------------+                         |
           |                        |                         |
           |   $4 = $2.equals($3)   |                         |
           |                        |                         |
           +----+--------------+----+                         |
                |              |                              |
                v              v                              |
     +----------+----+    +----+-----------+                  |
     |               |    |                |                  |
     |   assume $4   |    |   assume !$4   |                  |
     |               |    |                |                  |
     +-------+-------+    +--------+-------+                  |
             |                     |                          |
             v                     v                          |
     +-------+-------+     +-------+-------+                  |
     |               |     |               |                  |
     |   $5 = false  |     |   $5 = true   |                  |
     |               |     |               |                  |
     +-------+-------+     +-------+-------+                  |
             |                     |                          |
             v                     v                          |
     +-------+--------+    +-------+-------+                  |
     |                |    |               |                  |
     |   assume !$5   |    |   assume $5   |                  |
     |                |    |               |                  |
     +-------+--------+    +-------+-------+                  |
             |                     |                          |
             v                     v                          |
     +-------+--------+      +-----+------+                   |
     |                |      |            |                   |
+--->+   @loop.exit   |      |   $6 = y   |                   |
|    |                |      |            |                   |
|    +-------+--------+      +-----+------+                   |
|            |                     |                          |
|            v                     v                          |
|                        +---------+---------+                |
|                        |                   |                |
|                        |   $7 = $6.inc()   |                |
|                        |                   |                |
|                        +---------+---------+                |
|                                  |                          |
|                                  v                          |
|                            +-----+------+                   |
|                            |            |                   |
|                            |   y = $7   |                   |
|                            |            |                   |
|                            +-----+------+                   |
|                                  |                          |
|                                  v                          |
|                            +-----+------+                   |
|                            |            |                   |
|                            |   $8 = y   |                   |
|                            |            |                   |
|                            +-----+------+                   |
|                                  |                          |
|                                  v                          |
|                           +------+------+                   |
|                           |             |                   |
|                           |   $9 = 20   |                   |
|                           |             |                   |
|                           +------+------+                   |
|                                  |                          |
|                                  v                          |
|                       +----------+-----------+              |
|                       |                      |              |
|                       |   $10 = $8.rem($9)   |              |
|                       |                      |              |
|                       +----------+-----------+              |
|                                  |                          |
|                                  v                          |
|                           +------+------+                   |
|                           |             |                   |
|                           |   $11 = 3   |                   |
|                           |             |                   |
|                           +------+------+                   |
|                                  |                          |
|                                  v                          |
|                    +-------------+-------------+            |
|                    |                           |            |
|                    |   $12 = $10.equals($11)   |            |
|                    |                           |            |
|                    +----+----------------+-----+            |
|                         |                |                  |
|                         v                v                  |
|             +-----------+----+      +----+------------+     |
|             |                |      |                 |     |
|             |   assume $12   |      |   assume !$12   |     |
|             |                |      |                 |     |
|             +-------+--------+      +--------+--------+     |
|                     |                        |              |
+---------------------+                        +--------------+
```

#### `kotlin.Nothing` and its influence on the CFG

As discussed in the [type system][`kotlin.Nothing`] section of this specification, `kotlin.Nothing` is an uninhabited type, meaning an instance of this type can never exist at runtime.
For the purposes of control-flow graph (and related analyses) this means, as soon as an expression is known statically to have `kotlin.Nothing` type, all subsequent code is **unreachable**.

> Important: each specific analysis may decide to either use this information or ignore it for a given program.
> If unreachability from `kotlin.Nothing` is used, it can be represented in different ways, e.g., by changing the CFG structure or via [$\killDataFlow$][Preliminary analysis and $\killDataFlow$ instruction] instructions.

### Performing analyses on the control-flow graph

The analyses defined in this document follow the pattern of analyses based on monotone frameworks, which work by modeling abstract program states as elements of lattices and joining these states using standard lattice operations.
Such analyses may achieve limited path sensitivity via the analysis of conditions used in the `assume` nodes.

In short, an analysis is defined on the CFG by introducing:

- A lattice $\mathbf{S}$ (a partially ordered set that has both a greatest lower bound and a least upper bound defined for every pair of its elements) of values, called *abstract states*;
- A *transfer function* for mapping CFG nodes to the elements of $\mathbf{S}$, essentially a set of rules on how to calculate an abstract state for each node of the CFG either directly or by using abstract states of other nodes.

The result of an analysis is a *fixed point* of the transfer function for each node of the given CFG, i.e., an abstract state for each node such that the transfer function maps the state to itself.
For the particular shapes of the transfer function used in program analyses, given a finite $\mathbf{S}$, the fixed point always exists, although the details of how this works go out of scope of this document.

#### Types of lattices

* Flat lattice over set $A = \{a1, \ldots, ai, \ldots, an\}$ of _incomparable_ elements is built by adding a top element $\top$, which is _greater_ than other elements, and a bottom element $\bot$, which is _less_ than other elements.
  This forms the following lattice structure.

  ```diagram
                  +-------+
                  |       |
      +-----------+   ⊤   +-----------+
      |           |       |           |
      |           +---+---+           |
      |               |               |
      |               |               |
  +---+---+       +---+---+       +---+---+
  |       |       |       |       |       |
  |   a1  |  ...  |   ai  |  ...  |   an  |
  |       |       |       |       |       |
  +---+---+       +---+---+       +---+---+
      |               |               |
      |               |               |
      |           +---+---+           |
      |           |       |           |
      +-----------+   ⊥   +-----------+
                  |       |
                  +-------+
  ```

  The flat lattice is usually used for analyses interested in _exact_ facts, such as definite (un)assignment or constant propagation, as the fixed point results are either exact elements from the set $A$, or top/bottom elements.

* Map lattice of a set $A = \{a_1, \ldots, a_n\}$ to a lattice $L$ is a lattice with sets of functions from $A$ to $L$ as its elements.

  $$
  \begin{aligned}
  A \to L &= \left\{ \left[ a_1 \to l_1, \ldots, a_n \to l_n \right] | \forall i: a_i \in A, l_i \in L \right\}\\
  f \leq g &\Leftrightarrow \forall a_i \in A : f(a_i) \leq g(a_i), \text{ where } f, g \in A \to L
  \end{aligned}
  $$

  The map lattice is usually used as the "top-level" lattice for bootstrapping the monotone framework analysis, by providing a way to represent the mapping from program entities (e.g., variables or expressions) to interesting facts (e.g., their initialization or availability) as a lattice.

#### Preliminary analysis and $\killDataFlow$ instruction

Some analyses described further in this document are based on special instruction called $\killDataFlow(\upsilon)$ where $\upsilon$ is a program variable.
These are not present in the graph representation described above and need to be inferred before such analyses may actually take place.

$\killDataFlow$ inference is based on a standard control-flow analysis with the lattice of natural numbers over "min" and "max" operations.
That is, for every assignable property $x$ an element of this lattice is a natural number $N$, with the least upper bound of two numbers defined as maximum function and the greatest lower bound as minimum function.

> Note: such lattice has 0 as its bottom element and does not have a top element.

We assume the following transfer functions for our analysis.

$$
\begin{alignedat}{2}
&\llbracket \texttt{x = y} \rrbracket(s)
&&= s[x \rightarrow s(x) + 1]
\\
\\
&\llbracket \backedge \rrbracket(s)
&&= \{\star \rightarrow 0 \}
\\
\\
&\llbracket l \rrbracket(s)
&&= \bigsqcup_{p \in predecessor(l)} \llbracket p \rrbracket(s)
\end{alignedat}
$$

After running this analysis, for every backedge $b$ and every variable $x$ present in $s$, if $\exists b_p, b_s: b_p \in predecessors(b) \land b_s \in successors(b) \land \llbracket b_p \rrbracket(x) > \llbracket b_s \rrbracket(x)$, a $\killDataFlow(x)$ instruction must be inserted after $b$.

> Informally: this somewhat complicated condition matches variables which have been assigned to in the loop body w.r.t. this loop's backedge.

> Note: this analysis does involve a possibly **infinite** lattice (a lattice of natural numbers) and may seem to diverge on some graphs.
> However, if we assume that every backedge in an arbitrary CFG is marked with a `backedge` instruction, it is trivial to prove that no number in the lattice will ever exceed the number of assignments (which is **finite**) in the analyzed program as any loop in the graph will contain at least one backedge.

As an example, consider the following Kotlin code:

```kotlin
var x: Int = 0
var y: Int = 0
while (b1) {
    y = f()
    do {
        x = g()
    } while (b2)
}
```

which results in the following CFG diagram (annotated with the analysis results where it is important):

```diagram
                                              +------------+
                                              |            |
                                              |   $1 = 0   |
                                              |            |
                                              +-----+------+
                                                    |
                                                    v
                                              +-----+------+
                                              |            |
                                              |   x = $1   +<~~~  {x -> 1, y -> 0}
                                              |            |
                                              +-----+------+
                                                    |
                                                    v
                                              +-----+------+
                                              |            |
                                              |   $2 = 0   |
                                              |            |
                                              +-----+------+
                                                    |
                                                    v
                                              +-----+------+
                                              |            |
                                              |   y = $2   +<~~~  {x -> 1, y -> 1}
                                              |            |
                                              +-----+------+
                                                    |
                                                    v
                                           +--------+---------+
                                           |                  |
                                           |   @loop1:entry   |
                                           |                  |
                                           +--------+---------+
                                                    |
                              +-----------------+   |
                              |                 v   v
                      +-------+------+       +--+---+------+
                      |              |       |             |
        {* -> 0}  ~~~>+   backedge   |       |   $3 = b1   +<~~~  {x -> 1, y -> 1}
                      |              |       |             |
                      +-------+------+       +---+-----+---+
                              ^                  |     |
                              |           +------+     +--------+
                              |           v                     v
                              |   +-------+-------+    +--------+-------+
                              |   |               |    |                |
                              |   |   assume $3   |    |   assume !$3   |
                              |   |               |    |                |
    {x -> 2, y -> 2}          |   +-------+-------+    +--------+-------+
           :                  |           |                     |
           v                  |           v                     v
+----------+------------------+    +------+-------+    +--------+--------+
|                                  |              |    |                 |
|                                  |   $4 = f()   |    |   @loop1:exit   |
|                                  |              |    |                 |
|                                  +------+-------+    +--------+--------+
|                                         |                     |
|                                         v                     |
|                                   +-----+------+              v
|                                   |            |
|             {x -> 1, y -> 2}  ~~~>+   y = $4   |
|                                   |            |
|                                   +-----+------+
|                                         |
|                                         v
|                                +--------+---------+
|                                |                  |
|                                |   @loop2.entry   |
|                                |                  |
|                                +--------+---------+
|    {* -> 0}  ~~+                        |
|                :  +-----------------+   |
|                v  |                 v   v
|           +----+--+------+       +--+---+-------+
|           |              |       |              |
|           |   backedge   |       |   $6 = g()   +<~~~  {x -> 1, y -> 2}
|           |              |       |              |
|           +-------+------+       +------+-------+
|                   ^                     |
|                   |                     v
|                   |               +-----+------+
|                   |               |            |
|                   |               |   x = $6   +<~~~  {x -> 2, y -> 2}
|                   |               |            |
|                   |               +-----+------+
|                   |                     |
|                   |                     v
|                   |              +------+------+
|                   |              |             |
|                   |              |   $5 = b2   |
|                   |              |             |
|                   |              +---+-----+---+
|                   |                  |     |
|                   |           +------+     +--------+
|                   |           v                     v
|                   |   +-------+-------+    +--------+-------+
|                   |   |               |    |                |
|                   |   |   assume $5   |    |   assume !$5   |
|                   |   |               |    |                |
|                   |   +-------+-------+    +--------+-------+
|                   |           |                     |
|                   +--+--------+                     v
|                      ^                     +--------+--------+
|                      :                     |                 |
|                                            |   @loop2.exit   +<~~~  {x -> 2, y -> 2}
|                {x -> 2, y -> 2}            |                 |
|                                            +--------+--------+
|                                                     |
|                                                     |
+-----------------------------------------------------+
```

There are two backedges: one for the inner loop (the inner backedge) and one for the outer loop (the outer backedge).
The inner backedge has one predecessor with state $\{ \texttt{x} \rightarrow 2, \texttt{y} \rightarrow 2 \}$ and one successor with state $\{ \texttt{x} \rightarrow 1, \texttt{y} \rightarrow 2 \}$ with the value for `x` being less in the successor, meaning that we need to insert $\killDataFlow(\texttt{x})$ after the backedge.
The outer backedge has one predecessor with state $\{ \texttt{x} \rightarrow 2, \texttt{y} \rightarrow 2 \}$ and one successor with state $\{ \texttt{x} \rightarrow 1, \texttt{y} \rightarrow 1 \}$ with values for both variables being less in the successor, meaning we need to insert  $\killDataFlow(\texttt{x})$ and  $\killDataFlow(\texttt{y})$ after the backedge. 

#### Variable initialization analysis

Kotlin allows [non-delegated properties][Property declaration] to not have initializers in their declaration as long as the property is *definitely assigned* before its first usage.
This property is checked by the variable initialization analysis (VIA).
VIA operates on abstract values from the *assignedness* lattice, which is a flat lattice constructed over the set $\{\Assigned, \Unassigned\}$.
The analysis itself uses abstract values from a map lattice of all property declarations to their abstract states based on the assignedness lattice.
The abstract states are propagated in a forward manner using the standard join operation to merge states from different paths.

The CFG nodes relevant to VIA include only property declarations and direct property assignments.
Every property declaration adds itself to the domain by setting the $\Unassigned$ value to itself.
Every direct property assignment changes the value for this property to $\Assigned$.

The results of the analysis are interpreted as follows. 
For every property, any usage of the said property in any statement is a compile-time error unless the abstract state of this property at this statement is $\Assigned$.
For every read-only property (declared using `val` keyword), any assignment to this property is a compile-time error unless the abstract state of this property is $\Unassigned$.

As an example, consider the following Kotlin code:

```kotlin+math
/*  1 */ val x: Int    //$$$\{ \mathtt{x} \rightarrow \mathit{Unassigned}, \star \rightarrow \bot \}$$$
/*  2 */ var y: Int    //$$$\{ \mathtt{x} \rightarrow \mathit{Unassigned}, \mathtt{y} \rightarrow \mathit{Unassigned}, \star \rightarrow \bot \}$$$
/*  3 */ if (c) {       //
/*  4 */     x = 40    //$$$\{ \mathtt{x} \rightarrow \mathit{Assigned}, \mathtt{y} \rightarrow \mathit{Unassigned}, \star \rightarrow \bot \}$$$
/*  5 */     y = 4     //$$$\{ \mathtt{x} \rightarrow \mathit{Assigned}, \mathtt{y} \rightarrow \mathit{Assigned}, \star \rightarrow \bot \}$$$
/*  6 */ } else {      //
/*  7 */     x = 20    //$$$\{ \mathtt{x} \rightarrow \mathit{Assigned}, \mathtt{y} \rightarrow \mathit{Unassigned}, \star \rightarrow \bot \}$$$
/*  8 */ }             //$$$\{ \mathtt{x} \rightarrow \mathit{Assigned}, \mathtt{y} \rightarrow \top, \star \rightarrow \bot \}$$$
/*  9 */ y = 5         //$$$\{ \mathtt{x} \rightarrow \mathit{Assigned}, \mathtt{y} \rightarrow \mathit{Assigned}, \star \rightarrow \bot \}$$$
/* 10 */ val z = x + y //$$$\{ \mathtt{x} \rightarrow \mathit{Assigned}, \mathtt{y} \rightarrow \mathit{Assigned}, \mathtt{z} \rightarrow \mathit{Assigned}\}$$$
```

There are no incorrect operations in this example, so the code does not produce any compile-time errors.

Let us consider another example:

```kotlin+math
/* 1 */ val x: Int    //$$$\{ \mathtt{x} \rightarrow \mathit{Unassigned}, \star \rightarrow \bot \}$$$
/* 2 */ var y: Int    //$$$\{ \mathtt{x} \rightarrow \mathit{Unassigned}, \mathtt{y} \rightarrow \mathit{Unassigned}, \star \rightarrow \bot \}$$$
/* 3 */ while (c) {    //$$$\{ \mathtt{x} \rightarrow \top, \mathtt{y} \rightarrow \top, \star \rightarrow \bot \}$$$ Error!
/* 4 */     x = 40    //$$$\{ \mathtt{x} \rightarrow \top, \mathtt{y} \rightarrow \top, \star \rightarrow \bot \}$$$
/* 5 */     y = 4     //$$$\{ \mathtt{x} \rightarrow \top, \mathtt{y} \rightarrow \top, \star \rightarrow \bot \}$$$
/* 6 */ }             //
/* 7 */ val z = x + y //$$$\{ \mathtt{x} \rightarrow \top, \mathtt{y} \rightarrow \top, \star \rightarrow \bot \}$$$ More errors!  
```

In this example, the state of both properties at line 3 is $\top$, as it is the least upper bound of the states from lines 5 and 2 (from the `while` loop), which is derived to be $\top$.
This leads to a compile-time error at line 4 for `x`, because one cannot reassign a read-only property.

At line 7 there is another compile-time error when both properties are used, as there are paths in the CFG which reach line 7 when the properties have not been assigned (i.e., the case when the `while` loop body was skipped).

#### Smart casting analysis

See the [corresponding section][Smart casts] for details.

#### Function contracts

> Note: as of Kotlin $\currentKotlinMajorVersion{}$, contracts for user-defined functions are an experimental feature and, thus, not described here

Some standard-library functions in Kotlin are defined in such a way that they adhere to a specific *call contract* that affects the way calls to such functions are analyzed from the perspective of the caller's control flow graph.
A function's call contract consists of one or more *effects*.

There are several kinds of effects:

- Calls-in-place effect for a function-type parameter of the function;
- Returns-implies-condition effect for a boolean parameter of the function;
- Particular implementations may introduce other types of effects.

**Calls-in-place** effect of function $F$ for a function-type parameter $P$ specifies that for every call of $F$ parameter $P$ will be also invoked as a function.
This effect may also have one of the three invocation types: 

- *At-least-once*, meaning that $P$ will be invoked at least once;
- *Exactly-once*, meaning that $P$ will be invoked exactly once;
- *At-most-once*, meaning that $P$ will be invoked at most once.

These effects change the call graph that is produced for a function call of $F$ when supplied a lambda-expression parameter for $P$.
Without any effect, the graph looks like this:

For a function call

```kotlin
f(..., { lambda-body... }, ...)
```

```diagram
              |
              +-----------------------------------------+
              v                                         v
+-------------+--------------+             +------------+------------+       
|                            |             |                         |       
|   $N = { lambda-body...}   |             |   eval lambda-body...   |       
|                            |             |                         |       
+-------------+--------------+             +-------------------------+  
              |
              v
             ...
              +
              v
+-------------+--------------+
|                            |
|   $result = f(...,$N,..)   |
|                            |
+-------------+--------------+
              |
              v
```

Please note that control flow information is passed inside the lambda body, but no information is extracted from it.
If the corresponding parameter $P$ is introduced with *exactly-once* effect, this changes to:

```diagram
              |
              +-----------------------------------------+
              v                                         v
+-------------+--------------+             +------------+------------+
|                            |             |                         |
|   $N = { lambda-body...}   |             |   eval lambda-body...   |
|                            |             |                         |  
+-------------+--------------+             +------------+------------+
              |                                         |
              v                                         |
             ...                                        |
              +                                         |
              v                                         |
+-------------+--------------+                          |
|                            |                          |
|   $result = f(...,$N,..)   |                          |
|                            |                          |
+-------------+--------------+                          |
              |                                         v
              +-----------------------------------------+
              |
              v
```

If the corresponding parameter $P$ is introduced with *at-least-once* effect, this changes to:

```diagram
              |
              +--------------------------------+    +--------------------+
              v                                v    v                    |
+-------------+--------------+    +------------+----+-------+    +-------+------+
|                            |    |                         |    |              |
|   $N = { lambda-body...}   |    |   eval lambda-body...   |    |   backedge   |
|                            |    |                         |    |              |
+-------------+--------------+    +------------+---+--------+    +-------+------+
              |                                |   |                     ^
              v                                |   +---------------------+
             ...                               |
              +                                |
              v                                |
+-------------+--------------+                 |
|                            |                 |
|   $result = f(...,$N,..)   |                 |
|                            |                 |
+-------------+--------------+                 |
              |                                v
              +--------------------------------+
              |
              v
```

If the corresponding parameter $P$ is introduced with *at-most-once* effect, this changes to:

```diagram
              |
              +---------------------+-------------------+
              v                     |                   |
+-------------+--------------+      |      +------------+------------+
|                            |      |      |                         |
|   $N = { lambda-body...}   |      |      |   eval lambda-body...   |
|                            |      |      |                         |  
+-------------+--------------+      |      +------------+------------+
              |                     |                   |
              v                     |                   |
             ...                    |                   |
              +                     |                   |
              v                     |                   |
+-------------+--------------+      |                   |
|                            |      |                   |
|   $result = f(...,$N,..)   |      |                   |
|                            |      |                   |
+-------------+--------------+      |                   |
              |                     v                   v
              +---------------------+-------------------+
              |
              v
```

This allows the control-flow information to be extracted from lambda expression according to the policy of its invocation.

**Returns-implies-condition** effect of function $F$ for a boolean parameter $P$ specifies that if, when invoked normally, a call to $F$ returns, $P$ is assumed to be true.
For a function call

```kotlin
f(..., p, ...)
```

this changes normal call graph that looks like this:

```diagram
              +
              v               
     +~~~~~~~~+~~~~~~~~+       
     :                 :                  
     :   $N = eval p   :                  
     :                 :                  
     +~~~~~~~~+~~~~~~~~+  
              |
              v
             ...
              +
              v
+-------------+--------------+
|                            |
|   $result = f(...,$N,..)   |
|                            |
+-------------+--------------+
              |
              v
```

to look like this:

```diagram
              +
              v               
     +~~~~~~~~+~~~~~~~~+       
     :                 :                  
     :   $N = eval p   :                  
     :                 :                  
     +~~~~~~~~+~~~~~~~~+  
              |
              v
             ...
              +
              v
+-------------+--------------+
|                            |
|   $result = f(...,$N,..)   |
|                            |
+-------------+--------------+
              |
              v
       +------+--------+
       |               |
       |   assume $N   |
       |               |
       +------+--------+
              |
              v
```

> The following standard library functions have contracts with the following effects:
> 
> - `kotlin.run`, `kotlin.with`, `kotlin.let`, `kotlin.apply`, `kotlin.also` (all overloads): calls-in-place effect with invocation kind "exactly-once" for its functional argument;
> - `kotlin.check`, `kotlin.require` (all overloads): returns-implies-condition effect on the boolean parameter.

> Examples:
> 
> This code would result in a initialized variable analysis violation if `run` was not a standard function with corresponding contract:
>
> ```kotlin
> val x: Int
> run { // run invokes its argument exactly once
>     x = 4
> }
> // could be error: x is not initialized
> // but is ok
> println(x) 
> ```
> 
> Several examples of contract-introduced [smart-cast][Smart casts]:
>
> ```kotlin
> val x: Any = ...
> check(x is Int)
> // x is known to be Int thanks to assume introduced by 
> // the contract of check
> val y = x + 4 // would be illegal without contract
> ``` 
> 
> ```kotlin
> val x: Int? = ...
> // x is known to be non-null thanks to assume introduced by 
> // the contract of require
> require(x != null)
> val y = x + 4 // would be illegal without contract
> ```
>

### References {-}

1. Frances E. Allen. "Control flow analysis." ACM SIGPLAN Notices, 1970.
2. Flemming Nielson, Hanne R. Nielson, and Chris Hankin. "Principles of program analysis." Springer, 2015.
3. Kam, John B., and Jeffrey D. Ullman. "Monotone data flow analysis frameworks." Acta informatica 7.3 (1977): 305-317.
4. Anders Moller, and Michael I. Schwartzbach. "Static Program Analysis." 2018 (\url{https://cs.au.dk/~amoeller/spa/})


================================================
FILE: docs/src/md/kotlin.core/concurrency.md
================================================
## Concurrency

Kotlin Core does not specify the semantics of the code running in concurrent environments.
For information on threading APIs, memory model, supported synchronization and other concurrency-related capabilities of Kotlin on your platform, please refer to platform documentation.


================================================
FILE: docs/src/md/kotlin.core/coroutines.md
================================================
## Asynchronous programming with coroutines

TODO([Kotlin 1.3+, Experimental] Update w.r.t. structured concurrency)

### Suspending functions

Most [functions][Function declaration] in Kotlin may be marked *suspending* using the special `suspend` modifier.
There are almost no additional restrictions: regular functions, extension functions, top-level functions, local functions, lambda literals, all these may be suspending functions.

> Note: the following functions and function values cannot be marked as suspending.
> 
> * [anonymous function declarations];
> * [constructors][Class declaration];
> * [property getter/setters][Getters and setters];
> * [delegation-related operator functions][Delegated property declaration].

> Note: platform-specific implementations may extend the restrictions on which kinds of functions may be suspending.

Suspending functions have a [suspending function type][Suspending function types], also marked using the `suspend` modifier.

TODO(`suspend val`?)

A suspending function is different from non-suspending functions by potentially having zero or more *suspension points* --- statements in its body which may pause the function execution to be resumed at a later moment in time.
The main source of suspension points are calls to other suspending functions which represent possible suspension points.

> Note: suspension points are important because at these points another function may start in the same flow of execution, leading to potential changes in the shared state.

Non-suspending functions may not call suspending functions directly, as they do not support suspension points.
Suspending functions may call non-suspending functions without any limitations; such calls do not create suspension points.
This restriction is also known as ["function colouring"](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/).

> Important: an exception to this rule are non-suspending inlined lambda parameters: if the higher-order function invoking such a lambda is called from a suspending function, this lambda is allowed to also have suspension points and call other suspending functions.

TODO(Cover other possible exceptions w.r.t. `inline`/`noinline`/`crossinline` combinations)

> Note: suspending functions interleaving each other in this manner are not dissimilar to how functions from different threads interact on platforms with multi-threading support.
> There are, however, several key differences.
> First, suspending functions may pause only at suspension points, i.e., they cannot be paused at an arbitrary execution point.
> Second, this interleaving may happen on a single platform thread.
>
> In a multi-threaded environment suspending functions may also be interleaved by the platform-dependent concurrent execution, independent of the interleaving of coroutines.

The implementation of suspending functions is platform-dependent.
Please refer to the platform documentation for details.

### Coroutines

A *coroutine* is a concept similar to a thread in traditional concurrent programming, but based on *cooperative multitasking*, e.g., the switching between different execution contexts is done by the coroutines themselves rather than the operating system or a virtual machine.

In Kotlin, coroutines are used to implement [suspending functions] and can switch contexts only at suspension points.

A call to a suspending function creates and starts a coroutine.
As one can call a suspending function only from another suspending function, we need a way to bootstrap this process from a non-suspending context.

> Note: this is required as most platforms are unaware of coroutines or suspending functions, and do not provide a suspending entry point.
> However, a Kotlin compiler may elect to provide a suspending entry point on a specific platform.

One of the ways of starting suspending function from a non-suspending context is via a *coroutine builder*: a non-suspending function which takes a suspending function type argument (e.g., a suspending lambda literal) and handles the coroutine lifecycle.

The implementation of coroutines is platform-dependent.
Please refer to the platform documentation for details.

### Implementation details

Despite being platform-dependent, there are several aspects of coroutine implementation in Kotlin, which are common across all platforms and belong to the Kotlin/Core.
We describe these details below.

#### `kotlin.coroutines.Continuation<T>`

[Interface][Interface declaration] `kotlin.coroutines.Continuation<T>` is the main supertype of all coroutines and represents the basis upon which the coroutine machinery is implemented.

```kotlin
public interface Continuation<in T> {
    public val context: CoroutineContext
    public fun resumeWith(result: Result<T>)
}
```

Every suspending function is associated with a generated `Continuation` subtype, which handles the suspension implementation; the function itself is adapted to accept an additional continuation parameter to support the [Continuation Passing Style].
The return type of the suspending function becomes the type parameter `T` of the continuation.

`CoroutineContext` represents the context of the continuation and is an indexed set from `CoroutineContext.Key` to `CoroutineContext.Element` (e.g., a special kind of map).
It is used to store coroutine-local information, and takes important part in [Continuation interception].

`resumeWith` function is used to propagate the results in between suspension points: it is called with the result (or exception) of the last suspension point and resumes the coroutine execution.

To avoid the need to explicitly create the `Result<T>` when calling `resumeWith`, the coroutine implementation provides the following extension functions.

```kotlin
fun <T> Continuation<T>.resume(value: T)
fun <T> Continuation<T>.resumeWithException(exception: Throwable)
```

#### Continuation Passing Style

Each suspendable function goes through a transformation from normally invoked function to continuation passing style (CPS).
For a suspendable function with parameters $p_1, p_2, \ldots, p_N$ and result type $T$ a new function is generated, with an additional parameter $p_{N+1}$ of type [`kotlin.coroutines.Continuation<T>`] and return type changed to [`kotlin.Any?`][`kotlin.Any`].
The calling convention for such function is different from regular functions as a suspendable function may either *suspend* or *return*.

* If the function returns a result, it is returned directly from the function as normal;
* If the function suspends, it returns a special marker value $\coroutineSuspended{}$ to signal its suspended state.

The calling convention is maintained by the compiler during the CPS transformation, which prevents the user from manually returning $\coroutineSuspended{}$.
If the user wants to suspend a coroutine, they need to perform the following steps.

* Access the coroutine's continuation object by calling [`suspendCoroutineUninterceptedOrReturn` intrinsic][Coroutine intrinsics] or any of its wrappers;
* Store the continuation object to resume it later;
* Pass the $\coroutineSuspended{}$ marker to the intrinsic, which is then returned from the function.

As Kotlin does not currently support denotable [union types], the return type is changed to [`kotlin.Any?`][`kotlin.Any`], so it can hold both the original return type $T$ and $\coroutineSuspended{}$.

#### Coroutine state machine

Kotlin implements suspendable functions as state machines, since such implementation does not require specific runtime support.
This dictates the explicit `suspend` marking (function colouring) of Kotlin coroutines: the compiler has to know which function can potentially suspend, to turn it into a state machine.

Each suspendable lambda is compiled to a continuation class, with fields representing its local variables, and an integer field for current state in the state machine.
Suspension point is where such lambda can suspend: either a suspending function call or [`suspendCoroutineUninterceptedOrReturn` intrinsic][Coroutine intrinsics] call.
For a lambda with $N$ suspension points and $M$ return statements, which are not suspension points themselves, $N + M$ states are generated (one for each suspension point plus one for each non-suspending return statement).

> Example:
>
> ```kotlin
> // Lambda body with multiple suspension points
> val a = a()
> val y = foo(a).await() // suspension point #1
> b()
> val z = bar(a, y).await() // suspension point #2
> c(z)
> ```
>
> ```kotlin
> // State machine code for the lambda after CPS transformation
> //     (written in pseudo-Kotlin with gotos)
> class <anonymous> private constructor(
>     completion: Continuation<Any?>
> ): SuspendLambda<...>(completion) {
>     // The current state of the state machine
>     var label = 0
>     
>     // local variables of the coroutine
>     var a: A? = null
>     var y: Y? = null
>     
>     fun invokeSuspend(result: Any?): Any? {
>         // state jump table
>         if (label == 0) goto L0
>         if (label == 1) goto L1
>         if (label == 2) goto L2
>         else throw IllegalStateException()
>         
>       L0:
>         // result is expected to be `null` at this invocation
>         
>         a = a()
>         label = 1
>         // 'this' is passed as a continuation 
>         result = foo(a).await(this) 
>         // return if await had suspended execution
>         if (result == COROUTINE_SUSPENDED)
>             return COROUTINE_SUSPENDED
>       L1:
>         // error handling
>         result.throwOnFailure()
>         // external code has resumed this coroutine
>         // passing the result of .await() 
>         y = (Y) result
>         b()
>         label = 2
>         // 'this' is passed as a continuation
>         result = bar(a, y).await(this)
>         // return if await had suspended execution
>         if (result == COROUTINE_SUSPENDED)
>             return COROUTINE_SUSPENDED
>       L2:
>         // error handling
>         result.throwOnFailure()
>         // external code has resumed this coroutine
>         // passing the result of .await()
>         Z z = (Z) result
>         c(z)
>         label = -1 // No more steps are allowed
>         return Unit
>     }          
>     
>     fun create(completion: Continuation<Any?>): Continuation<Any?> {
>     	<anonymous>(completion)
>     }          
>     
>     fun invoke(completion: Continuation<Any?>): Any? {
>         create(completion).invokeSuspend(Unit)
>     }
> }
> ```

#### Continuation interception

Asynchronous computations in many cases need to control how they are executed, with varying degrees of precision.
For example, in typical user interface (UI) applications, updates to the interface should be executed on a special UI thread; in server-side applications, long-running computations are often offloaded to a separate thread pool, etc.

Continuation interceptors allow us to intercept the coroutine execution between suspension points and perform some operations on it, usually wrapping the coroutine continuation in another continuation.
This is done using the `kotlin.coroutines.ContinuationInterceptor` interface.

```kotlin
interface ContinuationInterceptor : CoroutineContext.Element {
    companion object Key : CoroutineContext.Key<ContinuationInterceptor>
    fun <T> interceptContinuation(continuation: Continuation<T>): Continuation<T>
    fun releaseInterceptedContinuation(continuation: Continuation<*>)
}
```

As seen from the declaration, `ContinuationInterceptor` is a `CoroutineContext.Element`, and to perform the continuation interception,
Download .txt
Showing preview only (512K chars total). Download the full file or copy to clipboard to get everything.
gitextract_iqnl2ub6/

├── .fleet/
│   ├── run.json
│   └── settings.json
├── .github/
│   ├── actions/
│   │   ├── build-spec-in-docker/
│   │   │   └── action.yml
│   │   └── upload-spec-artifacts/
│   │       └── action.yml
│   └── workflows/
│       ├── build-spec-on-pr-in-docker.yml
│       └── build-spec-on-pr.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── ROADMAP.md
├── build.gradle.kts
├── docker/
│   ├── Dockerfile
│   └── build-spec.sh
├── docs/
│   ├── build.gradle.kts
│   ├── html/
│   │   └── build.gradle.kts
│   ├── htmlSections/
│   │   └── build.gradle.kts
│   ├── pdf/
│   │   └── build.gradle.kts
│   ├── pdfSections/
│   │   └── build.gradle.kts
│   ├── scripts/
│   │   ├── build/
│   │   │   ├── buildHtml.sh
│   │   │   ├── buildHtmlBySections.sh
│   │   │   ├── buildPdf.sh
│   │   │   ├── buildPdfBySections.sh
│   │   │   ├── directories.sh
│   │   │   └── settings.sh
│   │   └── filters/
│   │       ├── brokenReferencesReportFilter.sh
│   │       ├── compoundFilter.sh
│   │       ├── copyPasteFilter.sh
│   │       ├── inlineDiagramFilter.sh
│   │       ├── inlineKatexFilter.sh
│   │       ├── markSentencesFilter.sh
│   │       ├── mathInCodeFilter.sh
│   │       ├── processTodoFilter.sh
│   │       └── splitSections.sh
│   └── src/
│       ├── main/
│       │   └── kotlin/
│       │       └── org/
│       │           └── jetbrains/
│       │               └── kotlin/
│       │                   └── spec/
│       │                       ├── brokenReferencesReporter.kt
│       │                       ├── compoundFilter.kt
│       │                       ├── convertGrammar.kt
│       │                       ├── copyPasteFilter.kt
│       │                       ├── inlineDiagramFilter.kt
│       │                       ├── inlineKatex.kt
│       │                       ├── markSentencesFilter.kt
│       │                       ├── mathInCodeFilter.kt
│       │                       ├── processTodoFilter.kt
│       │                       └── splitDocument.kt
│       └── md/
│           ├── commands.md
│           ├── dynamic_math.html
│           ├── epilogue.html
│           ├── index.md
│           ├── kotlin.core/
│           │   ├── annotations.md
│           │   ├── builtins.md
│           │   ├── cdfa.md
│           │   ├── concurrency.md
│           │   ├── coroutines.md
│           │   ├── declarations.md
│           │   ├── exceptions.md
│           │   ├── expressions.md
│           │   ├── index.md
│           │   ├── inheritance.md
│           │   ├── introduction.md
│           │   ├── operators.md
│           │   ├── overload-resolution.md
│           │   ├── packages.md
│           │   ├── rtti.md
│           │   ├── scoping.md
│           │   ├── statements.md
│           │   ├── syntax.md
│           │   ├── type-constraints.md
│           │   ├── type-inference.md
│           │   └── type-system.md
│           ├── kotlin.jvm/
│           │   ├── declarations.md
│           │   ├── index.md
│           │   ├── lambda-expressions.md
│           │   ├── rtti.md
│           │   └── type-system.md
│           ├── kotlin.xml
│           ├── preamble.html
│           ├── preamble.tex
│           └── preface.html
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── grammar/
│   ├── README.md
│   ├── build.gradle.kts
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── scripts/
│   │   ├── compareActuals.sh
│   │   ├── processActuals.sh
│   │   └── processModified.sh
│   ├── src/
│   │   ├── main/
│   │   │   └── antlr/
│   │   │       ├── KotlinLexer.g4
│   │   │       ├── KotlinLexer.tokens
│   │   │       ├── KotlinParser.g4
│   │   │       ├── UnicodeClasses.g4
│   │   │       └── UnicodeClasses.tokens
│   │   └── test/
│   │       └── org/
│   │           └── jetbrains/
│   │               └── kotlin/
│   │                   └── spec/
│   │                       └── grammar/
│   │                           ├── TestRunner.kt
│   │                           ├── parsetree/
│   │                           │   ├── ComparisonTree.kt
│   │                           │   ├── KotlinParseTree.kt
│   │                           │   └── ParseTreeUtil.kt
│   │                           ├── psi/
│   │                           │   └── PsiTextParser.kt
│   │                           └── util/
│   │                               └── TestUtil.kt
│   └── testData/
│       ├── diagnostics/
│       │   ├── Abstract.b.antlrtree.txt
│       │   ├── Abstract.c.antlrtree.txt
│       │   ├── AbstractAccessor.antlrtree.txt
│       │   ├── AbstractInAbstractClass.antlrtree.txt
│       │   ├── AbstractInClass.antlrtree.txt
│       │   ├── AbstractInTrait.antlrtree.txt
│       │   ├── AnonymousInitializerVarAndConstructor.antlrtree.txt
│       │   ├── AnonymousInitializers.antlrtree.txt
│       │   ├── AssignToArrayElement.antlrtree.txt
│       │   ├── AutoCreatedIt.antlrtree.txt
│       │   ├── BacktickNames.antlrtree.txt
│       │   ├── Basic.antlrtree.txt
│       │   ├── BinaryCallsOnNullableValues.antlrtree.txt
│       │   ├── Bounds.a.antlrtree.txt
│       │   ├── Bounds.b.antlrtree.txt
│       │   ├── BreakContinue.antlrtree.txt
│       │   ├── BreakContinueInWhen_after.antlrtree.txt
│       │   ├── BreakContinueInWhen_before.antlrtree.txt
│       │   ├── Builders.a.antlrtree.txt
│       │   ├── Casts.antlrtree.txt
│       │   ├── CharacterLiterals.antlrtree.txt
│       │   ├── CompareToWithErrorType.antlrtree.txt
│       │   ├── Constants.antlrtree.txt
│       │   ├── Constructors.antlrtree.txt
│       │   ├── ConstructorsOfPrimitives.antlrtree.txt
│       │   ├── CovariantOverrideType.antlrtree.txt
│       │   ├── DefaultValueForParameterInFunctionType.antlrtree.txt
│       │   ├── DefaultValuesCheckWithoutBody.antlrtree.txt
│       │   ├── DefaultValuesTypechecking.antlrtree.txt
│       │   ├── DeferredTypes.antlrtree.txt
│       │   ├── DeprecatedGetSetPropertyDelegateConvention.antlrtree.txt
│       │   ├── DeprecatedUnaryOperatorConventions.antlrtree.txt
│       │   ├── DiamondFunction.antlrtree.txt
│       │   ├── DiamondFunctionGeneric.antlrtree.txt
│       │   ├── DiamondProperty.antlrtree.txt
│       │   ├── Dollar.antlrtree.txt
│       │   ├── EnumEntryAsType.antlrtree.txt
│       │   ├── ExtensionCallInvoke.antlrtree.txt
│       │   ├── ExternalAccessors.antlrtree.txt
│       │   ├── ExternalAndAbstract.antlrtree.txt
│       │   ├── ForRangeConventions.antlrtree.txt
│       │   ├── FreeFunctionCalledAsExtension.antlrtree.txt
│       │   ├── FreeFunctionCalledAsExtension.reversed.antlrtree.txt
│       │   ├── FunctionCalleeExpressions.antlrtree.txt
│       │   ├── FunctionParameterWithoutType.antlrtree.txt
│       │   ├── FunctionReturnTypes.antlrtree.txt
│       │   ├── GenericArgumentConsistency.a.antlrtree.txt
│       │   ├── GenericArgumentConsistency.b.antlrtree.txt
│       │   ├── GenericArgumentConsistency.c.antlrtree.txt
│       │   ├── GenericArgumentConsistency.d.antlrtree.txt
│       │   ├── GenericArgumentConsistency.e.antlrtree.txt
│       │   ├── GenericArgumentConsistency.f.antlrtree.txt
│       │   ├── GenericFunctionIsLessSpecific.antlrtree.txt
│       │   ├── IdentityComparisonWithPrimitives.antlrtree.txt
│       │   ├── IncDec.antlrtree.txt
│       │   ├── IncDecOperatorsInExpectClass.antlrtree.txt
│       │   ├── IncorrectCharacterLiterals.antlrtree.txt
│       │   ├── InferNullabilityInThenBlock.antlrtree.txt
│       │   ├── Infix.antlrtree.txt
│       │   ├── InfixModifierApplicability.antlrtree.txt
│       │   ├── InvokeAndRecursiveResolve.antlrtree.txt
│       │   ├── IsExpressions.KotlinFile.antlrtree.txt
│       │   ├── LValueAssignment.antlrtree.txt
│       │   ├── LValueAssignment.diff
│       │   ├── LiteralAsResult.antlrtree.txt
│       │   ├── LocalClassAndShortSubpackageNames.A.antlrtree.txt
│       │   ├── LocalClassAndShortSubpackageNames.B.antlrtree.txt
│       │   ├── MultilineStringTemplates.antlrtree.txt
│       │   ├── MultipleBounds.antlrtree.txt
│       │   ├── NamedFunctionTypeParameterInSupertype.antlrtree.txt
│       │   ├── Nullability.antlrtree.txt
│       │   ├── NumberPrefixAndSuffix.antlrtree.txt
│       │   ├── ObjectWithConstructor.antlrtree.txt
│       │   ├── OperatorChecks.antlrtree.txt
│       │   ├── Operators.antlrtree.txt
│       │   ├── OperatorsWithWrongNames.antlrtree.txt
│       │   ├── OverrideFunctionWithParamDefaultValue.antlrtree.txt
│       │   ├── OverridenFunctionAndSpecifiedTypeParameter.antlrtree.txt
│       │   ├── OverridenSetterVisibility.antlrtree.txt
│       │   ├── OverridingVarByVal.antlrtree.txt
│       │   ├── PackageInExpressionPosition.antlrtree.txt
│       │   ├── PackageInTypePosition.a.antlrtree.txt
│       │   ├── PackageInTypePosition.b.antlrtree.txt
│       │   ├── PackageQualified.a.antlrtree.txt
│       │   ├── PackageQualified.b.antlrtree.txt
│       │   ├── PackageQualified.c.antlrtree.txt
│       │   ├── PackageQualified.d.antlrtree.txt
│       │   ├── PrimaryConstructors.antlrtree.txt
│       │   ├── PrivateFromOuterPackage.a.antlrtree.txt
│       │   ├── PrivateFromOuterPackage.b.antlrtree.txt
│       │   ├── PrivateFromOuterPackage.c.antlrtree.txt
│       │   ├── PrivateSetterForOverridden.antlrtree.txt
│       │   ├── ProcessingEmptyImport.antlrtree.txt
│       │   ├── ProjectionOnFunctionArgumentErrror.antlrtree.txt
│       │   ├── ProjectionsInSupertypes.antlrtree.txt
│       │   ├── Properties.antlrtree.txt
│       │   ├── PropertyInitializers.antlrtree.txt
│       │   ├── QualifiedExpressions.antlrtree.txt
│       │   ├── RecursiveResolve.antlrtree.txt
│       │   ├── RecursiveTypeInference.a.antlrtree.txt
│       │   ├── RecursiveTypeInference.b.antlrtree.txt
│       │   ├── RecursiveTypeInference.c.antlrtree.txt
│       │   ├── RecursiveTypeInference.d.antlrtree.txt
│       │   ├── RecursiveTypeInference.e.antlrtree.txt
│       │   ├── RecursiveTypeInference.f.antlrtree.txt
│       │   ├── RecursiveTypeParameterEqualityCheck.antlrtree.txt
│       │   ├── ReserveYield.1.antlrtree.txt
│       │   ├── ReserveYield.2.antlrtree.txt
│       │   ├── ReserveYield2.1.antlrtree.txt
│       │   ├── ReserveYield2.2.antlrtree.txt
│       │   ├── ReserveYield2.3.antlrtree.txt
│       │   ├── ReserveYield2.4.antlrtree.txt
│       │   ├── ReserveYieldNoMore.1.antlrtree.txt
│       │   ├── ReserveYieldNoMore.2.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.1.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.2.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.3.antlrtree.txt
│       │   ├── ReserveYieldNoMore2.4.antlrtree.txt
│       │   ├── ResolveOfJavaGenerics.antlrtree.txt
│       │   ├── ResolveToJava.a.antlrtree.txt
│       │   ├── ResolveToJava.b.antlrtree.txt
│       │   ├── Return.antlrtree.txt
│       │   ├── ReturnInFunctionWithoutBody.antlrtree.txt
│       │   ├── SafeCallInvoke.antlrtree.txt
│       │   ├── SafeCallNonNullReceiver.antlrtree.txt
│       │   ├── SafeCallNonNullReceiver2.antlrtree.txt
│       │   ├── SafeCallNonNullReceiverReturnNull.antlrtree.txt
│       │   ├── SafeCallOnFakePackage.anotherTest.antlrtree.txt
│       │   ├── SafeCallOnFakePackage.test.antlrtree.txt
│       │   ├── SafeCallOnSuperReceiver.antlrtree.txt
│       │   ├── SafeCallUnknownType.antlrtree.txt
│       │   ├── Serializable.antlrtree.txt
│       │   ├── SetterVisibility.antlrtree.txt
│       │   ├── ShiftFunctionTypes.a.antlrtree.txt
│       │   ├── ShiftFunctionTypes.b.antlrtree.txt
│       │   ├── ShiftFunctionTypes.c.antlrtree.txt
│       │   ├── StarsInFunctionCalls.antlrtree.txt
│       │   ├── StringPrefixAndSuffix.antlrtree.txt
│       │   ├── StringTemplates.antlrtree.txt
│       │   ├── SupertypeListChecks.antlrtree.txt
│       │   ├── SyntaxErrorInTestHighlighting.antlrtree.txt
│       │   ├── SyntaxErrorInTestHighlightingEof.antlrtree.txt
│       │   ├── TraitOverrideObjectMethods.antlrtree.txt
│       │   ├── TraitWithConstructor.antlrtree.txt
│       │   ├── TypeInference.antlrtree.txt
│       │   ├── TypeMismatchOnOverrideWithSyntaxErrors.antlrtree.txt
│       │   ├── Underscore.antlrtree.txt
│       │   ├── UnderscoreUsageInAnnotation.antlrtree.txt
│       │   ├── UnderscoreUsageInCall.antlrtree.txt
│       │   ├── UnderscoreUsageInCallableRefTypeLHS.antlrtree.txt
│       │   ├── UnderscoreUsageInType.antlrtree.txt
│       │   ├── UnderscoreUsageInVariableAsFunctionCall.antlrtree.txt
│       │   ├── UnitByDefaultForFunctionTypes.antlrtree.txt
│       │   ├── UnitValue.antlrtree.txt
│       │   ├── Unresolved.antlrtree.txt
│       │   ├── UnusedInDestructuring.antlrtree.txt
│       │   ├── UnusedParameters.antlrtree.txt
│       │   ├── UnusedVariables.antlrtree.txt
│       │   ├── ValAndFunOverrideCompatibilityClash.antlrtree.txt
│       │   ├── VarargTypes.antlrtree.txt
│       │   ├── Varargs.antlrtree.txt
│       │   ├── Variance.antlrtree.txt
│       │   ├── abstractClassReference.antlrtree.txt
│       │   ├── ambiguityNamedVararg.antlrtree.txt
│       │   ├── annotationArgumentWithAliasedArrayType.antlrtree.txt
│       │   ├── annotations/
│       │   │   ├── AmbigiousAnnotationConstructor.antlrtree.txt
│       │   │   ├── AnnotatedBlock.antlrtree.txt
│       │   │   ├── AnnotatedConstructor.antlrtree.txt
│       │   │   ├── AnnotatedConstructorParams.antlrtree.txt
│       │   │   ├── AnnotatedLocalObjectFun.antlrtree.txt
│       │   │   ├── AnnotatedLocalObjectProperty.antlrtree.txt
│       │   │   ├── AnnotatedLoop.antlrtree.txt
│       │   │   ├── AnnotatedNullableTypes.antlrtree.txt
│       │   │   ├── AnnotatedResultType.antlrtree.txt
│       │   │   ├── AnnotatedTryCatch.antlrtree.txt
│       │   │   ├── AnnotationAsDefaultParameter.antlrtree.txt
│       │   │   ├── AnnotationForClassTypeParameter_15.antlrtree.txt
│       │   │   ├── AnnotationForClassTypeParameter_16.antlrtree.txt
│       │   │   ├── AnnotationForClassTypeParameter_typeUseFlag.antlrtree.txt
│       │   │   ├── AnnotationForFunctionTypeParameter.antlrtree.txt
│       │   │   ├── AnnotationForObject.antlrtree.txt
│       │   │   ├── AnnotationIdentifier.a.antlrtree.txt
│       │   │   ├── AnnotationIdentifier.other_c.antlrtree.txt
│       │   │   ├── AnnotationIdentifier.test_b.antlrtree.txt
│       │   │   ├── AnnotationOnObject.antlrtree.txt
│       │   │   ├── AnnotationsForClasses.antlrtree.txt
│       │   │   ├── AnnotationsForPropertyTypeParameter.antlrtree.txt
│       │   │   ├── BasicAnnotations.antlrtree.txt
│       │   │   ├── ConstructorCall.antlrtree.txt
│       │   │   ├── ConstructorCallAllowed.antlrtree.txt
│       │   │   ├── DanglingMixed.antlrtree.txt
│       │   │   ├── DanglingNoBrackets.antlrtree.txt
│       │   │   ├── DanglingWithBrackets.antlrtree.txt
│       │   │   ├── Deprecated.antlrtree.txt
│       │   │   ├── InheritingAnnotationClass.antlrtree.txt
│       │   │   ├── JavaAnnotationConstructors.antlrtree.txt
│       │   │   ├── JvmSerializableLambdaAnnotation.antlrtree.txt
│       │   │   ├── MultiDeclaration.antlrtree.txt
│       │   │   ├── MutuallyRecursivelyAnnotatedGlobalFunction.antlrtree.txt
│       │   │   ├── MutuallyRecursivelyAnnotatedGlobalFunction.reversed.antlrtree.txt
│       │   │   ├── NonAnnotationClass.antlrtree.txt
│       │   │   ├── RecursivelyAnnotated.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedFunctionParameter.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedGlobalFunction.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedGlobalProperty.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedParameter.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedParameterType.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedParameterWithAt.antlrtree.txt
│       │   │   ├── RecursivelyAnnotatedProperty.antlrtree.txt
│       │   │   ├── RecursivelyIncorrectlyAnnotatedParameter.antlrtree.txt
│       │   │   ├── RetentionsOfAnnotationWithExpressionTarget_after.antlrtree.txt
│       │   │   ├── RetentionsOfAnnotationWithExpressionTarget_before.antlrtree.txt
│       │   │   ├── UnresolvedAnnotationOnObject.antlrtree.txt
│       │   │   ├── WrongAnnotationArgsOnObject.antlrtree.txt
│       │   │   ├── annotatedExpressionInsideAnnotation.antlrtree.txt
│       │   │   ├── annotationInheritance.antlrtree.txt
│       │   │   ├── annotationModifier.antlrtree.txt
│       │   │   ├── annotationOnParameterInFunctionType.antlrtree.txt
│       │   │   ├── annotationParameterMustBeConstant/
│       │   │   │   ├── annotationConstructorDefaultParameter.antlrtree.txt
│       │   │   │   ├── booleanLocalVal.antlrtree.txt
│       │   │   │   ├── compareAndEquals.antlrtree.txt
│       │   │   │   ├── enumConst_after.antlrtree.txt
│       │   │   │   ├── enumConst_before.antlrtree.txt
│       │   │   │   ├── javaProperties.a.antlrtree.txt
│       │   │   │   ├── kotlinProperties.antlrtree.txt
│       │   │   │   ├── standaloneInExpression.antlrtree.txt
│       │   │   │   └── strings.antlrtree.txt
│       │   │   ├── annotationRenderingInTypes.antlrtree.txt
│       │   │   ├── annotationsOnDataClassCopy.antlrtree.txt
│       │   │   ├── annotationsOnLambdaAsCallArgument.antlrtree.txt
│       │   │   ├── annotationsOnNullableTypes.antlrtree.txt
│       │   │   ├── arrayLiteralInAnnotationCompanion_after.antlrtree.txt
│       │   │   ├── arrayLiteralInAnnotationCompanion_before.antlrtree.txt
│       │   │   ├── atAnnotationResolve.antlrtree.txt
│       │   │   ├── blockLevelOnTheSameLineWarning.antlrtree.txt
│       │   │   ├── cycleInParameters_after.antlrtree.txt
│       │   │   ├── cycleInParameters_array.antlrtree.txt
│       │   │   ├── cycleInParameters_before.antlrtree.txt
│       │   │   ├── dontReportWarningAboutChangingExecutionOrderForVararg.antlrtree.txt
│       │   │   ├── extensionFunctionType.antlrtree.txt
│       │   │   ├── forParameterAnnotationResolve.antlrtree.txt
│       │   │   ├── functionalTypes/
│       │   │   │   ├── nonParenthesizedAnnotationsWithError.antlrtree.txt
│       │   │   │   ├── nonParenthesizedAnnotationsWithoutError.antlrtree.txt
│       │   │   │   ├── parenthesizedAnnotations.antlrtree.txt
│       │   │   │   └── propagteAnyAnnotations.antlrtree.txt
│       │   │   ├── illegalRequireKotlinValue.antlrtree.txt
│       │   │   ├── illegalSinceKotlinValue.antlrtree.txt
│       │   │   ├── inheritFromAnnotationClass.antlrtree.txt
│       │   │   ├── inheritFromAnnotationClass2.test.antlrtree.txt
│       │   │   ├── invalidTypesInAnnotationConstructor.antlrtree.txt
│       │   │   ├── javaAnnotationAndJavaClassWithIt.foo_AnotherTarget.antlrtree.txt
│       │   │   ├── javaAnnotationWithClassArray.main.antlrtree.txt
│       │   │   ├── kt1860-negative.antlrtree.txt
│       │   │   ├── kt1860-positive.antlrtree.txt
│       │   │   ├── kt1886annotationBody_after.antlrtree.txt
│       │   │   ├── kt1886annotationBody_before.antlrtree.txt
│       │   │   ├── missingValOnParameter.antlrtree.txt
│       │   │   ├── nestedClassesInAnnotations.antlrtree.txt
│       │   │   ├── noNameProperty.antlrtree.txt
│       │   │   ├── onExpression.antlrtree.txt
│       │   │   ├── onFunctionParameter.antlrtree.txt
│       │   │   ├── onInitializer.antlrtree.txt
│       │   │   ├── onLoops.antlrtree.txt
│       │   │   ├── onLoopsUnreachable.antlrtree.txt
│       │   │   ├── onMultiDeclaration.antlrtree.txt
│       │   │   ├── options/
│       │   │   │   ├── annotationAsArg.antlrtree.txt
│       │   │   │   ├── annotationAsArgComplex.antlrtree.txt
│       │   │   │   ├── assignment.antlrtree.txt
│       │   │   │   ├── documented.antlrtree.txt
│       │   │   │   ├── forParam.antlrtree.txt
│       │   │   │   ├── functionExpression.antlrtree.txt
│       │   │   │   ├── functions.antlrtree.txt
│       │   │   │   ├── javaDocumented.DocumentedAnnotations.antlrtree.txt
│       │   │   │   ├── javaKotlinTargetRetention.antlrtree.txt
│       │   │   │   ├── javaKotlinTargetRetentionWithExplicitImport.antlrtree.txt
│       │   │   │   ├── javaretention.AnnotationRetentions.antlrtree.txt
│       │   │   │   ├── multiDeclaration.antlrtree.txt
│       │   │   │   ├── objectLiteral.antlrtree.txt
│       │   │   │   ├── prefix.antlrtree.txt
│       │   │   │   ├── retention.antlrtree.txt
│       │   │   │   ├── setterParam.antlrtree.txt
│       │   │   │   ├── target.antlrtree.txt
│       │   │   │   ├── targets/
│       │   │   │   │   ├── accessors.antlrtree.txt
│       │   │   │   │   ├── annotation.antlrtree.txt
│       │   │   │   │   ├── classifier.antlrtree.txt
│       │   │   │   │   ├── constructor.antlrtree.txt
│       │   │   │   │   ├── empty.antlrtree.txt
│       │   │   │   │   ├── expr.antlrtree.txt
│       │   │   │   │   ├── field.antlrtree.txt
│       │   │   │   │   ├── file.annotation.antlrtree.txt
│       │   │   │   │   ├── file.another.antlrtree.txt
│       │   │   │   │   ├── file.other.antlrtree.txt
│       │   │   │   │   ├── function.antlrtree.txt
│       │   │   │   │   ├── funtypeargs.antlrtree.txt
│       │   │   │   │   ├── incorrect.antlrtree.txt
│       │   │   │   │   ├── init.antlrtree.txt
│       │   │   │   │   ├── java.test_AnnotationTargets.antlrtree.txt
│       │   │   │   │   ├── local.antlrtree.txt
│       │   │   │   │   ├── nested.antlrtree.txt
│       │   │   │   │   ├── property.antlrtree.txt
│       │   │   │   │   ├── returntype.antlrtree.txt
│       │   │   │   │   ├── suppress.antlrtree.txt
│       │   │   │   │   ├── type.antlrtree.txt
│       │   │   │   │   ├── typeParams.antlrtree.txt
│       │   │   │   │   ├── typeargs.antlrtree.txt
│       │   │   │   │   └── valueparam.antlrtree.txt
│       │   │   │   └── unrepeatable.antlrtree.txt
│       │   │   ├── parameters/
│       │   │   │   ├── byte.antlrtree.txt
│       │   │   │   ├── char.antlrtree.txt
│       │   │   │   ├── double.antlrtree.txt
│       │   │   │   ├── expressions/
│       │   │   │   │   ├── andAnd.antlrtree.txt
│       │   │   │   │   ├── boolean.antlrtree.txt
│       │   │   │   │   ├── char.antlrtree.txt
│       │   │   │   │   ├── compositeCallBinary.antlrtree.txt
│       │   │   │   │   ├── divide.antlrtree.txt
│       │   │   │   │   ├── double.antlrtree.txt
│       │   │   │   │   ├── eqeq.antlrtree.txt
│       │   │   │   │   ├── escapedString.antlrtree.txt
│       │   │   │   │   ├── float.antlrtree.txt
│       │   │   │   │   ├── gt.antlrtree.txt
│       │   │   │   │   ├── gteq.antlrtree.txt
│       │   │   │   │   ├── intrincics.antlrtree.txt
│       │   │   │   │   ├── labeled.antlrtree.txt
│       │   │   │   │   ├── long.antlrtree.txt
│       │   │   │   │   ├── lt.antlrtree.txt
│       │   │   │   │   ├── lteq.antlrtree.txt
│       │   │   │   │   ├── maxValue.antlrtree.txt
│       │   │   │   │   ├── maxValueByte.antlrtree.txt
│       │   │   │   │   ├── maxValueInt.antlrtree.txt
│       │   │   │   │   ├── miltiply.antlrtree.txt
│       │   │   │   │   ├── minus.antlrtree.txt
│       │   │   │   │   ├── mod.antlrtree.txt
│       │   │   │   │   ├── multilineString.antlrtree.txt
│       │   │   │   │   ├── not.antlrtree.txt
│       │   │   │   │   ├── noteq.antlrtree.txt
│       │   │   │   │   ├── orOr.antlrtree.txt
│       │   │   │   │   ├── paranthesized.antlrtree.txt
│       │   │   │   │   ├── plus.antlrtree.txt
│       │   │   │   │   ├── simpleCallBinary.antlrtree.txt
│       │   │   │   │   ├── stringPlusInt.antlrtree.txt
│       │   │   │   │   ├── stringTemplate.antlrtree.txt
│       │   │   │   │   ├── strings.antlrtree.txt
│       │   │   │   │   ├── unaryMinus.antlrtree.txt
│       │   │   │   │   └── unaryPlus.antlrtree.txt
│       │   │   │   ├── float.antlrtree.txt
│       │   │   │   ├── int.antlrtree.txt
│       │   │   │   ├── long.antlrtree.txt
│       │   │   │   └── short.antlrtree.txt
│       │   │   ├── rendering/
│       │   │   │   ├── cannotOverrideInvisibleMember.antlrtree.txt
│       │   │   │   ├── conflictingOverloads.antlrtree.txt
│       │   │   │   ├── differentNamesForParameter.antlrtree.txt
│       │   │   │   ├── memberProjectedOut.antlrtree.txt
│       │   │   │   ├── multipleInheritedDefaults.antlrtree.txt
│       │   │   │   ├── notImplementedMembers.antlrtree.txt
│       │   │   │   ├── notImplementedMembersAroundJava.main.antlrtree.txt
│       │   │   │   ├── tooManyArguments.antlrtree.txt
│       │   │   │   ├── typeMismatchDueToTypeProjections.antlrtree.txt
│       │   │   │   ├── typeMismatchOnOverride.antlrtree.txt
│       │   │   │   ├── typeMismatchOnOverrideJavaNullable.k.antlrtree.txt
│       │   │   │   ├── typeMismatchOnOverrideJavaNullable.ll.k.antlrtree.txt
│       │   │   │   └── unusedValue.antlrtree.txt
│       │   │   ├── repeatable/
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_5.KR.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_5.KS.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_5.test.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_6.KR.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_6.KS.antlrtree.txt
│       │   │   │   ├── containerAndAnnotationAreBothApplied_1_6.test.antlrtree.txt
│       │   │   │   ├── containerArguments_1_5.antlrtree.txt
│       │   │   │   ├── containerArguments_1_6.antlrtree.txt
│       │   │   │   ├── containerRetention_1_5.antlrtree.txt
│       │   │   │   ├── containerRetention_1_6.antlrtree.txt
│       │   │   │   ├── containerTarget_1_6.antlrtree.txt
│       │   │   │   ├── javaRepeatableInKotlin.antlrtree.txt
│       │   │   │   ├── javaRepeatable_1_5.usage.antlrtree.txt
│       │   │   │   ├── javaRepeatable_1_6.usage.antlrtree.txt
│       │   │   │   ├── javaUnrepeatable_1_5.usage.antlrtree.txt
│       │   │   │   ├── javaUnrepeatable_1_6.usage.antlrtree.txt
│       │   │   │   ├── kotlinRepeatable_1_5.antlrtree.txt
│       │   │   │   ├── kotlinRepeatable_1_6.antlrtree.txt
│       │   │   │   ├── nestedClassContainer_1_5.antlrtree.txt
│       │   │   │   └── nestedClassContainer_1_6.antlrtree.txt
│       │   │   ├── requireKotlin.antlrtree.txt
│       │   │   ├── typeAnnotations.antlrtree.txt
│       │   │   ├── typeArgumentsInAnnotation.antlrtree.txt
│       │   │   ├── typeParameterAsAnnotation.antlrtree.txt
│       │   │   ├── typeUse/
│       │   │   │   ├── kt19455.antlrtree.txt
│       │   │   │   ├── kt25876.antlrtree.txt
│       │   │   │   ├── kt45905.main.antlrtree.txt
│       │   │   │   ├── kt46173.antlrtree.txt
│       │   │   │   ├── kt47772.antlrtree.txt
│       │   │   │   ├── kt8325.antlrtree.txt
│       │   │   │   └── nonTypeUseAnnotationOnType.antlrtree.txt
│       │   │   ├── unresolvedReferenceRange.antlrtree.txt
│       │   │   └── withUseSiteTarget/
│       │   │       ├── DelegateAnnotations.antlrtree.txt
│       │   │       ├── FieldAnnotations.antlrtree.txt
│       │   │       ├── FileAnnotations.1.antlrtree.txt
│       │   │       ├── FileAnnotations.2.antlrtree.txt
│       │   │       ├── FileAnnotations.annotations.antlrtree.txt
│       │   │       ├── GetterAnnotations.antlrtree.txt
│       │   │       ├── ParamAnnotations.antlrtree.txt
│       │   │       ├── PropertyAnnotations.antlrtree.txt
│       │   │       ├── ReceiverAnnotations.antlrtree.txt
│       │   │       ├── SetterAnnotations.antlrtree.txt
│       │   │       ├── SparamAnnotations.antlrtree.txt
│       │   │       ├── diagnosticFileAnnotationInWrongPlace.antlrtree.txt
│       │   │       ├── diagnosticWithoutPackage.antlrtree.txt
│       │   │       ├── diagnosticWithoutPackageWithSimpleAnnotation.antlrtree.txt
│       │   │       ├── fileAnnotationWithoutColon_after.antlrtree.txt
│       │   │       ├── fileAnnotationWithoutColon_before.antlrtree.txt
│       │   │       ├── kt23992.antlrtree.txt
│       │   │       ├── kt23992_after.antlrtree.txt
│       │   │       ├── kt26638.antlrtree.txt
│       │   │       ├── kt26638_after.antlrtree.txt
│       │   │       ├── prohibitUseSiteGetTargetAnnotationsOff.antlrtree.txt
│       │   │       ├── prohibitUseSiteGetTargetAnnotationsOn.antlrtree.txt
│       │   │       ├── receiverUseSiteTargetOnExtensionFunction_after.antlrtree.txt
│       │   │       ├── receiverUseSiteTargetOnExtensionFunction_before.antlrtree.txt
│       │   │       ├── repeatable.antlrtree.txt
│       │   │       ├── wrongParamAnnotationsOnTypesError.antlrtree.txt
│       │   │       ├── wrongParamAnnotationsOnTypes_after.antlrtree.txt
│       │   │       └── wrongParamAnnotationsOnTypes_before.antlrtree.txt
│       │   ├── backingField/
│       │   │   ├── CustomGetSet.antlrtree.txt
│       │   │   ├── CustomGetVal.antlrtree.txt
│       │   │   ├── CustomGetValGlobal.antlrtree.txt
│       │   │   ├── CustomGetVar.antlrtree.txt
│       │   │   ├── CustomSet.antlrtree.txt
│       │   │   ├── ExtensionProperty.antlrtree.txt
│       │   │   ├── FieldAsParam.antlrtree.txt
│       │   │   ├── FieldAsProperty.antlrtree.txt
│       │   │   ├── FieldDerived.antlrtree.txt
│       │   │   ├── FieldInInterface.antlrtree.txt
│       │   │   ├── FieldInLocal.antlrtree.txt
│       │   │   ├── FieldOnVal.antlrtree.txt
│       │   │   ├── FieldOnVar.antlrtree.txt
│       │   │   ├── FieldReassignment_after.antlrtree.txt
│       │   │   ├── FieldReassignment_before.antlrtree.txt
│       │   │   ├── FieldShadow.antlrtree.txt
│       │   │   ├── InitCustomSetter.antlrtree.txt
│       │   │   ├── InitOpenSetter.antlrtree.txt
│       │   │   ├── LocalDeclarations.antlrtree.txt
│       │   │   ├── MustBeInitializedEffectivelyFinalOff.antlrtree.txt
│       │   │   ├── MustBeInitializedEffectivelyFinalOn.antlrtree.txt
│       │   │   ├── OpenValPartialDeferredInitErrorAnyway.antlrtree.txt
│       │   │   ├── OpenValPartialDeferredInitSecondaryConstructorErrorAnyway.antlrtree.txt
│       │   │   ├── OpenValPartialDeferredInitTwoSecondaryConstructorsErrorAnyway.antlrtree.txt
│       │   │   ├── SetterWithExplicitType.antlrtree.txt
│       │   │   ├── ValDeferredInitInFinalClass.antlrtree.txt
│       │   │   ├── ValDeferredInitInOpenClassOpenValError.antlrtree.txt
│       │   │   ├── ValDeferredInitInOpenClassOpenValWarning.antlrtree.txt
│       │   │   ├── ValWithSetterDeferredInit.antlrtree.txt
│       │   │   ├── VarDeferredInitInFinalClass.antlrtree.txt
│       │   │   ├── VarDeferredInitInOpenClass.antlrtree.txt
│       │   │   ├── kt782packageLevel.antlrtree.txt
│       │   │   └── prohibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor/
│       │   │       ├── implicitPrimaryConstructor_errorAnyway.antlrtree.txt
│       │   │       ├── noPrimary_oneInheritedSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneInheritedSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_deferredInitInSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_deferredInitInSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValError_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValError_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValWarning_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openValWarning_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openVar_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_oneSecondary_openVar_mustBeInitializedWarning.antlrtree.txt
│       │   │       ├── noPrimary_partialDeferredInitInSecondary_errorAnyway.antlrtree.txt
│       │   │       ├── noPrimary_partialDeferredInitInTwoSecondaries_errorAnyway.antlrtree.txt
│       │   │       ├── noPrimary_twoSecondary_mustBeInitializedError.antlrtree.txt
│       │   │       ├── noPrimary_twoSecondary_mustBeInitializedWarning.antlrtree.txt
│       │   │       └── onePrimary_oneSecondary_errorAnyway.antlrtree.txt
│       │   ├── callableReference/
│       │   │   ├── adapted/
│       │   │   │   ├── adaptationByExpectTypeOutsideCall.antlrtree.txt
│       │   │   │   ├── adaptationInWhenWithMapOf.antlrtree.txt
│       │   │   │   ├── adaptationToOverridenWithoutDefault.antlrtree.txt
│       │   │   │   ├── noKFunctionForAdaptation.antlrtree.txt
│       │   │   │   └── simpleAdaptationOutsideOfCall.antlrtree.txt
│       │   │   ├── bareType.antlrtree.txt
│       │   │   ├── bound/
│       │   │   │   ├── classVsStarImportedCompanion.1.antlrtree.txt
│       │   │   │   ├── classVsStarImportedCompanion.2.antlrtree.txt
│       │   │   │   ├── classVsStarImportedObject.1.antlrtree.txt
│       │   │   │   ├── classVsStarImportedObject.2.antlrtree.txt
│       │   │   │   ├── companionObject.antlrtree.txt
│       │   │   │   ├── controlFlow.antlrtree.txt
│       │   │   │   ├── dataFlow.antlrtree.txt
│       │   │   │   ├── expectedType.antlrtree.txt
│       │   │   │   ├── expressionWithNullableType.test.antlrtree.txt
│       │   │   │   ├── functionCallWithoutArguments.antlrtree.txt
│       │   │   │   ├── innerNested.antlrtree.txt
│       │   │   │   ├── kt12843.antlrtree.txt
│       │   │   │   ├── noThisInSuperCall.antlrtree.txt
│       │   │   │   ├── object.antlrtree.txt
│       │   │   │   ├── privateToThis.antlrtree.txt
│       │   │   │   ├── referenceToStaticMethodOnInstance.test.antlrtree.txt
│       │   │   │   ├── reservedExpressionSyntax.antlrtree.txt
│       │   │   │   ├── reservedExpressionSyntax2.antlrtree.txt
│       │   │   │   ├── reservedExpressionSyntax3.antlrtree.txt
│       │   │   │   ├── syntheticExtensionOnLHS.test.antlrtree.txt
│       │   │   │   └── valueOfTypeParameterType.antlrtree.txt
│       │   │   ├── callableReferenceAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── callableReferenceAssignmentToVar.lib.antlrtree.txt
│       │   │   ├── callableReferenceAssignmentToVar.main.antlrtree.txt
│       │   │   ├── callableReferenceInWhenExpression.antlrtree.txt
│       │   │   ├── callableReferenceWithMostSpecificGenericTypeParameter.antlrtree.txt
│       │   │   ├── callableReferencesToCompanionMembers.antlrtree.txt
│       │   │   ├── classVsPackage.1.antlrtree.txt
│       │   │   ├── classVsPackage.2.antlrtree.txt
│       │   │   ├── classVsPackage.test.antlrtree.txt
│       │   │   ├── compatibilityResolveWithVarargAndOperatorCall.antlrtree.txt
│       │   │   ├── constraintFromLHSWithCorrectDirection.antlrtree.txt
│       │   │   ├── constraintFromLHSWithCorrectDirectionError.antlrtree.txt
│       │   │   ├── correctCandidateWithCompatibilityForSeveralCandidates.antlrtree.txt
│       │   │   ├── correctInfoAfterArrayLikeCall.antlrtree.txt
│       │   │   ├── deprecateTopLevelReferenceWithCompanionLHS.antlrtree.txt
│       │   │   ├── deprecatedCompanionReceiverInParentheses.lib.antlrtree.txt
│       │   │   ├── deprecatedCompanionReceiverInParentheses.main.antlrtree.txt
│       │   │   ├── ea81649_errorPropertyLHS.bar.antlrtree.txt
│       │   │   ├── ea81649_errorPropertyLHS.foo.antlrtree.txt
│       │   │   ├── emptyLhs.antlrtree.txt
│       │   │   ├── expectedTypeAsSubtypeOfFunctionType.antlrtree.txt
│       │   │   ├── function/
│       │   │   │   ├── abstractClassConstructors.antlrtree.txt
│       │   │   │   ├── ambiguityTopLevelVsTopLevel.antlrtree.txt
│       │   │   │   ├── annotationClassConstructor.antlrtree.txt
│       │   │   │   ├── callableRefrenceOnNestedObject.antlrtree.txt
│       │   │   │   ├── classMemberVsConstructorLikeFunction.Foo.antlrtree.txt
│       │   │   │   ├── classMemberVsConstructorLikeFunction.test.antlrtree.txt
│       │   │   │   ├── constructorFromClass.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.A.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.AFactory.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.B.antlrtree.txt
│       │   │   │   ├── constructorFromCompanion.Util.antlrtree.txt
│       │   │   │   ├── constructorFromExtension.antlrtree.txt
│       │   │   │   ├── constructorFromExtensionInClass.antlrtree.txt
│       │   │   │   ├── constructorFromTopLevel.antlrtree.txt
│       │   │   │   ├── constructorOfNestedClassInObject.antlrtree.txt
│       │   │   │   ├── differentPackageClass.a.antlrtree.txt
│       │   │   │   ├── differentPackageClass.b.antlrtree.txt
│       │   │   │   ├── differentPackageExtension.a.antlrtree.txt
│       │   │   │   ├── differentPackageExtension.b.antlrtree.txt
│       │   │   │   ├── differentPackageTopLevel.a.antlrtree.txt
│       │   │   │   ├── differentPackageTopLevel.b.antlrtree.txt
│       │   │   │   ├── empty.antlrtree.txt
│       │   │   │   ├── extensionFromTopLevel.antlrtree.txt
│       │   │   │   ├── extensionInClassDisallowed.antlrtree.txt
│       │   │   │   ├── extensionOnNullable.antlrtree.txt
│       │   │   │   ├── extensionToSupertype.antlrtree.txt
│       │   │   │   ├── fakeOverrideType.antlrtree.txt
│       │   │   │   ├── genericClassFromTopLevel.antlrtree.txt
│       │   │   │   ├── importedInnerConstructor.antlrtree.txt
│       │   │   │   ├── innerConstructorFromClass.antlrtree.txt
│       │   │   │   ├── innerConstructorFromExtension.antlrtree.txt
│       │   │   │   ├── innerConstructorFromTopLevel.antlrtree.txt
│       │   │   │   ├── javaStaticMethod.1.antlrtree.txt
│       │   │   │   ├── lhsNotAClass.antlrtree.txt
│       │   │   │   ├── localConstructor.antlrtree.txt
│       │   │   │   ├── localConstructorFromExtensionInLocalClass.antlrtree.txt
│       │   │   │   ├── localConstructorFromLocalClass.antlrtree.txt
│       │   │   │   ├── localConstructorFromLocalExtension.antlrtree.txt
│       │   │   │   ├── localNamedFun.antlrtree.txt
│       │   │   │   ├── localNamedFunFromExtensionInLocalClass.antlrtree.txt
│       │   │   │   ├── localNamedFunFromLocalClass.antlrtree.txt
│       │   │   │   ├── localNamedFunFromLocalExtension.antlrtree.txt
│       │   │   │   ├── longQualifiedName.a.antlrtree.txt
│       │   │   │   ├── longQualifiedName.b.antlrtree.txt
│       │   │   │   ├── longQualifiedNameGeneric.a.antlrtree.txt
│       │   │   │   ├── longQualifiedNameGeneric.b.antlrtree.txt
│       │   │   │   ├── memberFromTopLevel.antlrtree.txt
│       │   │   │   ├── nestedConstructorFromClass.antlrtree.txt
│       │   │   │   ├── nestedConstructorFromExtension.antlrtree.txt
│       │   │   │   ├── nestedConstructorFromTopLevel.antlrtree.txt
│       │   │   │   ├── noAmbiguityLocalVsTopLevel.antlrtree.txt
│       │   │   │   ├── noAmbiguityMemberVsExtension.antlrtree.txt
│       │   │   │   ├── noAmbiguityMemberVsTopLevel.antlrtree.txt
│       │   │   │   ├── privateStaticAndPublicMember.main.antlrtree.txt
│       │   │   │   ├── renameOnImport.a.antlrtree.txt
│       │   │   │   ├── renameOnImport.b.antlrtree.txt
│       │   │   │   ├── topLevelFromClass.antlrtree.txt
│       │   │   │   ├── topLevelFromExtension.antlrtree.txt
│       │   │   │   ├── topLevelFromExtensionInClass.antlrtree.txt
│       │   │   │   ├── topLevelFromTopLevel.antlrtree.txt
│       │   │   │   └── unresolved.antlrtree.txt
│       │   │   ├── functionReferenceWithDefaultValueAsOtherFunctionType.antlrtree.txt
│       │   │   ├── functionReferenceWithDefaultValueAsOtherFunctionType_enabled.antlrtree.txt
│       │   │   ├── generic/
│       │   │   │   ├── argumentAndReturnExpectedType.antlrtree.txt
│       │   │   │   ├── argumentExpectedType.antlrtree.txt
│       │   │   │   ├── boundViolated.antlrtree.txt
│       │   │   │   ├── dependOnArgumentType.1.antlrtree.txt
│       │   │   │   ├── expectedFunctionType.antlrtree.txt
│       │   │   │   ├── explicitTypeArguments.antlrtree.txt
│       │   │   │   ├── genericExtensionFunction.antlrtree.txt
│       │   │   │   ├── genericFunctionsWithNullableTypes.antlrtree.txt
│       │   │   │   ├── incorrectNumberOfTypeArguments.antlrtree.txt
│       │   │   │   ├── kt10968.antlrtree.txt
│       │   │   │   ├── kt11075.antlrtree.txt
│       │   │   │   ├── kt12286.antlrtree.txt
│       │   │   │   ├── kt35896.antlrtree.txt
│       │   │   │   ├── kt7470.antlrtree.txt
│       │   │   │   ├── nestedCallWithOverload.antlrtree.txt
│       │   │   │   ├── resolutionGenericCallableWithNullableTypes.antlrtree.txt
│       │   │   │   ├── resolutionWithGenericCallable.antlrtree.txt
│       │   │   │   └── specialCalls.antlrtree.txt
│       │   │   ├── genericCallWithReferenceAgainstVararg.antlrtree.txt
│       │   │   ├── genericCallWithReferenceAgainstVarargAndKFunction.antlrtree.txt
│       │   │   ├── genericTypealiasInLhs.antlrtree.txt
│       │   │   ├── kt15439_completeCall.antlrtree.txt
│       │   │   ├── kt25433.antlrtree.txt
│       │   │   ├── kt31981.antlrtree.txt
│       │   │   ├── kt32256.antlrtree.txt
│       │   │   ├── kt32267.antlrtree.txt
│       │   │   ├── kt34314.antlrtree.txt
│       │   │   ├── kt34314_lambda.antlrtree.txt
│       │   │   ├── kt35105.antlrtree.txt
│       │   │   ├── kt35959.antlrtree.txt
│       │   │   ├── kt37530.antlrtree.txt
│       │   │   ├── kt46437.antlrtree.txt
│       │   │   ├── kt49038.antlrtree.txt
│       │   │   ├── kt52503.antlrtree.txt
│       │   │   ├── kt7430_wrongClassOnLHS.antlrtree.txt
│       │   │   ├── lambdaResult.antlrtree.txt
│       │   │   ├── memberExtensionsImportedFromObjectsUnsupported.antlrtree.txt
│       │   │   ├── noAmbiguityWhenAllReferencesAreInapplicable.antlrtree.txt
│       │   │   ├── noCompatibilityResolveWithProressiveModeForNI.antlrtree.txt
│       │   │   ├── noExceptionOnRedCodeWithArrayLikeCall.antlrtree.txt
│       │   │   ├── overloadResolutionWithDefaults.antlrtree.txt
│       │   │   ├── packageInLhs.qualifiedName.antlrtree.txt
│       │   │   ├── packageInLhs.simpleName.antlrtree.txt
│       │   │   ├── parsingPriorityOfGenericArgumentsVsLess.antlrtree.txt
│       │   │   ├── property/
│       │   │   │   ├── abstractPropertyViaSubclasses.antlrtree.txt
│       │   │   │   ├── accessViaSubclass.antlrtree.txt
│       │   │   │   ├── backingField.antlrtree.txt
│       │   │   │   ├── classFromClass.antlrtree.txt
│       │   │   │   ├── extensionFromTopLevel.antlrtree.txt
│       │   │   │   ├── extensionPropertyOnNullable.antlrtree.txt
│       │   │   │   ├── extensionsSameName.antlrtree.txt
│       │   │   │   ├── genericClass.antlrtree.txt
│       │   │   │   ├── javaInstanceField.test.antlrtree.txt
│       │   │   │   ├── javaStaticFieldViaImport.test.antlrtree.txt
│       │   │   │   ├── kt7564.antlrtree.txt
│       │   │   │   ├── kt7945_unrelatedClass.antlrtree.txt
│       │   │   │   ├── memberFromTopLevel.antlrtree.txt
│       │   │   │   ├── mutablePropertyViaDelegation.antlrtree.txt
│       │   │   │   ├── propertyFromAbstractSuperClass.antlrtree.txt
│       │   │   │   ├── protectedVarFromClass.antlrtree.txt
│       │   │   │   ├── returnTypeDependentOnGenericProperty.antlrtree.txt
│       │   │   │   ├── samePriorityForFunctionsAndProperties.antlrtree.txt
│       │   │   │   └── topLevelFromTopLevel.antlrtree.txt
│       │   │   ├── propertyOfNestedGenericClass.antlrtree.txt
│       │   │   ├── referenceAdaptationCompatibility.antlrtree.txt
│       │   │   ├── referenceInCycleInProperties.antlrtree.txt
│       │   │   ├── referenceToCompanionObjectMemberViaClassName.antlrtree.txt
│       │   │   ├── referenceToCompanionObjectMemberViaClassNameCompatibility.antlrtree.txt
│       │   │   ├── resolve/
│       │   │   │   ├── adaptedReferenceAgainstKCallable.antlrtree.txt
│       │   │   │   ├── adaptedReferenceAgainstReflectionType.antlrtree.txt
│       │   │   │   ├── ambiguityWhenNoApplicableCallableReferenceCandidate.antlrtree.txt
│       │   │   │   ├── ambiguityWithBoundExtensionReceiver.antlrtree.txt
│       │   │   │   ├── ambiguousWithVararg.antlrtree.txt
│       │   │   │   ├── applicableCallableReferenceFromDistantScope.antlrtree.txt
│       │   │   │   ├── byArgType.antlrtree.txt
│       │   │   │   ├── byGenericArgType.antlrtree.txt
│       │   │   │   ├── byValType.antlrtree.txt
│       │   │   │   ├── callableReferenceToVarargWithOverload.antlrtree.txt
│       │   │   │   ├── chooseCallableReferenceDependingOnInferredReceiver.antlrtree.txt
│       │   │   │   ├── chooseMostSpecificCandidateUsingCandidateDescriptorNotReflectionType.antlrtree.txt
│       │   │   │   ├── chooseOuterCallBySingleCallableReference.antlrtree.txt
│       │   │   │   ├── commonSupertypeFromReturnTypesOfCallableReference.antlrtree.txt
│       │   │   │   ├── compatibilityWarningOnReferenceAgainstReflectiveType.antlrtree.txt
│       │   │   │   ├── constructor.antlrtree.txt
│       │   │   │   ├── eagerAndPostponedCallableReferences.antlrtree.txt
│       │   │   │   ├── eagerResolveOfSingleCallableReference.antlrtree.txt
│       │   │   │   ├── innerClassConstructorOnOuterClassInstance.antlrtree.txt
│       │   │   │   ├── intersectionTypeOverloadWithWrongParameter.antlrtree.txt
│       │   │   │   ├── kt10036.antlrtree.txt
│       │   │   │   ├── kt10036_bound.antlrtree.txt
│       │   │   │   ├── kt12338.antlrtree.txt
│       │   │   │   ├── kt12751.antlrtree.txt
│       │   │   │   ├── kt35887.antlrtree.txt
│       │   │   │   ├── kt35887_simple.antlrtree.txt
│       │   │   │   ├── kt35920.main.antlrtree.txt
│       │   │   │   ├── kt8596.antlrtree.txt
│       │   │   │   ├── kt9601.antlrtree.txt
│       │   │   │   ├── moreSpecificAmbiguousExtensions.antlrtree.txt
│       │   │   │   ├── moreSpecificSimple.antlrtree.txt
│       │   │   │   ├── multipleOutersAndMultipleCallableReferences.antlrtree.txt
│       │   │   │   ├── nestedReferenceCallAgainstExpectedType.antlrtree.txt
│       │   │   │   ├── noAmbiguityBetweenTopLevelAndMemberProperty.antlrtree.txt
│       │   │   │   ├── noFakeDescriptorForObject.antlrtree.txt
│       │   │   │   ├── onlyInputTypesOnCallableReference.antlrtree.txt
│       │   │   │   ├── overloadAmbiguityForSimpleLastExpressionOfBlock.antlrtree.txt
│       │   │   │   ├── overloads.antlrtree.txt
│       │   │   │   ├── overloadsBound.antlrtree.txt
│       │   │   │   ├── overloadsMember.antlrtree.txt
│       │   │   │   ├── postponedResolveOfManyCallableReference.antlrtree.txt
│       │   │   │   ├── resolveCallableReferencesAfterAllSimpleArguments.antlrtree.txt
│       │   │   │   ├── resolveEqualsOperatorWithAnyExpectedType.antlrtree.txt
│       │   │   │   ├── resolveReferenceAgainstKFunctionAndKPrpoerty.antlrtree.txt
│       │   │   │   ├── resolveTwoReferencesAgainstGenerics.antlrtree.txt
│       │   │   │   ├── valVsFun.antlrtree.txt
│       │   │   │   ├── withAs.antlrtree.txt
│       │   │   │   ├── withExtFun.antlrtree.txt
│       │   │   │   ├── withGenericFun.antlrtree.txt
│       │   │   │   ├── withPlaceholderTypes.antlrtree.txt
│       │   │   │   └── withVararg.antlrtree.txt
│       │   │   ├── rewriteAtSliceOnGetOperator.antlrtree.txt
│       │   │   ├── sam.test.antlrtree.txt
│       │   │   ├── subtypeArgumentFromRHSForReference.antlrtree.txt
│       │   │   ├── suspendCallableReference.antlrtree.txt
│       │   │   ├── typealiases.antlrtree.txt
│       │   │   ├── unitAdaptationForReferenceCompatibility.test.antlrtree.txt
│       │   │   ├── unsupported/
│       │   │   │   ├── callableReferenceToLocalVariable.antlrtree.txt
│       │   │   │   ├── classLiteralsWithEmptyLHS.antlrtree.txt
│       │   │   │   ├── javaOverridesKotlinProperty.Main.antlrtree.txt
│       │   │   │   ├── localVariable.antlrtree.txt
│       │   │   │   ├── localVariableWithSubstitution.antlrtree.txt
│       │   │   │   ├── parameterWithSubstitution.antlrtree.txt
│       │   │   │   ├── referenceToKotlinPropertyViaIntermediateJavaClass.Main.antlrtree.txt
│       │   │   │   ├── syntheticProperties.test.antlrtree.txt
│       │   │   │   └── syntheticPropertiesOnJavaAnnotation.Main.antlrtree.txt
│       │   │   ├── unused.antlrtree.txt
│       │   │   ├── whitespacesInExpression.antlrtree.txt
│       │   │   └── withQuestionMarks.antlrtree.txt
│       │   ├── cast/
│       │   │   ├── AsArray.antlrtree.txt
│       │   │   ├── AsErasedError.antlrtree.txt
│       │   │   ├── AsErasedFine.antlrtree.txt
│       │   │   ├── AsErasedStar.antlrtree.txt
│       │   │   ├── AsErasedWarning.antlrtree.txt
│       │   │   ├── AsInBinaryUnary.antlrtree.txt
│       │   │   ├── AsInBlockWithReturnType.antlrtree.txt
│       │   │   ├── AsInCompoundAssignment.antlrtree.txt
│       │   │   ├── AsInExpressionBody.antlrtree.txt
│       │   │   ├── AsInPropertyAndPropertyAccessor.antlrtree.txt
│       │   │   ├── AsNothing.antlrtree.txt
│       │   │   ├── AsTypeAlias.antlrtree.txt
│       │   │   ├── AsWithOtherParameter.antlrtree.txt
│       │   │   ├── DowncastMap.antlrtree.txt
│       │   │   ├── ExtensionAsNonExtension.antlrtree.txt
│       │   │   ├── FlexibleTargetType.sample.antlrtree.txt
│       │   │   ├── IsErasedAllowForDerivedWithOneSubstitutedAndOneSameGeneric.antlrtree.txt
│       │   │   ├── IsErasedAllowForExactSupertypeCheck.antlrtree.txt
│       │   │   ├── IsErasedAllowForOverridenVarianceWithProjection.antlrtree.txt
│       │   │   ├── IsErasedAllowForSupertypeCheckWithContrvariance.antlrtree.txt
│       │   │   ├── IsErasedAllowForSupertypeCheckWithCovariance.antlrtree.txt
│       │   │   ├── IsErasedAllowForTypeWithIrrelevantMixin.antlrtree.txt
│       │   │   ├── IsErasedAllowForTypeWithTwoSameTypeSubstitutions.antlrtree.txt
│       │   │   ├── IsErasedAllowForTypeWithoutTypeArguments.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOut.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOut2.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOut3.antlrtree.txt
│       │   │   ├── IsErasedAllowFromOutAtClass.antlrtree.txt
│       │   │   ├── IsErasedAllowParameterSubtype.antlrtree.txt
│       │   │   ├── IsErasedAllowSameClassParameter.antlrtree.txt
│       │   │   ├── IsErasedAllowSameParameterParameter.antlrtree.txt
│       │   │   ├── IsErasedDisallowDifferentArgInvariantPosition.antlrtree.txt
│       │   │   ├── IsErasedDisallowForOverridenVariance.antlrtree.txt
│       │   │   ├── IsErasedDisallowForTypeWithConstraints.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromAny.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromIn.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromOut.antlrtree.txt
│       │   │   ├── IsErasedDisallowFromOutAtClass.antlrtree.txt
│       │   │   ├── IsErasedDissallowForSubtypeMappedToTwoParamsWithFirstInvalid.antlrtree.txt
│       │   │   ├── IsErasedDissallowForSubtypeMappedToTwoParamsWithSecondInvalid.antlrtree.txt
│       │   │   ├── IsErasedNonGeneric.antlrtree.txt
│       │   │   ├── IsErasedNullableTasT.antlrtree.txt
│       │   │   ├── IsErasedStar.antlrtree.txt
│       │   │   ├── IsErasedTasT.antlrtree.txt
│       │   │   ├── IsErasedToErrorType.antlrtree.txt
│       │   │   ├── IsErasedUpcastToNonReified.antlrtree.txt
│       │   │   ├── IsForTypeWithComplexUpperBound.antlrtree.txt
│       │   │   ├── IsRecursionSustainable.antlrtree.txt
│       │   │   ├── IsTraits.antlrtree.txt
│       │   │   ├── IsWithCycleUpperBounds.antlrtree.txt
│       │   │   ├── NullableToNullable.antlrtree.txt
│       │   │   ├── StableTypeForUselessCast.antlrtree.txt
│       │   │   ├── UselessSafeCast.antlrtree.txt
│       │   │   ├── WhenErasedDisallowFromAny.antlrtree.txt
│       │   │   ├── WhenWithExpression.antlrtree.txt
│       │   │   ├── bare/
│       │   │   │   ├── AsNestedBare.antlrtree.txt
│       │   │   │   ├── AsNullable.antlrtree.txt
│       │   │   │   ├── AsNullableNotEnough.antlrtree.txt
│       │   │   │   ├── EitherAs.antlrtree.txt
│       │   │   │   ├── EitherIs.antlrtree.txt
│       │   │   │   ├── EitherNotIs.antlrtree.txt
│       │   │   │   ├── EitherSafeAs.antlrtree.txt
│       │   │   │   ├── EitherWhen.antlrtree.txt
│       │   │   │   ├── ErrorsInSubstitution.antlrtree.txt
│       │   │   │   ├── FromErrorType.antlrtree.txt
│       │   │   │   ├── NullableAs.antlrtree.txt
│       │   │   │   ├── NullableAsNotEnough.antlrtree.txt
│       │   │   │   ├── NullableAsNullable.antlrtree.txt
│       │   │   │   ├── NullableAsNullableNotEnough.antlrtree.txt
│       │   │   │   ├── RedundantNullable.antlrtree.txt
│       │   │   │   ├── SupertypeChain.antlrtree.txt
│       │   │   │   ├── ToErrorType.antlrtree.txt
│       │   │   │   ├── UnrelatedAs.antlrtree.txt
│       │   │   │   ├── UnrelatedColon.antlrtree.txt
│       │   │   │   └── UnrelatedIs.antlrtree.txt
│       │   │   ├── checkCastToNullableType.test.antlrtree.txt
│       │   │   ├── constants.antlrtree.txt
│       │   │   ├── isAlwaysFalse.antlrtree.txt
│       │   │   ├── isErasedAnyAndStarred.antlrtree.txt
│       │   │   ├── isErasedTAndStarred.antlrtree.txt
│       │   │   ├── isErasedUnrelatedAndStarred.antlrtree.txt
│       │   │   ├── kt15161.antlrtree.txt
│       │   │   ├── kt47685.antlrtree.txt
│       │   │   ├── kt614.antlrtree.txt
│       │   │   ├── neverSucceeds/
│       │   │   │   ├── CastToNotNullSuper.antlrtree.txt
│       │   │   │   ├── MappedDirect.antlrtree.txt
│       │   │   │   ├── MappedSubtypes.antlrtree.txt
│       │   │   │   ├── NoGenericsRelated.antlrtree.txt
│       │   │   │   └── NoGenericsUnrelated.antlrtree.txt
│       │   │   └── nothingAs.antlrtree.txt
│       │   ├── checkArguments/
│       │   │   ├── SpreadVarargs.antlrtree.txt
│       │   │   ├── arrayAccessSet.antlrtree.txt
│       │   │   ├── arrayAccessSetNotEnoughArgs.antlrtree.txt
│       │   │   ├── arrayAccessSetTooManyArgs.antlrtree.txt
│       │   │   ├── booleanExpressions.antlrtree.txt
│       │   │   ├── kt17691.antlrtree.txt
│       │   │   ├── kt17691WithEnabledFeature.antlrtree.txt
│       │   │   ├── kt1897_diagnostic_part.antlrtree.txt
│       │   │   ├── kt1940.antlrtree.txt
│       │   │   ├── kt49276.antlrtree.txt
│       │   │   ├── kt49276Disabled.antlrtree.txt
│       │   │   ├── kt49276Error.antlrtree.txt
│       │   │   ├── kt51062.main.antlrtree.txt
│       │   │   ├── kt51062Error.main.antlrtree.txt
│       │   │   ├── overloadedFunction.antlrtree.txt
│       │   │   └── twoLambdasFunction.antlrtree.txt
│       │   ├── checkTypeTest.antlrtree.txt
│       │   ├── checkTypeWithExactTest.antlrtree.txt
│       │   ├── classLiteral/
│       │   │   ├── arrays.antlrtree.txt
│       │   │   ├── classAndObjectLiteralType.antlrtree.txt
│       │   │   ├── classLiteralType.antlrtree.txt
│       │   │   ├── expressionWithNullableType.test.antlrtree.txt
│       │   │   ├── genericArrays.antlrtree.txt
│       │   │   ├── genericClasses.antlrtree.txt
│       │   │   ├── inAnnotationArguments.antlrtree.txt
│       │   │   ├── inAnnotationArguments_noTypeParams.antlrtree.txt
│       │   │   ├── integerValueType.antlrtree.txt
│       │   │   ├── nonClassesOnLHS.antlrtree.txt
│       │   │   ├── parameterizedTypeAlias.antlrtree.txt
│       │   │   ├── qualifiedClassLiteral.antlrtree.txt
│       │   │   ├── simpleClassLiteral.antlrtree.txt
│       │   │   ├── smartCast.antlrtree.txt
│       │   │   ├── typealiases.antlrtree.txt
│       │   │   └── unresolvedClass.antlrtree.txt
│       │   ├── classObjects/
│       │   │   ├── ClassObjectCannotAccessClassFields.antlrtree.txt
│       │   │   ├── ClassObjectVisibility.antlrtree.txt
│       │   │   ├── ClassObjects.antlrtree.txt
│       │   │   ├── InnerClassAccessThroughClassObject.antlrtree.txt
│       │   │   ├── InnerClassAccessThroughEnum_after.antlrtree.txt
│       │   │   ├── InnerClassAccessThroughEnum_before.antlrtree.txt
│       │   │   ├── InnerClassClassObject.antlrtree.txt
│       │   │   ├── builtInClassObjects.antlrtree.txt
│       │   │   ├── classObjectHeader.antlrtree.txt
│       │   │   ├── classObjectInLocalClass.antlrtree.txt
│       │   │   ├── classObjectRedeclaration.antlrtree.txt
│       │   │   ├── classWithFunctionSupertype_after.antlrtree.txt
│       │   │   ├── classWithFunctionSupertype_before.antlrtree.txt
│       │   │   ├── companionObjectOfPrivateClassVisibility.antlrtree.txt
│       │   │   ├── importClassInClassObject.antlrtree.txt
│       │   │   ├── invisibleClassObjects.a.antlrtree.txt
│       │   │   ├── invisibleClassObjects.b.antlrtree.txt
│       │   │   ├── kt3866.antlrtree.txt
│       │   │   ├── multipleDissallowedDefaultObjects.antlrtree.txt
│       │   │   ├── nestedClassInPrivateClassObject.antlrtree.txt
│       │   │   ├── resolveFunctionInsideClassObject.antlrtree.txt
│       │   │   ├── selfCallsInCompanionSuperConstructor_error.antlrtree.txt
│       │   │   ├── selfCallsInCompanionSuperConstructor_warning.antlrtree.txt
│       │   │   ├── typeParametersInAnnonymousObject.antlrtree.txt
│       │   │   ├── typeParametersInAnnonymousObject_after.antlrtree.txt
│       │   │   └── typeParametersInObject.antlrtree.txt
│       │   ├── collectionLiterals/
│       │   │   ├── argumentsOfAnnotation.antlrtree.txt
│       │   │   ├── argumentsOfAnnotationWithKClass.antlrtree.txt
│       │   │   ├── basicCollectionLiterals.antlrtree.txt
│       │   │   ├── collectionLiteralsAsPrimitiveArrays.antlrtree.txt
│       │   │   ├── collectionLiteralsOutsideOfAnnotations.antlrtree.txt
│       │   │   ├── collectionLiteralsWithVarargs.antlrtree.txt
│       │   │   ├── defaultValuesInAnnotation.antlrtree.txt
│       │   │   ├── defaultValuesWithConstantsInAnnotation.antlrtree.txt
│       │   │   ├── kt34515.antlrtree.txt
│       │   │   ├── noCollectionLiterals.antlrtree.txt
│       │   │   └── resolveToFunctionFromBuiltIns.antlrtree.txt
│       │   ├── comparingArbitraryClasses.antlrtree.txt
│       │   ├── comparingCallableReferencesWithInstanceOfJavaClass.Main.antlrtree.txt
│       │   ├── comparisonOfGenericInterfaceWithGenericClass.antlrtree.txt
│       │   ├── constantEvaluator/
│       │   │   ├── constant/
│       │   │   │   ├── classObjectProperty.antlrtree.txt
│       │   │   │   ├── compareTo.antlrtree.txt
│       │   │   │   ├── differentTypes.antlrtree.txt
│       │   │   │   ├── divideByZero.antlrtree.txt
│       │   │   │   ├── duplicateLabelWithNonTrivialCondition_disabled.antlrtree.txt
│       │   │   │   ├── duplicateLabelWithNonTrivialCondition_enabled.antlrtree.txt
│       │   │   │   ├── equals.antlrtree.txt
│       │   │   │   ├── exceptionWhenEvaluate.antlrtree.txt
│       │   │   │   ├── finalProperty.antlrtree.txt
│       │   │   │   ├── float.antlrtree.txt
│       │   │   │   ├── floatsAndDoubles.antlrtree.txt
│       │   │   │   ├── integer.antlrtree.txt
│       │   │   │   ├── integerOperations.antlrtree.txt
│       │   │   │   ├── integers.antlrtree.txt
│       │   │   │   ├── invAsCompileTimeCall.antlrtree.txt
│       │   │   │   ├── localVal.antlrtree.txt
│       │   │   │   ├── localVar.antlrtree.txt
│       │   │   │   ├── nonFinalProperty.antlrtree.txt
│       │   │   │   ├── objectProperty.antlrtree.txt
│       │   │   │   ├── strings.antlrtree.txt
│       │   │   │   ├── topLevelVal.antlrtree.txt
│       │   │   │   ├── topLevelVar.antlrtree.txt
│       │   │   │   ├── unaryMinusIndepWoExpType.antlrtree.txt
│       │   │   │   └── unaryMinusIndependentExpType.antlrtree.txt
│       │   │   ├── isPure/
│       │   │   │   ├── innerToType.antlrtree.txt
│       │   │   │   ├── namedConstants.antlrtree.txt
│       │   │   │   ├── toType.antlrtree.txt
│       │   │   │   ├── unaryMinusIndepWoExpType.antlrtree.txt
│       │   │   │   └── unaryMinusIndependentExpType.antlrtree.txt
│       │   │   └── usesVariableAsConstant/
│       │   │       ├── NamedConstants.antlrtree.txt
│       │   │       ├── OtherTypes.antlrtree.txt
│       │   │       ├── binaryTypes.antlrtree.txt
│       │   │       └── simpleTypes.antlrtree.txt
│       │   ├── constructorConsistency/
│       │   │   ├── afterInitialization.antlrtree.txt
│       │   │   ├── aliencall.antlrtree.txt
│       │   │   ├── assignment.antlrtree.txt
│       │   │   ├── backing.antlrtree.txt
│       │   │   ├── basic.antlrtree.txt
│       │   │   ├── companion.antlrtree.txt
│       │   │   ├── comparison.antlrtree.txt
│       │   │   ├── delegate.antlrtree.txt
│       │   │   ├── derived.antlrtree.txt
│       │   │   ├── derivedProperty.antlrtree.txt
│       │   │   ├── errorInsideDelegationCallNoPrimary.antlrtree.txt
│       │   │   ├── getset.antlrtree.txt
│       │   │   ├── init.antlrtree.txt
│       │   │   ├── initializerWithSecondaryConstructor.antlrtree.txt
│       │   │   ├── initwithgetter.antlrtree.txt
│       │   │   ├── inspection.antlrtree.txt
│       │   │   ├── lambdaInObject.antlrtree.txt
│       │   │   ├── lateInit.antlrtree.txt
│       │   │   ├── localObject.antlrtree.txt
│       │   │   ├── multipleAreNull.antlrtree.txt
│       │   │   ├── nobacking.antlrtree.txt
│       │   │   ├── open.antlrtree.txt
│       │   │   ├── openProperty.antlrtree.txt
│       │   │   ├── outer.antlrtree.txt
│       │   │   ├── parametersVsPropertiesFromPrimaryConstructor.antlrtree.txt
│       │   │   ├── property.antlrtree.txt
│       │   │   ├── propertyAccess.antlrtree.txt
│       │   │   ├── twoSecondaryConstructors.antlrtree.txt
│       │   │   └── twoSuperTypeCalls.antlrtree.txt
│       │   ├── controlFlowAnalysis/
│       │   │   ├── UninitializedEnumCompanionVals.antlrtree.txt
│       │   │   ├── UninitializedOrReassignedVariables.antlrtree.txt
│       │   │   ├── accessToCompanionInBaseEnumInitSection_function.antlrtree.txt
│       │   │   ├── accessToCompanionInBaseEnumInitSection_property.antlrtree.txt
│       │   │   ├── accessValueParameterInDefaultValue_after.antlrtree.txt
│       │   │   ├── accessValueParameterInDefaultValue_before.antlrtree.txt
│       │   │   ├── assignedInFinally.antlrtree.txt
│       │   │   ├── assignedInIfElse.antlrtree.txt
│       │   │   ├── assignedInTryWithCatch.antlrtree.txt
│       │   │   ├── assignedInTryWithoutCatch.antlrtree.txt
│       │   │   ├── assignmentInLocalsInConstructor.antlrtree.txt
│       │   │   ├── assignmentOfSyntheticVarWithInconsistentNullability.KotlinBase.antlrtree.txt
│       │   │   ├── assignmentOfSyntheticVarWithInconsistentNullability.main.antlrtree.txt
│       │   │   ├── backingFieldInsideGetter_after.antlrtree.txt
│       │   │   ├── backingFieldInsideGetter_before.antlrtree.txt
│       │   │   ├── breakContinueInTryFinally.antlrtree.txt
│       │   │   ├── breakContinueInTryFinallyInLoop.antlrtree.txt
│       │   │   ├── breakContinueNoinline.antlrtree.txt
│       │   │   ├── breakInLambdaPassedToDirectInvoke.antlrtree.txt
│       │   │   ├── breakInsideLocal.antlrtree.txt
│       │   │   ├── breakOrContinueInLoopCondition.antlrtree.txt
│       │   │   ├── capturingUninitializedVariableInNonInPlaceLambda.antlrtree.txt
│       │   │   ├── cfgOfFullyIncorrectCode.antlrtree.txt
│       │   │   ├── checkInnerLocalDeclarations.antlrtree.txt
│       │   │   ├── checkPropertyAccessor.antlrtree.txt
│       │   │   ├── constructorPropertyInterdependence.antlrtree.txt
│       │   │   ├── deadCode/
│       │   │   │   ├── commasAndWhitespaces.antlrtree.txt
│       │   │   │   ├── commentsInDeadCode.antlrtree.txt
│       │   │   │   ├── deadCallInInvokeCall.antlrtree.txt
│       │   │   │   ├── deadCallInReceiver.antlrtree.txt
│       │   │   │   ├── deadCodeDifferentExamples.antlrtree.txt
│       │   │   │   ├── deadCodeFromDifferentSources.antlrtree.txt
│       │   │   │   ├── deadCodeInArrayAccess.antlrtree.txt
│       │   │   │   ├── deadCodeInAssignment.antlrtree.txt
│       │   │   │   ├── deadCodeInBinaryExpressions.antlrtree.txt
│       │   │   │   ├── deadCodeInCalls.antlrtree.txt
│       │   │   │   ├── deadCodeInDeadCode.antlrtree.txt
│       │   │   │   ├── deadCodeInIf.antlrtree.txt
│       │   │   │   ├── deadCodeInInnerExpressions.antlrtree.txt
│       │   │   │   ├── deadCodeInLocalDeclarations.antlrtree.txt
│       │   │   │   ├── deadCodeInLoops.antlrtree.txt
│       │   │   │   ├── deadCodeInReturn.antlrtree.txt
│       │   │   │   ├── deadCodeInUnaryExpr.antlrtree.txt
│       │   │   │   ├── deadCodeInWhileFromBreak.antlrtree.txt
│       │   │   │   ├── expressionInUnitLiteral.antlrtree.txt
│       │   │   │   ├── initializationInUnreachableCode.antlrtree.txt
│       │   │   │   ├── kt2585_1.antlrtree.txt
│       │   │   │   ├── kt2585_2.antlrtree.txt
│       │   │   │   ├── kt2585_3.antlrtree.txt
│       │   │   │   ├── kt3162tryAsInitializer.antlrtree.txt
│       │   │   │   ├── kt5200DeadCodeInLambdas.antlrtree.txt
│       │   │   │   ├── reassignementInUnreachableCode.antlrtree.txt
│       │   │   │   └── returnInDeadLambda.antlrtree.txt
│       │   │   ├── definiteReturn/
│       │   │   │   ├── ReturnFromFunctionInObject.antlrtree.txt
│       │   │   │   ├── kt3444_ReturnFromLocalFunctions.antlrtree.txt
│       │   │   │   ├── kt4034.antlrtree.txt
│       │   │   │   ├── lambdaInTryFalsePositive.antlrtree.txt
│       │   │   │   ├── returnAliasedUnitNotRequired.antlrtree.txt
│       │   │   │   ├── simpleClass.a.antlrtree.txt
│       │   │   │   ├── simpleClass.b.antlrtree.txt
│       │   │   │   ├── simpleClass.c.antlrtree.txt
│       │   │   │   ├── simpleClass.d.antlrtree.txt
│       │   │   │   ├── simpleClass.e.antlrtree.txt
│       │   │   │   ├── simpleClass.f.antlrtree.txt
│       │   │   │   └── singleReturnFromTry.antlrtree.txt
│       │   │   ├── definiteReturnInWhen.antlrtree.txt
│       │   │   ├── delegatedConstructorArguments.antlrtree.txt
│       │   │   ├── delegatedMemberProperyWriteInInit.antlrtree.txt
│       │   │   ├── delegatedPropertyEarlyAccess.antlrtree.txt
│       │   │   ├── doWhileAssignment.antlrtree.txt
│       │   │   ├── doWhileNotDefined.antlrtree.txt
│       │   │   ├── elvisNotProcessed.antlrtree.txt
│       │   │   ├── enumCompanionInterdependence.antlrtree.txt
│       │   │   ├── enumInterdependence.antlrtree.txt
│       │   │   ├── fieldAsClassDelegate.antlrtree.txt
│       │   │   ├── fieldInitialization.antlrtree.txt
│       │   │   ├── infiniteLoops.antlrtree.txt
│       │   │   ├── initializationInLambda.antlrtree.txt
│       │   │   ├── initializationInLocalClass.antlrtree.txt
│       │   │   ├── initializationInLocalFun.antlrtree.txt
│       │   │   ├── initializationInLocalViaExplicitThis_after.antlrtree.txt
│       │   │   ├── initializationInLocalViaExplicitThis_before.antlrtree.txt
│       │   │   ├── inlinedBreakContinueFeatureDisabled.antlrtree.txt
│       │   │   ├── kt1001.antlrtree.txt
│       │   │   ├── kt1027.antlrtree.txt
│       │   │   ├── kt1066.antlrtree.txt
│       │   │   ├── kt10805.antlrtree.txt
│       │   │   ├── kt10823.antlrtree.txt
│       │   │   ├── kt1156.antlrtree.txt
│       │   │   ├── kt1185enums.antlrtree.txt
│       │   │   ├── kt1189.antlrtree.txt
│       │   │   ├── kt1191.antlrtree.txt
│       │   │   ├── kt1219.1301.antlrtree.txt
│       │   │   ├── kt1571.antlrtree.txt
│       │   │   ├── kt1977.antlrtree.txt
│       │   │   ├── kt2166_kt2103.antlrtree.txt
│       │   │   ├── kt2226.antlrtree.txt
│       │   │   ├── kt2330.antlrtree.txt
│       │   │   ├── kt2334.antlrtree.txt
│       │   │   ├── kt2369.antlrtree.txt
│       │   │   ├── kt2845.antlrtree.txt
│       │   │   ├── kt2960.antlrtree.txt
│       │   │   ├── kt2972.antlrtree.txt
│       │   │   ├── kt3444.antlrtree.txt
│       │   │   ├── kt3501.antlrtree.txt
│       │   │   ├── kt4126.antlrtree.txt
│       │   │   ├── kt4405.antlrtree.txt
│       │   │   ├── kt510.antlrtree.txt
│       │   │   ├── kt52131.antlrtree.txt
│       │   │   ├── kt607.antlrtree.txt
│       │   │   ├── kt609.antlrtree.txt
│       │   │   ├── kt610.antlrtree.txt
│       │   │   ├── kt6788.antlrtree.txt
│       │   │   ├── kt776.antlrtree.txt
│       │   │   ├── kt843.antlrtree.txt
│       │   │   ├── kt897.antlrtree.txt
│       │   │   ├── localClasses.antlrtree.txt
│       │   │   ├── localObjectInConstructor.antlrtree.txt
│       │   │   ├── loopWithNonTrivialBooleanConst_error.antlrtree.txt
│       │   │   ├── loopWithNonTrivialBooleanConst_warning.antlrtree.txt
│       │   │   ├── mainWithWarningOnUnusedParam.antlrtree.txt
│       │   │   ├── mainWithoutWarningOnUnusedParam.antlrtree.txt
│       │   │   ├── nestedTryFinally.antlrtree.txt
│       │   │   ├── nonLocalReturnUnreachable.antlrtree.txt
│       │   │   ├── nonLocalReturnWithFinally.antlrtree.txt
│       │   │   ├── privateSetter.antlrtree.txt
│       │   │   ├── propertiesInitWithOtherInstance.antlrtree.txt
│       │   │   ├── propertiesInitWithOtherInstanceInner.antlrtree.txt
│       │   │   ├── propertiesInitWithOtherInstanceThisLabel.antlrtree.txt
│       │   │   ├── propertiesOrderInPackage.antlrtree.txt
│       │   │   ├── reassignmentInCatch.antlrtree.txt
│       │   │   ├── reassignmentInTryCatch.antlrtree.txt
│       │   │   ├── reassignmentInTryCatchWithJumps.antlrtree.txt
│       │   │   ├── referenceToPropertyInitializer.antlrtree.txt
│       │   │   ├── repeatUnitializedErrorOnlyForLocalVars.antlrtree.txt
│       │   │   ├── safeCallAfterVariableInitialization.antlrtree.txt
│       │   │   ├── scopeOfAnonymousInitializer.antlrtree.txt
│       │   │   ├── smartCastInCatch.antlrtree.txt
│       │   │   ├── throwInLambda.antlrtree.txt
│       │   │   ├── tryWithAssignmentUsedInCatch.antlrtree.txt
│       │   │   ├── uninintializedProperyWithDirectAndDelayedInitialization.antlrtree.txt
│       │   │   ├── uninitializedCompanionOfEnum_after.antlrtree.txt
│       │   │   ├── uninitializedCompanionOfEnum_before.antlrtree.txt
│       │   │   ├── uninitializedInLocalDeclarations.antlrtree.txt
│       │   │   ├── uninitializedQualifiedEnumEntry.antlrtree.txt
│       │   │   ├── unmappedArgs.antlrtree.txt
│       │   │   ├── unnecessaryLateinit/
│       │   │   │   ├── lateinitRecursiveInLambda.antlrtree.txt
│       │   │   │   ├── lateinitWithConstructor.antlrtree.txt
│       │   │   │   ├── lateinitWithErroneousDelegation.antlrtree.txt
│       │   │   │   ├── lateinitWithInit.antlrtree.txt
│       │   │   │   ├── lateinitWithMultipleConstructors.antlrtree.txt
│       │   │   │   ├── lateinitWithMultipleConstructorsAndDelegation.antlrtree.txt
│       │   │   │   ├── lateinitWithPlusAssign.antlrtree.txt
│       │   │   │   ├── lateinitWithPrimaryConstructorAndConstructor.antlrtree.txt
│       │   │   │   ├── normalLateinit.antlrtree.txt
│       │   │   │   ├── normalLateinitWithTwoConstructors.antlrtree.txt
│       │   │   │   ├── secondaryConstructorDelegateItself.antlrtree.txt
│       │   │   │   └── secondaryConstructorDelegateLoop.antlrtree.txt
│       │   │   ├── unresolvedReference.antlrtree.txt
│       │   │   ├── unusedPropertyWithCustomAccessors.antlrtree.txt
│       │   │   ├── useUninitializedInLambda.antlrtree.txt
│       │   │   └── varInitializationInIfInCycle.antlrtree.txt
│       │   ├── controlStructures/
│       │   │   ├── ForLoopWithExtensionIteratorOnNullable.antlrtree.txt
│       │   │   ├── ForWithoutBraces.antlrtree.txt
│       │   │   ├── ForbidStatementAsDirectFunctionBody.antlrtree.txt
│       │   │   ├── breakContinueInCrossInlineLambda.antlrtree.txt
│       │   │   ├── breakContinueInNoInlineLambda.antlrtree.txt
│       │   │   ├── breakToLabel.antlrtree.txt
│       │   │   ├── catchGenerics.antlrtree.txt
│       │   │   ├── catchInnerClassesOfGenerics.antlrtree.txt
│       │   │   ├── catchInnerClassesOfGenerics_deprecation.antlrtree.txt
│       │   │   ├── catchWithDefault.antlrtree.txt
│       │   │   ├── catchingLocalClassesCapturingTypeParameters.antlrtree.txt
│       │   │   ├── commonSupertypeOfT.antlrtree.txt
│       │   │   ├── continueAndBreakLabelWithSameFunctionName.antlrtree.txt
│       │   │   ├── continueInInitBlock.antlrtree.txt
│       │   │   ├── emptyIf.antlrtree.txt
│       │   │   ├── forLoopWithNullableRange.antlrtree.txt
│       │   │   ├── forWithIncorrectTypeSpecializer.antlrtree.txt
│       │   │   ├── forWithNullableIterator.antlrtree.txt
│       │   │   ├── ifElseIntersection.antlrtree.txt
│       │   │   ├── ifInResultOfLambda.antlrtree.txt
│       │   │   ├── ifToAnyDiscriminatingUsages.antlrtree.txt
│       │   │   ├── ifWhenToAnyComplexExpressions.antlrtree.txt
│       │   │   ├── ifWhenWithoutElse.antlrtree.txt
│       │   │   ├── improperElseInExpression.antlrtree.txt
│       │   │   ├── incorrectElvis.antlrtree.txt
│       │   │   ├── jumpAcrossFunctionBoundary.antlrtree.txt
│       │   │   ├── kt10322.antlrtree.txt
│       │   │   ├── kt10706.antlrtree.txt
│       │   │   ├── kt10717.antlrtree.txt
│       │   │   ├── kt1075.antlrtree.txt
│       │   │   ├── kt30406.antlrtree.txt
│       │   │   ├── kt4310.antlrtree.txt
│       │   │   ├── kt51711.antlrtree.txt
│       │   │   ├── kt657.antlrtree.txt
│       │   │   ├── kt770.kt351.kt735_StatementType.antlrtree.txt
│       │   │   ├── kt786.antlrtree.txt
│       │   │   ├── kt799.antlrtree.txt
│       │   │   ├── lambdasInExclExclAndElvis.antlrtree.txt
│       │   │   ├── localReturnInsidePropertyAccessor.antlrtree.txt
│       │   │   ├── nestedLoopsWithMultipleLabels.antlrtree.txt
│       │   │   ├── nonExhaustiveIfInElvis_after.antlrtree.txt
│       │   │   ├── nonExhaustiveIfInElvis_before.antlrtree.txt
│       │   │   ├── notAFunctionLabel_after.antlrtree.txt
│       │   │   ├── notAFunctionLabel_before.antlrtree.txt
│       │   │   ├── redundantLabel.antlrtree.txt
│       │   │   ├── specialConstructsAndPlatformTypes.k.antlrtree.txt
│       │   │   ├── specialConstructsWithNullableExpectedType.antlrtree.txt
│       │   │   ├── tryReturnType.antlrtree.txt
│       │   │   ├── typeInferenceForExclExcl.b.antlrtree.txt
│       │   │   ├── valVarCatchParameter.antlrtree.txt
│       │   │   ├── valVarLoopParameter.antlrtree.txt
│       │   │   ├── when.kt234.kt973.antlrtree.txt
│       │   │   ├── whenInResultOfLambda.antlrtree.txt
│       │   │   ├── whenToAnyDiscriminatingUsages.antlrtree.txt
│       │   │   ├── whenWithNoSubjectAndCommas.antlrtree.txt
│       │   │   └── whenWithNothingTypedSubject.antlrtree.txt
│       │   ├── coroutines/
│       │   │   ├── callableReference/
│       │   │   │   ├── invokeOutideSuspend.antlrtree.txt
│       │   │   │   └── outsideSuspend.antlrtree.txt
│       │   │   ├── inlineSuspendTypealias.antlrtree.txt
│       │   │   ├── modifierFormBuiltinSuspendFun.antlrtree.txt
│       │   │   ├── suspendFunctionAsSupertype/
│       │   │   │   ├── kSuspendFunctionN/
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypes.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperClass.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperFunInterface.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperinterface.antlrtree.txt
│       │   │   │   │   └── simple.antlrtree.txt
│       │   │   │   ├── simple/
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypes.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperClass.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperFunInterface.antlrtree.txt
│       │   │   │   │   ├── mixingSuspendAndNonSuspendSupertypesThruSuperinterface.antlrtree.txt
│       │   │   │   │   └── simple.antlrtree.txt
│       │   │   │   └── suspendFunctionN/
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypes.antlrtree.txt
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypesThruSuperClass.antlrtree.txt
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypesThruSuperFunInterface.antlrtree.txt
│       │   │   │       ├── mixingSuspendAndNonSuspendSupertypesThruSuperinterface.antlrtree.txt
│       │   │   │       └── simple.antlrtree.txt
│       │   │   ├── suspendInvokeInsideTry.antlrtree.txt
│       │   │   ├── suspendInvokeInsideWhen.antlrtree.txt
│       │   │   ├── suspendInvokeWithReceiver.antlrtree.txt
│       │   │   └── suspendLambdaFromExpectedType.antlrtree.txt
│       │   ├── cyclicHierarchy/
│       │   │   ├── classIndirectlyInheritsNested.antlrtree.txt
│       │   │   ├── classInheritsNested.antlrtree.txt
│       │   │   ├── commonSupertypeForCyclicAndUsualTypes.antlrtree.txt
│       │   │   ├── commonSupertypeForCyclicTypes.antlrtree.txt
│       │   │   ├── cyclicHierarchy.antlrtree.txt
│       │   │   ├── javaJavaCycle.main.antlrtree.txt
│       │   │   ├── javaKotlinJavaCycle.B.antlrtree.txt
│       │   │   ├── kotlinJavaCycle.K.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.I.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.K.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.ll.I.antlrtree.txt
│       │   │   ├── kotlinJavaKotlinCycle.ll.K.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.ExceptionTracker.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.StorageManager.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.ll.ExceptionTracker.antlrtree.txt
│       │   │   ├── kotlinJavaNestedCycle.ll.StorageManager.antlrtree.txt
│       │   │   ├── kt303.antlrtree.txt
│       │   │   ├── nestedClassInSuperClassParameter.antlrtree.txt
│       │   │   ├── objectInheritsNested.antlrtree.txt
│       │   │   ├── twoClassesWithNestedCycle.antlrtree.txt
│       │   │   └── withCompanion/
│       │   │       ├── everythingInOneScope_after.antlrtree.txt
│       │   │       ├── everythingInOneScope_before.antlrtree.txt
│       │   │       ├── noMembers_after.antlrtree.txt
│       │   │       ├── noMembers_before.antlrtree.txt
│       │   │       ├── onlyInterfaces_after.antlrtree.txt
│       │   │       ├── onlyInterfaces_before.antlrtree.txt
│       │   │       ├── typeIsLowEnough.antlrtree.txt
│       │   │       ├── withIrrelevantInterface_after.antlrtree.txt
│       │   │       ├── withIrrelevantInterface_before.antlrtree.txt
│       │   │       ├── withMembers_after.antlrtree.txt
│       │   │       ├── withMembers_before.antlrtree.txt
│       │   │       └── withoutTypeReference.antlrtree.txt
│       │   ├── dataClasses/
│       │   │   ├── companionDataObject.antlrtree.txt
│       │   │   ├── componentNamedComponent1.antlrtree.txt
│       │   │   ├── conflictingCopyOverloads.antlrtree.txt
│       │   │   ├── conflictingOverloads.antlrtree.txt
│       │   │   ├── copyOfPrivateClass.antlrtree.txt
│       │   │   ├── dataClassExplicitlyOverridingCopyNoDefaults.antlrtree.txt
│       │   │   ├── dataClassExplicitlyOverridingCopyWithDefaults.antlrtree.txt
│       │   │   ├── dataClassNoName.antlrtree.txt
│       │   │   ├── dataClassNotOverridingCopy.antlrtree.txt
│       │   │   ├── dataClassOverridingCopy_lv12.antlrtree.txt
│       │   │   ├── dataClassOverridingCopy_lv13.antlrtree.txt
│       │   │   ├── dataClassVarargParam.antlrtree.txt
│       │   │   ├── dataInheritance.antlrtree.txt
│       │   │   ├── dataObjectDisabled.antlrtree.txt
│       │   │   ├── dataObjectEnabled.antlrtree.txt
│       │   │   ├── dataObjectLiteral.antlrtree.txt
│       │   │   ├── emptyConstructor.antlrtree.txt
│       │   │   ├── errorTypesInDataClasses.antlrtree.txt
│       │   │   ├── extensionComponentsOnNullable.antlrtree.txt
│       │   │   ├── finalMembersInBaseClass.antlrtree.txt
│       │   │   ├── implementMethodsFromInterface.antlrtree.txt
│       │   │   ├── implementTraitWhichHasComponent1.antlrtree.txt
│       │   │   ├── implementTraitWhichHasFinalComponent1.antlrtree.txt
│       │   │   ├── innerDataClass.antlrtree.txt
│       │   │   ├── innerOuterDataClass.antlrtree.txt
│       │   │   ├── multiDeclaration.antlrtree.txt
│       │   │   ├── multiDeclarationFor.antlrtree.txt
│       │   │   ├── noConstructor.antlrtree.txt
│       │   │   ├── notADataClass.antlrtree.txt
│       │   │   ├── oneValParam.antlrtree.txt
│       │   │   ├── repeatedProperties.antlrtree.txt
│       │   │   ├── sealedDataClass.antlrtree.txt
│       │   │   ├── strange.antlrtree.txt
│       │   │   ├── twoValParams.antlrtree.txt
│       │   │   └── twoVarParams.antlrtree.txt
│       │   ├── dataFlow/
│       │   │   ├── CalleeExpression.antlrtree.txt
│       │   │   ├── EmptyIf.antlrtree.txt
│       │   │   ├── IsExpression.antlrtree.txt
│       │   │   ├── WhenSubject.antlrtree.txt
│       │   │   ├── assignment/
│       │   │   │   ├── assignToNewVal.antlrtree.txt
│       │   │   │   ├── kt6118.antlrtree.txt
│       │   │   │   ├── uninitializedValIsCheck.antlrtree.txt
│       │   │   │   ├── uninitializedValNullability.antlrtree.txt
│       │   │   │   └── when.antlrtree.txt
│       │   │   ├── local/
│       │   │   │   ├── LocalClassBase.antlrtree.txt
│       │   │   │   ├── LocalClassDefaultParameters.antlrtree.txt
│       │   │   │   ├── LocalClassDelegatedProperties.antlrtree.txt
│       │   │   │   ├── LocalClassDelegation.antlrtree.txt
│       │   │   │   ├── LocalClassFunctions.antlrtree.txt
│       │   │   │   ├── LocalClassInMemberOfLocalClass.antlrtree.txt
│       │   │   │   ├── LocalClassInitializer.antlrtree.txt
│       │   │   │   ├── LocalClassProperty.antlrtree.txt
│       │   │   │   ├── LocalObject.antlrtree.txt
│       │   │   │   ├── LocalObjectDelegation.antlrtree.txt
│       │   │   │   ├── NestedLocalClass.antlrtree.txt
│       │   │   │   └── kt2835.antlrtree.txt
│       │   │   └── smartCastWithLambdaAndCallableReference.antlrtree.txt
│       │   ├── dataFlowInfoTraversal/
│       │   │   ├── AndOr.antlrtree.txt
│       │   │   ├── ArrayAccess.antlrtree.txt
│       │   │   ├── ArrayExpression.antlrtree.txt
│       │   │   ├── ArrayGetSetConvention.antlrtree.txt
│       │   │   ├── ArrayIndices.antlrtree.txt
│       │   │   ├── Assignment.antlrtree.txt
│       │   │   ├── AssignmentInInitializer.antlrtree.txt
│       │   │   ├── AssignmentOperation.antlrtree.txt
│       │   │   ├── AssignmentToArrayElement.antlrtree.txt
│       │   │   ├── BinaryExpression.antlrtree.txt
│       │   │   ├── BinaryExpressionBooleanOperations.antlrtree.txt
│       │   │   ├── BinaryExpressionCompareToConvention.antlrtree.txt
│       │   │   ├── BinaryExpressionContainsConvention.antlrtree.txt
│       │   │   ├── BinaryExpressionElvis.antlrtree.txt
│       │   │   ├── BinaryExpressionEqualsConvention.antlrtree.txt
│       │   │   ├── BinaryExpressionIdentifier.antlrtree.txt
│       │   │   ├── BinaryExpressionPlusConvention.antlrtree.txt
│       │   │   ├── Condition.antlrtree.txt
│       │   │   ├── ContinueOuterLoop.antlrtree.txt
│       │   │   ├── DeepIf.antlrtree.txt
│       │   │   ├── DoWhile.antlrtree.txt
│       │   │   ├── DoWhileCondition.antlrtree.txt
│       │   │   ├── Elvis.antlrtree.txt
│       │   │   ├── ExclExcl.antlrtree.txt
│       │   │   ├── For.antlrtree.txt
│       │   │   ├── ForLoopRange.antlrtree.txt
│       │   │   ├── FunctionLiteral.antlrtree.txt
│       │   │   ├── IfStatement.antlrtree.txt
│       │   │   ├── IfThenElse.antlrtree.txt
│       │   │   ├── IfThenElseBothInvalid.antlrtree.txt
│       │   │   ├── IsExpression.antlrtree.txt
│       │   │   ├── ManyIfs.antlrtree.txt
│       │   │   ├── MultiDeclaration.antlrtree.txt
│       │   │   ├── ObjectExpression.antlrtree.txt
│       │   │   ├── QualifiedExpression.antlrtree.txt
│       │   │   ├── Return.antlrtree.txt
│       │   │   ├── StringTemplate.antlrtree.txt
│       │   │   ├── ThisSuper.antlrtree.txt
│       │   │   ├── Throw.antlrtree.txt
│       │   │   ├── TryCatch.antlrtree.txt
│       │   │   ├── TryFinally.antlrtree.txt
│       │   │   ├── UnaryExpression.antlrtree.txt
│       │   │   ├── When.antlrtree.txt
│       │   │   ├── WhenEntryAs.antlrtree.txt
│       │   │   ├── WhenEntryIs.antlrtree.txt
│       │   │   ├── WhenIn.antlrtree.txt
│       │   │   ├── WhenSubject.antlrtree.txt
│       │   │   ├── While.antlrtree.txt
│       │   │   ├── WhileCondition.antlrtree.txt
│       │   │   ├── kt4332WhenBranches.antlrtree.txt
│       │   │   ├── kt5155WhenBranches.antlrtree.txt
│       │   │   ├── kt5182WhenBranches.antlrtree.txt
│       │   │   └── smartcasts/
│       │   │       ├── SmartcastAmbiguitites.antlrtree.txt
│       │   │       ├── SmartcastsForStableIdentifiers.a.antlrtree.txt
│       │   │       └── SmartcastsForStableIdentifiers.b.antlrtree.txt
│       │   ├── dataObjects/
│       │   │   └── overrideEqualsAndHashCode.antlrtree.txt
│       │   ├── declarationChecks/
│       │   │   ├── ComponentFunctionReturnTypeMismatch.antlrtree.txt
│       │   │   ├── ConflictingAndRedundantProjections.antlrtree.txt
│       │   │   ├── DataFlowInMultiDeclInFor.antlrtree.txt
│       │   │   ├── DataFlowInfoInMultiDecl.antlrtree.txt
│       │   │   ├── FunctionWithMissingNames.antlrtree.txt
│       │   │   ├── LocalVariableWithNoTypeInformation.antlrtree.txt
│       │   │   ├── MultiDeclarationErrors.antlrtree.txt
│       │   │   ├── RedeclarationsInMultiDecl.antlrtree.txt
│       │   │   ├── ScalaLikeNamedFun.antlrtree.txt
│       │   │   ├── VarianceOnFunctionAndPropertyTypeParameters.antlrtree.txt
│       │   │   ├── ambiguousObjectExpressionType.antlrtree.txt
│       │   │   ├── anonymousFunAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── anonymousFunUnusedLastExpressionInBlock.antlrtree.txt
│       │   │   ├── destructuringDeclarations/
│       │   │   │   ├── DoubleDeclForLoop.antlrtree.txt
│       │   │   │   ├── FolLoopTypeComponentTypeMismatch.antlrtree.txt
│       │   │   │   ├── ForLoopComponentFunctionAmbiguity.antlrtree.txt
│       │   │   │   ├── ForLoopComponentFunctionMissing.antlrtree.txt
│       │   │   │   ├── ForLoopMissingLoopParameter.antlrtree.txt
│       │   │   │   ├── ForLoopWithExtensions.antlrtree.txt
│       │   │   │   ├── ForWithExplicitTypes.antlrtree.txt
│       │   │   │   ├── RedeclarationInForLoop.antlrtree.txt
│       │   │   │   ├── SingleDeclForLoop.antlrtree.txt
│       │   │   │   ├── destructuringDeclarationAssignedUnresolved.antlrtree.txt
│       │   │   │   ├── destructuringDeclarationMissingInitializer.antlrtree.txt
│       │   │   │   ├── kt2829.antlrtree.txt
│       │   │   │   ├── lastDestructuringDeclarationInBlock.antlrtree.txt
│       │   │   │   └── underscore.antlrtree.txt
│       │   │   ├── finiteBoundRestriction/
│       │   │   │   ├── CasesWithOneTypeParameter.antlrtree.txt
│       │   │   │   ├── CasesWithTwoTypeParameters.antlrtree.txt
│       │   │   │   └── JavaSuperType.1.antlrtree.txt
│       │   │   ├── illegalModifiersOnClass.antlrtree.txt
│       │   │   ├── kClassInSignature.antlrtree.txt
│       │   │   ├── kt1141.antlrtree.txt
│       │   │   ├── kt1193.antlrtree.txt
│       │   │   ├── kt2096.antlrtree.txt
│       │   │   ├── kt2142.antlrtree.txt
│       │   │   ├── kt2397.antlrtree.txt
│       │   │   ├── kt2631_MultipleDeclaration.antlrtree.txt
│       │   │   ├── kt2643MultiDeclInControlFlow.antlrtree.txt
│       │   │   ├── kt559.antlrtree.txt
│       │   │   ├── localDeclarationModifiers.antlrtree.txt
│       │   │   ├── localFunctionNoInheritVisibility.antlrtree.txt
│       │   │   ├── localObjectInInnerClass.antlrtree.txt
│       │   │   ├── localVariablesWithTypeParameters_1_3.antlrtree.txt
│       │   │   ├── localVariablesWithTypeParameters_1_4.antlrtree.txt
│       │   │   ├── mappedFunctionNotImplemented.CharSeq.antlrtree.txt
│       │   │   ├── mulitpleVarargParameters.antlrtree.txt
│       │   │   ├── nameWithDangerousCharacters.antlrtree.txt
│       │   │   ├── namedFunAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── nonExpansiveInheritanceRestriction/
│       │   │   │   ├── JavaWithKotlin.1.antlrtree.txt
│       │   │   │   ├── JavaWithKotlin2.1.antlrtree.txt
│       │   │   │   └── PureKotlin.antlrtree.txt
│       │   │   ├── packageDeclarationModifiers.antlrtree.txt
│       │   │   ├── propertyInPackageHasNoInheritVisibility.antlrtree.txt
│       │   │   ├── sealedOnMembers.antlrtree.txt
│       │   │   ├── unambiguousObjectExpressionType.antlrtree.txt
│       │   │   └── valVarFunctionParameter.antlrtree.txt
│       │   ├── defaultArguments/
│       │   │   ├── kt5232.antlrtree.txt
│       │   │   └── superCall.antlrtree.txt
│       │   ├── delegatedProperty/
│       │   │   ├── absentErrorAboutInitializer.antlrtree.txt
│       │   │   ├── absentErrorAboutType.antlrtree.txt
│       │   │   ├── abstractDelegatedProperty.antlrtree.txt
│       │   │   ├── backingField.antlrtree.txt
│       │   │   ├── defaultGetter.antlrtree.txt
│       │   │   ├── defaultSetter.antlrtree.txt
│       │   │   ├── delegatedPropertyOverridedInTrait.antlrtree.txt
│       │   │   ├── delegatedPropertyOverridedInTraitTypeMismatch.antlrtree.txt
│       │   │   ├── disallowImplInTypeParameter.antlrtree.txt
│       │   │   ├── genericGetter.antlrtree.txt
│       │   │   ├── getterWithSubtype.antlrtree.txt
│       │   │   ├── inTrait.antlrtree.txt
│       │   │   ├── incompleteTypeInference.antlrtree.txt
│       │   │   ├── inference/
│       │   │   │   ├── callableReferenceArgumentInDelegatedExpression.antlrtree.txt
│       │   │   │   ├── decoratedLambda.antlrtree.txt
│       │   │   │   ├── delegateExpressionAsLambda.antlrtree.txt
│       │   │   │   ├── delegatedExpressionWithLabeledReturnInsideLambda.antlrtree.txt
│       │   │   │   ├── differentDelegatedExpressions.antlrtree.txt
│       │   │   │   ├── elvisInDelegated.antlrtree.txt
│       │   │   │   ├── extensionGet.antlrtree.txt
│       │   │   │   ├── extensionProperty.antlrtree.txt
│       │   │   │   ├── genericMethodInGenericClass.antlrtree.txt
│       │   │   │   ├── genericMethods.antlrtree.txt
│       │   │   │   ├── ifInDelegated.antlrtree.txt
│       │   │   │   ├── kt41952.antlrtree.txt
│       │   │   │   ├── labeledDelegatedExpression.antlrtree.txt
│       │   │   │   ├── manyIncompleteCandidates.first.antlrtree.txt
│       │   │   │   ├── manyIncompleteCandidates.main.antlrtree.txt
│       │   │   │   ├── manyIncompleteCandidates.second.antlrtree.txt
│       │   │   │   ├── nestedPartiallyResolvedCalls.main.antlrtree.txt
│       │   │   │   ├── nestedPartiallyResolvedCallsSimple.antlrtree.txt
│       │   │   │   ├── noErrorsForImplicitConstraints.antlrtree.txt
│       │   │   │   ├── noExpectedTypeForSupertypeConstraint.antlrtree.txt
│       │   │   │   ├── notNullAssertionInLocalDelegated.antlrtree.txt
│       │   │   │   ├── resultTypeOfLambdaForConventionMethods.antlrtree.txt
│       │   │   │   ├── tryInGenerated.antlrtree.txt
│       │   │   │   ├── typeOfLazyDelegatedPropertyWithObject.antlrtree.txt
│       │   │   │   ├── useCompleterWithoutExpectedType.antlrtree.txt
│       │   │   │   ├── useExpectedType.antlrtree.txt
│       │   │   │   └── useExpectedTypeForVal.antlrtree.txt
│       │   │   ├── kt4640.antlrtree.txt
│       │   │   ├── kt48546.antlrtree.txt
│       │   │   ├── kt48546Strict.antlrtree.txt
│       │   │   ├── localVariable.antlrtree.txt
│       │   │   ├── localWithSmartCast.antlrtree.txt
│       │   │   ├── missedGetter.antlrtree.txt
│       │   │   ├── missedSetter.antlrtree.txt
│       │   │   ├── noInferenceFromGetValueThroughSetValue.antlrtree.txt
│       │   │   ├── noInferenceFromWrappedDelegate.antlrtree.txt
│       │   │   ├── noPreliminarySetterInferenceForImplicitlyTypedVar.antlrtree.txt
│       │   │   ├── nonDefaultAccessors.antlrtree.txt
│       │   │   ├── propertyDefferedType.antlrtree.txt
│       │   │   ├── provideDelegate/
│       │   │   │   ├── commonCaseForInference.antlrtree.txt
│       │   │   │   ├── genericProvideDelegate.antlrtree.txt
│       │   │   │   ├── hostAndReceiver1.antlrtree.txt
│       │   │   │   ├── hostAndReceiver2.antlrtree.txt
│       │   │   │   ├── hostAndReceiver3.antlrtree.txt
│       │   │   │   ├── inferenceFromReceiver1.antlrtree.txt
│       │   │   │   ├── inferenceFromReceiver2.antlrtree.txt
│       │   │   │   ├── kt38714.antlrtree.txt
│       │   │   │   ├── localDelegatedProperty.antlrtree.txt
│       │   │   │   ├── noOperatorModifierOnProvideDelegate.antlrtree.txt
│       │   │   │   ├── notNullAssertionInLocalDelegated.antlrtree.txt
│       │   │   │   ├── onObject.antlrtree.txt
│       │   │   │   ├── overloadResolutionForSeveralProvideDelegates.antlrtree.txt
│       │   │   │   ├── provideDelegateOnFunctionalTypeWithThis.antlrtree.txt
│       │   │   │   ├── provideDelegateOperatorDeclaration.antlrtree.txt
│       │   │   │   ├── provideDelegateResolutionWithStubTypes.antlrtree.txt
│       │   │   │   ├── setValue.antlrtree.txt
│       │   │   │   └── simpleProvideDelegate.antlrtree.txt
│       │   │   ├── recursiveType.antlrtree.txt
│       │   │   ├── recursiveType.reversed.antlrtree.txt
│       │   │   ├── redundantGetter.antlrtree.txt
│       │   │   ├── redundantSetter.antlrtree.txt
│       │   │   ├── setterThisTypeMismatch.antlrtree.txt
│       │   │   ├── setterWithSupertype.antlrtree.txt
│       │   │   ├── severalReceivers.antlrtree.txt
│       │   │   ├── thisInDelegate.antlrtree.txt
│       │   │   ├── thisOfAnyType.antlrtree.txt
│       │   │   ├── thisOfNothingNullableType.antlrtree.txt
│       │   │   ├── thisOfNothingType.antlrtree.txt
│       │   │   ├── twoGetMethods.antlrtree.txt
│       │   │   ├── typeMismatchForGetReturnType.antlrtree.txt
│       │   │   ├── typeMismatchForGetWithGeneric.antlrtree.txt
│       │   │   ├── typeMismatchForSetParameter.antlrtree.txt
│       │   │   ├── typeMismatchForThisGetParameter.antlrtree.txt
│       │   │   ├── useTypeParameterOfExtensionProperty.antlrtree.txt
│       │   │   ├── useTypeParameterOfExtensionProperty2.antlrtree.txt
│       │   │   ├── useTypeParameterOfExtensionProperty_Disabled.antlrtree.txt
│       │   │   ├── wrongCountOfParametersInGet.antlrtree.txt
│       │   │   ├── wrongCountOfParametersInSet.antlrtree.txt
│       │   │   └── wrongSetterReturnType.antlrtree.txt
│       │   ├── delegation/
│       │   │   ├── DelegationAndOverriding.antlrtree.txt
│       │   │   ├── DelegationExpectedType.antlrtree.txt
│       │   │   ├── DelegationNotTotrait.antlrtree.txt
│       │   │   ├── DelegationToJavaIface.antlrtree.txt
│       │   │   ├── Delegation_ClashingFunctions.antlrtree.txt
│       │   │   ├── Delegation_Hierarchy.antlrtree.txt
│       │   │   ├── Delegation_MultipleDelegates.antlrtree.txt
│       │   │   ├── Delegation_ScopeInitializationOrder.antlrtree.txt
│       │   │   ├── clashes/
│       │   │   │   ├── finalMemberOverridden.antlrtree.txt
│       │   │   │   ├── propertyTypeMismatch.antlrtree.txt
│       │   │   │   ├── returnTypeMismatch.antlrtree.txt
│       │   │   │   └── varOverriddenByVal.antlrtree.txt
│       │   │   ├── covariantOverrides/
│       │   │   │   ├── fromClass.antlrtree.txt
│       │   │   │   ├── irrelevant.antlrtree.txt
│       │   │   │   ├── kt13952.antlrtree.txt
│       │   │   │   └── simple.antlrtree.txt
│       │   │   ├── kt40510.main.antlrtree.txt
│       │   │   ├── kt44843.lt_neworld_compiler_Foo.antlrtree.txt
│       │   │   ├── kt44843.lt_neworld_compiler_bar_Bar.antlrtree.txt
│       │   │   ├── kt44843.test.antlrtree.txt
│       │   │   ├── kt48546.antlrtree.txt
│       │   │   ├── kt49477.antlrtree.txt
│       │   │   ├── kt49477.reversed.antlrtree.txt
│       │   │   ├── kt49477Error.antlrtree.txt
│       │   │   ├── kt49477Error.reversed.antlrtree.txt
│       │   │   ├── kt8154.antlrtree.txt
│       │   │   └── memberHidesSupertypeOverride/
│       │   │       ├── abstractOverride.antlrtree.txt
│       │   │       ├── delegationToSubType.antlrtree.txt
│       │   │       ├── delegationToSubTypeProperty.antlrtree.txt
│       │   │       ├── delegationToSubTypeWithOverride.antlrtree.txt
│       │   │       ├── delegationToSubTypeWithOverrideProperty.antlrtree.txt
│       │   │       ├── diamond.antlrtree.txt
│       │   │       ├── explicitOverride.antlrtree.txt
│       │   │       ├── fakeOverrideInTheMiddle.antlrtree.txt
│       │   │       ├── generic.antlrtree.txt
│       │   │       ├── sameDelegationInHierarchy.antlrtree.txt
│       │   │       ├── sameDelegationInHierarchy2.antlrtree.txt
│       │   │       ├── severalDelegates.antlrtree.txt
│       │   │       ├── simple.antlrtree.txt
│       │   │       ├── simpleNoOverride.antlrtree.txt
│       │   │       └── simpleProp.antlrtree.txt
│       │   ├── delegationTypeMismatch.antlrtree.txt
│       │   ├── deparenthesize/
│       │   │   ├── ParenthesizedVariable.antlrtree.txt
│       │   │   ├── annotatedSafeCall.antlrtree.txt
│       │   │   ├── checkDeparenthesizedType.antlrtree.txt
│       │   │   ├── labeledSafeCall.antlrtree.txt
│       │   │   ├── multiParenthesizedSafeCall.antlrtree.txt
│       │   │   └── parenthesizedSafeCall.antlrtree.txt
│       │   ├── deprecated/
│       │   │   ├── annotationUsage.antlrtree.txt
│       │   │   ├── candidateBehindHiddenPropertyAccessors.antlrtree.txt
│       │   │   ├── classWithCompanionObject.antlrtree.txt
│       │   │   ├── companionObjectUsage.antlrtree.txt
│       │   │   ├── componentUsage.antlrtree.txt
│       │   │   ├── deprecatedCompanionAndClassReference.antlrtree.txt
│       │   │   ├── deprecatedConstructor.A.antlrtree.txt
│       │   │   ├── deprecatedConstructor.C.antlrtree.txt
│       │   │   ├── deprecatedConstructor.use.antlrtree.txt
│       │   │   ├── deprecatedConstructorProperty.A.antlrtree.txt
│       │   │   ├── deprecatedConstructorProperty.use.antlrtree.txt
│       │   │   ├── deprecatedEnumEntry.A.antlrtree.txt
│       │   │   ├── deprecatedEnumEntry.use.antlrtree.txt
│       │   │   ├── deprecatedError.antlrtree.txt
│       │   │   ├── deprecatedErrorBuilder.antlrtree.txt
│       │   │   ├── deprecatedField.use.antlrtree.txt
│       │   │   ├── deprecatedHidden.antlrtree.txt
│       │   │   ├── deprecatedHiddenOnCallableReferenceArgument.antlrtree.txt
│       │   │   ├── deprecatedInheritance_after.antlrtree.txt
│       │   │   ├── deprecatedInheritance_before.antlrtree.txt
│       │   │   ├── deprecatedPropertyInheritance_after.antlrtree.txt
│       │   │   ├── deprecatedPropertyInheritance_before.antlrtree.txt
│       │   │   ├── deprecatedSinceKotlin/
│       │   │   │   ├── checkValuesAreParseableAsVersion.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinDeclaration.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinHiddenOnReferenceArgument.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinOutsideKotlinPackage.antlrtree.txt
│       │   │   │   ├── deprecatedSinceKotlinWithoutArguments.antlrtree.txt
│       │   │   │   ├── error.antlrtree.txt
│       │   │   │   ├── hidden.antlrtree.txt
│       │   │   │   ├── messageFromDeprecatedAnnotation.antlrtree.txt
│       │   │   │   └── warning.antlrtree.txt
│       │   │   ├── duplicatedOverrideDeprecationOnProperty.antlrtree.txt
│       │   │   ├── functionUsage.antlrtree.txt
│       │   │   ├── genericConstructorUsage.antlrtree.txt
│       │   │   ├── hiddenPropertyAccessors.antlrtree.txt
│       │   │   ├── importJavaSamInterface.K.antlrtree.txt
│       │   │   ├── imports.antlrtree.txt
│       │   │   ├── iteratorUsage.antlrtree.txt
│       │   │   ├── javaDeprecated.B.antlrtree.txt
│       │   │   ├── javaDeprecatedInheritance.use.antlrtree.txt
│       │   │   ├── javaDocDeprecated.B.antlrtree.txt
│       │   │   ├── nestedTypesUsage.antlrtree.txt
│       │   │   ├── objectUsage.antlrtree.txt
│       │   │   ├── propertyUsage.antlrtree.txt
│       │   │   ├── propertyUseSiteTargetedAnnotations.antlrtree.txt
│       │   │   ├── propertyWithInvoke.antlrtree.txt
│       │   │   ├── thisUsage.antlrtree.txt
│       │   │   ├── typeUsage.antlrtree.txt
│       │   │   ├── typealiasCompanionObject.antlrtree.txt
│       │   │   ├── typealiasConstructor.antlrtree.txt
│       │   │   ├── typealiasForDeprecatedClass.antlrtree.txt
│       │   │   ├── typealiasUsage.antlrtree.txt
│       │   │   ├── unusedImport.A.antlrtree.txt
│       │   │   ├── unusedImport.B.antlrtree.txt
│       │   │   ├── usageOnEnum.antlrtree.txt
│       │   │   └── warningOnConstructorErrorOnClass.antlrtree.txt
│       │   ├── derivedIntersectionPropertyShadowsBaseClassField.test.antlrtree.txt
│       │   ├── differentNumericTypesFromSmartCast.antlrtree.txt
│       │   ├── duplicateJvmSignature/
│       │   │   ├── accidentalOverrides/
│       │   │   │   ├── accidentalOverrideFromGrandparent.antlrtree.txt
│       │   │   │   ├── classFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── classFunctionOverriddenByPropertyInConstructor.antlrtree.txt
│       │   │   │   ├── classFunctionOverriddenByPropertyNoGetter.antlrtree.txt
│       │   │   │   ├── classPropertyOverriddenByFunction.antlrtree.txt
│       │   │   │   ├── defaultFunction.antlrtree.txt
│       │   │   │   ├── delegatedFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── genericClassFunction.antlrtree.txt
│       │   │   │   ├── overridesNothing.antlrtree.txt
│       │   │   │   ├── privateClassFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── require.antlrtree.txt
│       │   │   │   ├── traitFunctionOverriddenByProperty.antlrtree.txt
│       │   │   │   ├── traitFunctionOverriddenByPropertyNoImpl.antlrtree.txt
│       │   │   │   ├── traitPropertyOverriddenByFunction.antlrtree.txt
│       │   │   │   └── traitPropertyOverriddenByFunctionNoImpl.antlrtree.txt
│       │   │   ├── bridges/
│       │   │   │   ├── class.antlrtree.txt
│       │   │   │   ├── fakeOverrideTrait.antlrtree.txt
│       │   │   │   └── trait.antlrtree.txt
│       │   │   ├── caseInProperties.antlrtree.txt
│       │   │   ├── erasure/
│       │   │   │   ├── clashFromInterfaceAndSuperClass.antlrtree.txt
│       │   │   │   ├── collections.antlrtree.txt
│       │   │   │   ├── delegateToTwoTraits.antlrtree.txt
│       │   │   │   ├── delegationAndOwnMethod.antlrtree.txt
│       │   │   │   ├── delegationToTraitImplAndOwnMethod.antlrtree.txt
│       │   │   │   ├── extensionProperties.antlrtree.txt
│       │   │   │   ├── genericType.antlrtree.txt
│       │   │   │   ├── inheritFromTwoTraits.antlrtree.txt
│       │   │   │   ├── kotlinAndJavaCollections.antlrtree.txt
│       │   │   │   ├── nullableType.antlrtree.txt
│       │   │   │   ├── superTraitAndDelegationToTraitImpl.antlrtree.txt
│       │   │   │   ├── twoTraitsAndOwnFunction.antlrtree.txt
│       │   │   │   ├── typeMappedToJava.antlrtree.txt
│       │   │   │   ├── typeParameter.antlrtree.txt
│       │   │   │   ├── typeParameterWithBound.antlrtree.txt
│       │   │   │   ├── typeParameterWithTwoBounds.antlrtree.txt
│       │   │   │   └── typeParameterWithTwoBoundsInWhere.antlrtree.txt
│       │   │   ├── finalMembersFromBuiltIns/
│       │   │   │   ├── enumMembers.antlrtree.txt
│       │   │   │   └── waitNotifyGetClass.antlrtree.txt
│       │   │   ├── functionAndProperty/
│       │   │   │   ├── class.antlrtree.txt
│       │   │   │   ├── classObject.antlrtree.txt
│       │   │   │   ├── classPropertyInConstructor.antlrtree.txt
│       │   │   │   ├── extensionFunctionAndNormalFunction.antlrtree.txt
│       │   │   │   ├── extensionPropertyAndFunction.antlrtree.txt
│       │   │   │   ├── functionAndSetter.antlrtree.txt
│       │   │   │   ├── functionAndVar.antlrtree.txt
│       │   │   │   ├── localClass.antlrtree.txt
│       │   │   │   ├── localClassInClass.antlrtree.txt
│       │   │   │   ├── nestedClass.antlrtree.txt
│       │   │   │   ├── object.antlrtree.txt
│       │   │   │   ├── objectExpression.antlrtree.txt
│       │   │   │   ├── objectExpressionInConstructor.antlrtree.txt
│       │   │   │   ├── privateClassPropertyNoClash.B.antlrtree.txt
│       │   │   │   ├── topLevel.antlrtree.txt
│       │   │   │   ├── topLevelDifferentFiles.a.antlrtree.txt
│       │   │   │   ├── topLevelDifferentFiles.b.antlrtree.txt
│       │   │   │   ├── topLevelGetter.antlrtree.txt
│       │   │   │   ├── trait.antlrtree.txt
│       │   │   │   └── withErrorTypes.antlrtree.txt
│       │   │   ├── missingNames.antlrtree.txt
│       │   │   ├── specialNames/
│       │   │   │   ├── classObject.antlrtree.txt
│       │   │   │   ├── classObjectCopiedField.antlrtree.txt
│       │   │   │   ├── classObjectCopiedFieldObject.antlrtree.txt
│       │   │   │   ├── dataClassCopy.antlrtree.txt
│       │   │   │   ├── delegationBy.antlrtree.txt
│       │   │   │   ├── enum.antlrtree.txt
│       │   │   │   ├── innerClassField.antlrtree.txt
│       │   │   │   ├── instance.antlrtree.txt
│       │   │   │   └── propertyMetadataCache.antlrtree.txt
│       │   │   ├── statics/
│       │   │   │   ├── jkjk.B.antlrtree.txt
│       │   │   │   ├── jkjk.K.antlrtree.txt
│       │   │   │   ├── kotlinClassExtendsJavaClass.K.antlrtree.txt
│       │   │   │   ├── kotlinClassExtendsJavaClassExtendsJavaClass.K.antlrtree.txt
│       │   │   │   ├── kotlinClassImplementsJavaInterface.K.antlrtree.txt
│       │   │   │   ├── kotlinClassImplementsJavaInterfaceExtendsJavaInteface.K.antlrtree.txt
│       │   │   │   └── kotlinMembersVsJavaNonVisibleStatics.K.antlrtree.txt
│       │   │   ├── synthesized/
│       │   │   │   └── enumValuesValueOf.antlrtree.txt
│       │   │   ├── traitImpl/
│       │   │   │   ├── oneTrait.antlrtree.txt
│       │   │   │   ├── traitFunctionOverriddenByPropertyInTrait.antlrtree.txt
│       │   │   │   ├── traitPropertyOverriddenByFunctionInTrait.antlrtree.txt
│       │   │   │   └── twoTraits.antlrtree.txt
│       │   │   └── vararg.antlrtree.txt
│       │   ├── dynamicTypes/
│       │   │   ├── delegationBy.antlrtree.txt
│       │   │   ├── unsupported.antlrtree.txt
│       │   │   └── withInvisibleSynthesized.k.antlrtree.txt
│       │   ├── enum/
│       │   │   ├── AbstractEnum.antlrtree.txt
│       │   │   ├── AbstractInEnum.antlrtree.txt
│       │   │   ├── AbstractOverrideInEnum.antlrtree.txt
│       │   │   ├── ConstructorCallFromOutside.antlrtree.txt
│       │   │   ├── ExplicitConstructorCall.antlrtree.txt
│       │   │   ├── InsideEntryConstructorCall.antlrtree.txt
│       │   │   ├── InsideSecondaryConstructorCall.antlrtree.txt
│       │   │   ├── NonPrivateConstructor.antlrtree.txt
│       │   │   ├── SecondaryConstructorCall.antlrtree.txt
│       │   │   ├── classObjectInEnum.antlrtree.txt
│       │   │   ├── classObjectInEnumPrivate.antlrtree.txt
│       │   │   ├── commonSupertype.antlrtree.txt
│       │   │   ├── compareTwoDifferentEnums.test.antlrtree.txt
│       │   │   ├── constructorWithDefaultParametersOnly.antlrtree.txt
│       │   │   ├── declaringClass.antlrtree.txt
│       │   │   ├── dontCreatePackageTypeForEnumEntry_after.antlrtree.txt
│       │   │   ├── dontCreatePackageTypeForEnumEntry_before.antlrtree.txt
│       │   │   ├── emptyConstructor.antlrtree.txt
│       │   │   ├── entries/
│       │   │   │   ├── conflictingPropertyEntriesAndReference.antlrtree.txt
│       │   │   │   ├── conflictingPropertyEntriesAndReferenceOn.antlrtree.txt
│       │   │   │   ├── conflictingPropertyEntriesAndReferencePrioritized.antlrtree.txt
│       │   │   │   ├── entriesPropertyAsExtensionClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyAsExtensionClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyAsExtensionClashPrioritized.antlrtree.txt
│       │   │   │   ├── entriesPropertyImportedClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyImportedClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyImportedClashPrioritized.antlrtree.txt
│       │   │   │   ├── entriesPropertyInCompanionClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyInCompanionClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyWithJvmStaticClash.antlrtree.txt
│       │   │   │   ├── entriesPropertyWithJvmStaticClashOn.antlrtree.txt
│       │   │   │   ├── entriesPropertyWithJvmStaticClashPrioritized.antlrtree.txt
│       │   │   │   ├── entriesUnsupported.antlrtree.txt
│       │   │   │   ├── enumEntriesAmbiguity.antlrtree.txt
│       │   │   │   ├── genericEntriesPropertyClash.antlrtree.txt
│       │   │   │   ├── genericEntriesPropertyClashOn.antlrtree.txt
│       │   │   │   ├── javaEnumEntriesAmbiguity.test.antlrtree.txt
│       │   │   │   ├── javaEnumEntriesAmbiguityOn.test.antlrtree.txt
│       │   │   │   ├── javaFakeEnumEntries.test.antlrtree.txt
│       │   │   │   ├── nameShadowingOfExternallyDefinedEntries.antlrtree.txt
│       │   │   │   ├── nameShadowingOfExternallyDefinedEntriesOn.antlrtree.txt
│       │   │   │   ├── nameShadowingOfExternallyDefinedEntriesPrioritized.antlrtree.txt
│       │   │   │   ├── redeclarationOfEnumEntriesNameWithIntrinsic.antlrtree.txt
│       │   │   │   └── redeclarationOfEnumEntriesNameWithIntrinsicOn.antlrtree.txt
│       │   │   ├── entryShouldBeOfEnumType.antlrtree.txt
│       │   │   ├── enumEntryCannotHaveClassObject.antlrtree.txt
│       │   │   ├── enumEntryInAbstractEnum.antlrtree.txt
│       │   │   ├── enumImplementingTrait.antlrtree.txt
│       │   │   ├── enumInheritance.test.antlrtree.txt
│       │   │   ├── enumIsAssignableToBuiltInEnum.antlrtree.txt
│       │   │   ├── enumMissingName.antlrtree.txt
│       │   │   ├── enumModifier.antlrtree.txt
│       │   │   ├── enumStarImport.enum.antlrtree.txt
│       │   │   ├── enumStarImport.user.antlrtree.txt
│       │   │   ├── enumSubjectTypeCheck.antlrtree.txt
│       │   │   ├── enumWithAnnotationKeyword.antlrtree.txt
│       │   │   ├── enumWithEmptyName.antlrtree.txt
│       │   │   ├── equalityOfEnumAndParameter.antlrtree.txt
│       │   │   ├── equalityOfFlexibleTypeParameters.B.antlrtree.txt
│       │   │   ├── extendingEnumDirectly.antlrtree.txt
│       │   │   ├── extensionNamedAsEnumEntry.antlrtree.txt
│       │   │   ├── ifEnumEntry.antlrtree.txt
│       │   │   ├── importEnumFromJava.test.antlrtree.txt
│       │   │   ├── incompatibleEnumEntryClasses.antlrtree.txt
│       │   │   ├── incompatibleEnums.antlrtree.txt
│       │   │   ├── incompatibleEnums_1_4.antlrtree.txt
│       │   │   ├── inheritFromEnumEntry.antlrtree.txt
│       │   │   ├── inheritanceFromEnum.test.antlrtree.txt
│       │   │   ├── inline.antlrtree.txt
│       │   │   ├── inner/
│       │   │   │   ├── existingClassObject.antlrtree.txt
│       │   │   │   ├── insideClass.antlrtree.txt
│       │   │   │   ├── insideClassObject.antlrtree.txt
│       │   │   │   ├── insideEnum.antlrtree.txt
│       │   │   │   ├── insideEnumEntry_after.antlrtree.txt
│       │   │   │   ├── insideEnumEntry_before.antlrtree.txt
│       │   │   │   ├── insideInnerClassNotAllowed.antlrtree.txt
│       │   │   │   ├── insideObject.antlrtree.txt
│       │   │   │   ├── insideTrait.antlrtree.txt
│       │   │   │   ├── redeclarationInClassObject.antlrtree.txt
│       │   │   │   ├── twoEnums.antlrtree.txt
│       │   │   │   └── twoEnumsInClassObjectAndInnerClass.antlrtree.txt
│       │   │   ├── interfaceWithEnumKeyword.antlrtree.txt
│       │   │   ├── isEnumEntry.antlrtree.txt
│       │   │   ├── javaEnumValueOfMethod.test.antlrtree.txt
│       │   │   ├── javaEnumValuesMethod.test.antlrtree.txt
│       │   │   ├── javaEnumWithAbstractFun.test.antlrtree.txt
│       │   │   ├── javaEnumWithFuns.test.antlrtree.txt
│       │   │   ├── javaEnumWithNameClashing.test.antlrtree.txt
│       │   │   ├── javaEnumWithProperty.test.antlrtree.txt
│       │   │   ├── kt2834.antlrtree.txt
│       │   │   ├── kt8972_cloneNotAllowed.antlrtree.txt
│       │   │   ├── localEnums.antlrtree.txt
│       │   │   ├── modifiersOnEnumEntry.antlrtree.txt
│       │   │   ├── multipleConstructors.antlrtree.txt
│       │   │   ├── openMemberInEnum.antlrtree.txt
│       │   │   ├── overrideFinalEnumMethods.antlrtree.txt
│       │   │   ├── referenceToEnumEntry.antlrtree.txt
│       │   │   ├── secondaryConstructorWithoutDelegatingToPrimaryOne.antlrtree.txt
│       │   │   ├── secondaryConstructorWithoutDelegatingToPrimaryOneWithEnabledFeature.antlrtree.txt
│       │   │   ├── starImportNestedClassAndEntries.E.antlrtree.txt
│       │   │   ├── starImportNestedClassAndEntries.main.antlrtree.txt
│       │   │   ├── typeCompatibility.antlrtree.txt
│       │   │   ├── typeParametersInEnum.antlrtree.txt
│       │   │   ├── valuesValueOfAndEntriesAccessibility.antlrtree.txt
│       │   │   └── wrongUnitializedEnumCompanion.antlrtree.txt
│       │   ├── equalityComparisonToSelf.antlrtree.txt
│       │   ├── equalityWithSmartCastInIfBlock.antlrtree.txt
│       │   ├── evaluate/
│       │   │   ├── binaryMinusDepOnExpType.antlrtree.txt
│       │   │   ├── binaryMinusIndepWoExpType.antlrtree.txt
│       │   │   ├── binaryMinusIndependentExpType.antlrtree.txt
│       │   │   ├── customExtensionOverKotlinExtensionInConst.antlrtree.txt
│       │   │   ├── divisionByZero.antlrtree.txt
│       │   │   ├── float.antlrtree.txt
│       │   │   ├── floatLiteralOutOfRange.antlrtree.txt
│       │   │   ├── infixFunOverBuiltinMemberInConst.antlrtree.txt
│       │   │   ├── inlineClasses/
│       │   │   │   ├── constructorOfUnsignedType.test.antlrtree.txt
│       │   │   │   └── constructorOfUnsignedType.uint.antlrtree.txt
│       │   │   ├── intOverflow.antlrtree.txt
│       │   │   ├── intOverflowWithJavaProperties.A.antlrtree.txt
│       │   │   ├── integer.antlrtree.txt
│       │   │   ├── logicWithNumber.antlrtree.txt
│       │   │   ├── longOverflow.antlrtree.txt
│       │   │   ├── noOverflowWithZero.antlrtree.txt
│       │   │   ├── numberBinaryOperations.antlrtree.txt
│       │   │   ├── numberBinaryOperationsCall.antlrtree.txt
│       │   │   ├── numberBinaryOperationsInfixCall.antlrtree.txt
│       │   │   ├── otherOverflow.antlrtree.txt
│       │   │   ├── parentesized.antlrtree.txt
│       │   │   ├── qualifiedExpressions.a.antlrtree.txt
│       │   │   ├── qualifiedExpressions.b.antlrtree.txt
│       │   │   ├── unaryMinusDepOnExpType.antlrtree.txt
│       │   │   ├── unaryMinusIndepWoExpType.antlrtree.txt
│       │   │   ├── unaryMinusIndependentExpType.antlrtree.txt
│       │   │   └── wrongLongSuffix.antlrtree.txt
│       │   ├── exceptions/
│       │   │   ├── expectedSomeTypesOnBranchForWhenExpressionOfErroneousType.antlrtree.txt
│       │   │   └── kt24158.antlrtree.txt
│       │   ├── explicitDefinitelyNotNullableViaIntersection/
│       │   │   ├── approximation.antlrtree.txt
│       │   │   ├── bareTypes.antlrtree.txt
│       │   │   ├── disabledFeature.antlrtree.txt
│       │   │   ├── inference.antlrtree.txt
│       │   │   ├── isAsOperators.antlrtree.txt
│       │   │   ├── isAsOperatorsEnabled.antlrtree.txt
│       │   │   ├── notApplicable.antlrtree.txt
│       │   │   ├── overrides.antlrtree.txt
│       │   │   ├── overridesJavaAnnotated.main.antlrtree.txt
│       │   │   ├── recursiveBounds.antlrtree.txt
│       │   │   ├── reifiedArguments.antlrtree.txt
│       │   │   └── simple.antlrtree.txt
│       │   ├── exposed/
│       │   │   ├── delegate.antlrtree.txt
│       │   │   ├── exceptionOnFakeInvisible.antlrtree.txt
│       │   │   ├── functional.antlrtree.txt
│       │   │   ├── implements.antlrtree.txt
│       │   │   ├── inaccessibleType.k_Client.antlrtree.txt
│       │   │   ├── internal.antlrtree.txt
│       │   │   ├── internalAndProtected.antlrtree.txt
│       │   │   ├── internalFromLocal.antlrtree.txt
│       │   │   ├── local.antlrtree.txt
│       │   │   ├── localFromInternal.antlrtree.txt
│       │   │   ├── localFromPrivate.antlrtree.txt
│       │   │   ├── localInFunReturnType.antlrtree.txt
│       │   │   ├── localInMemberType.antlrtree.txt
│       │   │   ├── localInPropertyType.antlrtree.txt
│       │   │   ├── nested.antlrtree.txt
│       │   │   ├── object.antlrtree.txt
│       │   │   ├── packagePrivate.other_Your.antlrtree.txt
│       │   │   ├── packagePrivate.test_His.antlrtree.txt
│       │   │   ├── privateFromLocal.antlrtree.txt
│       │   │   ├── privateInFile.antlrtree.txt
│       │   │   ├── privateInFileDisabled.antlrtree.txt
│       │   │   ├── privatePropertyInPrivateConstructor.antlrtree.txt
│       │   │   ├── propertyInConstructorOfPrivateClass.antlrtree.txt
│       │   │   ├── propertyInPrivateConstructor.antlrtree.txt
│       │   │   ├── propertyInPrivateConstructorError.antlrtree.txt
│       │   │   ├── propertyInSimpleConstructor.antlrtree.txt
│       │   │   ├── protected.antlrtree.txt
│       │   │   ├── protectedInProtected.antlrtree.txt
│       │   │   ├── protectedJava.OuterDerived.antlrtree.txt
│       │   │   ├── protectedSameWay.antlrtree.txt
│       │   │   ├── simple.antlrtree.txt
│       │   │   └── typeArgs.antlrtree.txt
│       │   ├── extensions/
│       │   │   ├── ExtensionFunctions.a.antlrtree.txt
│       │   │   ├── ExtensionFunctions.b.antlrtree.txt
│       │   │   ├── ExtensionsCalledOnSuper.antlrtree.txt
│       │   │   ├── GenericIterator.antlrtree.txt
│       │   │   ├── GenericIterator2.antlrtree.txt
│       │   │   ├── classObject.antlrtree.txt
│       │   │   ├── contextReceivers/
│       │   │   │   ├── ambiguityInGroup.antlrtree.txt
│       │   │   │   ├── conflicting.antlrtree.txt
│       │   │   │   ├── conflictingWithDifferentOrder.antlrtree.txt
│       │   │   │   ├── contextKeywordWithElvis.antlrtree.txt
│       │   │   │   ├── contextReceiverTypeParamsUsage.antlrtree.txt
│       │   │   │   ├── contextReceiverTypeParamsUsageError.antlrtree.txt
│       │   │   │   ├── contextualFunctionalTypeConversion.antlrtree.txt
│       │   │   │   ├── fromKEEP/
│       │   │   │   │   ├── autoCloseScope.antlrtree.txt
│       │   │   │   │   ├── canvas.antlrtree.txt
│       │   │   │   │   ├── clickHandler.antlrtree.txt
│       │   │   │   │   ├── compareTo.antlrtree.txt
│       │   │   │   │   ├── decimateEveryEvenThird.antlrtree.txt
│       │   │   │   │   ├── dp.antlrtree.txt
│       │   │   │   │   ├── functionalType.antlrtree.txt
│       │   │   │   │   ├── iterableClass.antlrtree.txt
│       │   │   │   │   ├── json.antlrtree.txt
│       │   │   │   │   ├── loggingContext.antlrtree.txt
│       │   │   │   │   ├── monoidSum.antlrtree.txt
│       │   │   │   │   ├── transaction.antlrtree.txt
│       │   │   │   │   └── userStorage.antlrtree.txt
│       │   │   │   ├── functionalType.antlrtree.txt
│       │   │   │   ├── genericOuterClass.antlrtree.txt
│       │   │   │   ├── insideDeclaration.antlrtree.txt
│       │   │   │   ├── labelFromFunctionName.antlrtree.txt
│       │   │   │   ├── labelsFromClassNameForbidden.antlrtree.txt
│       │   │   │   ├── lazy.antlrtree.txt
│       │   │   │   ├── manyReceivers.antlrtree.txt
│       │   │   │   ├── noBackingField.antlrtree.txt
│       │   │   │   ├── noContextReceiversOnValueClasses.antlrtree.txt
│       │   │   │   ├── noExplicitReceiver.antlrtree.txt
│       │   │   │   ├── noLabelsByClassName.antlrtree.txt
│       │   │   │   ├── nonConflicting.antlrtree.txt
│       │   │   │   ├── outerClass.antlrtree.txt
│       │   │   │   ├── overloadPriority.antlrtree.txt
│       │   │   │   ├── overloading.antlrtree.txt
│       │   │   │   ├── parameterizedContextualLambda.antlrtree.txt
│       │   │   │   ├── plusMatrix.antlrtree.txt
│       │   │   │   ├── subtypingBetweenContextReceivers.antlrtree.txt
│       │   │   │   ├── superWithContext.antlrtree.txt
│       │   │   │   ├── syntaxError.antlrtree.txt
│       │   │   │   ├── thisIdentifierInfo.antlrtree.txt
│       │   │   │   ├── thisWithCustomLabel.antlrtree.txt
│       │   │   │   ├── thisWithReceiverLabelsClasses.antlrtree.txt
│       │   │   │   ├── thisWithReceiverLabelsFunctions.antlrtree.txt
│       │   │   │   ├── thisWithReceiverLabelsProperties.antlrtree.txt
│       │   │   │   ├── twoReceiverCandidatesError.antlrtree.txt
│       │   │   │   ├── typeParameterAsContextReceiver.antlrtree.txt
│       │   │   │   ├── typeParameterized.antlrtree.txt
│       │   │   │   ├── typeParameterizedList.antlrtree.txt
│       │   │   │   ├── unsupported.antlrtree.txt
│       │   │   │   ├── withExplicitReceiver.antlrtree.txt
│       │   │   │   └── withExplicitReceiverError.antlrtree.txt
│       │   │   ├── extensionMemberInClassObject.antlrtree.txt
│       │   │   ├── extensionPropertyVsParameter.antlrtree.txt
│       │   │   ├── kt1875.antlrtree.txt
│       │   │   ├── kt2317.antlrtree.txt
│       │   │   ├── kt3470.antlrtree.txt
│       │   │   ├── kt3563.antlrtree.txt
│       │   │   ├── kt819ExtensionProperties.antlrtree.txt
│       │   │   ├── noClassObjectsInJava.B.antlrtree.txt
│       │   │   ├── object.antlrtree.txt
│       │   │   ├── throwOutCandidatesByReceiver.antlrtree.txt
│       │   │   ├── throwOutCandidatesByReceiver2.antlrtree.txt
│       │   │   └── variableInvoke.antlrtree.txt
│       │   ├── external/
│       │   │   └── noExternalModifierInheritance.antlrtree.txt
│       │   ├── fieldRename/
│       │   │   ├── derivedClassPropertyShadowsBaseClassField.test.antlrtree.txt
│       │   │   ├── derivedClassPropertyShadowsBaseClassField13.test.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyDifferentType.Main.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyDifferentType2.Main.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaFieldInPackagePrivate.B.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaFieldInPackagePrivate.test.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaPackagePrivateField.B.antlrtree.txt
│       │   │   ├── javaFieldKotlinPropertyJavaPackagePrivateField.test.antlrtree.txt
│       │   │   ├── javaProtectedFieldAndKotlinInvisiblePropertyReference.Base.antlrtree.txt
│       │   │   └── javaProtectedFieldAndKotlinInvisiblePropertyReference.Derived.antlrtree.txt
│       │   ├── fileDependencyRecursion.fileDependencyRecursion.antlrtree.txt
│       │   ├── fileDependencyRecursion.fileDependencyRecursionOther.antlrtree.txt
│       │   ├── finalSupertype.antlrtree.txt
│       │   ├── funInterface/
│       │   │   ├── basicFunInterface.antlrtree.txt
│       │   │   ├── basicFunInterfaceConversion.antlrtree.txt
│       │   │   ├── basicFunInterfaceDisabled.antlrtree.txt
│       │   │   ├── funInterfaceConstructorReferences_after.antlrtree.txt
│       │   │   ├── funInterfaceConstructorReferences_before.antlrtree.txt
│       │   │   ├── funInterfaceConversionOnReceiver.antlrtree.txt
│       │   │   ├── funInterfaceDeclarationCheck.antlrtree.txt
│       │   │   ├── funInterfaceSyntheticConstructors.antlrtree.txt
│       │   │   ├── funIsNotInheritedFromBaseInterface.antlrtree.txt
│       │   │   ├── functionDelegateClashOnJvm.antlrtree.txt
│       │   │   ├── genericSubstitutionForFunInterface.antlrtree.txt
│       │   │   ├── noCompatibilityResolveForFunInterfaces.antlrtree.txt
│       │   │   ├── resolveFunInterfaceWithoutMainMethod.antlrtree.txt
│       │   │   ├── severalConversionsForFunInterface.1.antlrtree.txt
│       │   │   └── suspendFunInterfaceConversion.antlrtree.txt
│       │   ├── funReturnsAny.antlrtree.txt
│       │   ├── functionAsExpression/
│       │   │   ├── AutoLabels.antlrtree.txt
│       │   │   ├── Common.antlrtree.txt
│       │   │   ├── DifficultInferenceForParameter.antlrtree.txt
│       │   │   ├── ForbiddenNonLocalReturn.antlrtree.txt
│       │   │   ├── FunctionType.antlrtree.txt
│       │   │   ├── InferenceParametersTypes.antlrtree.txt
│       │   │   ├── MissingParameterTypes.antlrtree.txt
│       │   │   ├── NameDeprecation.antlrtree.txt
│       │   │   ├── NoOverloadError.antlrtree.txt
│       │   │   ├── Parameters.antlrtree.txt
│       │   │   ├── ReceiverByExpectedType.antlrtree.txt
│       │   │   ├── ReturnAndLabels.antlrtree.txt
│       │   │   ├── ReturnTypeCheck.antlrtree.txt
│       │   │   ├── ScopeCheck.antlrtree.txt
│       │   │   ├── WithGenericParameters.antlrtree.txt
│       │   │   ├── WithOuterGeneric.antlrtree.txt
│       │   │   └── WithoutBody.antlrtree.txt
│       │   ├── functionLiterals/
│       │   │   ├── DeprecatedSyntax.antlrtree.txt
│       │   │   ├── ExpectedParameterTypeMismatchVariance.antlrtree.txt
│       │   │   ├── ExpectedParametersTypesMismatch.antlrtree.txt
│       │   │   ├── LabeledFunctionLiterals.antlrtree.txt
│       │   │   ├── assignmentOperationInLambda.antlrtree.txt
│       │   │   ├── assignmentOperationInLambdaWithExpectedType.antlrtree.txt
│       │   │   ├── destructuringInLambdas/
│       │   │   │   ├── complexInference.antlrtree.txt
│       │   │   │   ├── extensionComponents.antlrtree.txt
│       │   │   │   ├── inferredFunctionalType.antlrtree.txt
│       │   │   │   ├── modifiers.antlrtree.txt
│       │   │   │   ├── noExpectedType.antlrtree.txt
│       │   │   │   ├── redeclaration.antlrtree.txt
│       │   │   │   ├── shadowing.antlrtree.txt
│       │   │   │   ├── simple.antlrtree.txt
│       │   │   │   ├── underscore.antlrtree.txt
│       │   │   │   └── unusedParameters.antlrtree.txt
│       │   │   ├── functionExpressionAsLastExpressionInBlock.antlrtree.txt
│       │   │   ├── functionLIteralInBlockInIf.antlrtree.txt
│       │   │   ├── functionLiteralAsArgumentForFunction.antlrtree.txt
│       │   │   ├── functionLiteralInIf.antlrtree.txt
│       │   │   ├── functionLiteralWithoutArgumentList.antlrtree.txt
│       │   │   ├── genericFunctionalTypeOnRHSOfPlusAssign.antlrtree.txt
│       │   │   ├── higherOrderCallMissingParameters.antlrtree.txt
│       │   │   ├── kt11733.antlrtree.txt
│       │   │   ├── kt11733_1.Main.antlrtree.txt
│       │   │   ├── kt16016.antlrtree.txt
│       │   │   ├── kt2906.antlrtree.txt
│       │   │   ├── kt3343.antlrtree.txt
│       │   │   ├── kt4529.antlrtree.txt
│       │   │   ├── kt47493.antlrtree.txt
│       │   │   ├── kt51317.antlrtree.txt
│       │   │   ├── kt56138.antlrtree.txt
│       │   │   ├── kt6541_extensionForExtensionFunction.antlrtree.txt
│       │   │   ├── kt6869.antlrtree.txt
│       │   │   ├── kt7383_starProjectedFunction.antlrtree.txt
│       │   │   ├── lambdaInLambda2.main.antlrtree.txt
│       │   │   ├── missedTypeMismatch.antlrtree.txt
│       │   │   ├── prematurelyAnalyzingLambdaWhileFixingTypeVariableForAnotherArgument.antlrtree.txt
│       │   │   ├── return/
│       │   │   │   ├── AutoLabels.antlrtree.txt
│       │   │   │   ├── AutoLabelsNonLocal.antlrtree.txt
│       │   │   │   ├── ForbiddenNonLocalReturnNoType.antlrtree.txt
│       │   │   │   ├── IfInReturnedExpression.antlrtree.txt
│       │   │   │   ├── IfWithoutElse.antlrtree.txt
│       │   │   │   ├── IfWithoutElseWithExplicitType.antlrtree.txt
│       │   │   │   ├── LambdaWithParameter.antlrtree.txt
│       │   │   │   ├── LocalAndNonLocalReturnInLambda.antlrtree.txt
│       │   │   │   ├── LocalReturnExplicitLabelNoParens.antlrtree.txt
│       │   │   │   ├── LocalReturnExplicitLabelParens.antlrtree.txt
│       │   │   │   ├── LocalReturnHasTypeNothing.antlrtree.txt
│       │   │   │   ├── LocalReturnInNestedFunction.antlrtree.txt
│       │   │   │   ├── LocalReturnInNestedLambda.antlrtree.txt
│       │   │   │   ├── LocalReturnNoCoercionToUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnNull.antlrtree.txt
│       │   │   │   ├── LocalReturnSecondUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnUnitAndDontCareType.antlrtree.txt
│       │   │   │   ├── LocalReturnUnitWithBodyExpression.antlrtree.txt
│       │   │   │   ├── LocalReturnWithExpectedType.antlrtree.txt
│       │   │   │   ├── LocalReturnWithExplicitUnit.antlrtree.txt
│       │   │   │   ├── LocalReturnsWithExplicitReturnType.antlrtree.txt
│       │   │   │   ├── MixedReturnsFromLambda.antlrtree.txt
│       │   │   │   ├── NoCommonSystem.antlrtree.txt
│       │   │   │   ├── SmartCast.antlrtree.txt
│       │   │   │   ├── SmartCastWithExplicitType.antlrtree.txt
│       │   │   │   └── unresolvedReferenceInReturnBlock.antlrtree.txt
│       │   │   ├── returnNull.antlrtree.txt
│       │   │   ├── returnNullWithReturn.antlrtree.txt
│       │   │   ├── underscopeParameters.antlrtree.txt
│       │   │   ├── unusedLiteral.antlrtree.txt
│       │   │   └── unusedLiteralInsideUnitLiteral.antlrtree.txt
│       │   ├── generics/
│       │   │   ├── InconsistentTypeParameterBounds.antlrtree.txt
│       │   │   ├── Projections.antlrtree.txt
│       │   │   ├── PseudoRawTypes.Kotlin.antlrtree.txt
│       │   │   ├── RawTypeInIsExpression.antlrtree.txt
│       │   │   ├── RawTypeInIsPattern.antlrtree.txt
│       │   │   ├── RecursiveUpperBoundCheck.antlrtree.txt
│       │   │   ├── RecursiveUpperBoundWithTwoArguments.antlrtree.txt
│       │   │   ├── TypeParameterBounds.antlrtree.txt
│       │   │   ├── TypeParametersInTypeParameterBounds.antlrtree.txt
│       │   │   ├── anonymousObjectSupertypeWithTypeParameterFromFunction.antlrtree.txt
│       │   │   ├── approximationOfInProjection.antlrtree.txt
│       │   │   ├── argumentsForT.antlrtree.txt
│       │   │   ├── bareTypesWithStarProjections.antlrtree.txt
│       │   │   ├── capturedParameters/
│       │   │   │   ├── captured.antlrtree.txt
│       │   │   │   ├── innerLocalClass.antlrtree.txt
│       │   │   │   ├── localClass.antlrtree.txt
│       │   │   │   ├── localWithTypeParameter.antlrtree.txt
│       │   │   │   ├── objectLiteral.antlrtree.txt
│       │   │   │   └── uncheckedCast.antlrtree.txt
│       │   │   ├── commonSupertypeContravariant.antlrtree.txt
│       │   │   ├── commonSupertypeContravariant2.antlrtree.txt
│       │   │   ├── cyclicBounds/
│       │   │   │   ├── functions.antlrtree.txt
│       │   │   │   └── inClass.antlrtree.txt
│       │   │   ├── doNotCaptureSupertype.antlrtree.txt
│       │   │   ├── finalUpperBoundWithOverride.antlrtree.txt
│       │   │   ├── finalUpperBoundWithoutOverride.antlrtree.txt
│       │   │   ├── genericsInType.antlrtree.txt
│       │   │   ├── innerClasses/
│       │   │   │   ├── bareTypes.antlrtree.txt
│       │   │   │   ├── bareTypesComplex.antlrtree.txt
│       │   │   │   ├── checkBoundsOuter.antlrtree.txt
│       │   │   │   ├── implicitArguments/
│       │   │   │   │   ├── fromCompanionObject_after.antlrtree.txt
│       │   │   │   │   ├── fromCompanionObject_before.antlrtree.txt
│       │   │   │   │   ├── fromOuterClassInObjectLiteral.antlrtree.txt
│       │   │   │   │   ├── fromSuperClasses.antlrtree.txt
│       │   │   │   │   ├── fromSuperClassesLocal.antlrtree.txt
│       │   │   │   │   ├── fromSuperClassesLocalInsideInner.antlrtree.txt
│       │   │   │   │   ├── fromSuperClassesTransitive.antlrtree.txt
│       │   │   │   │   ├── inStaticScope.antlrtree.txt
│       │   │   │   │   └── secondLevelDepth.antlrtree.txt
│       │   │   │   ├── importedInner.antlrtree.txt
│       │   │   │   ├── innerSuperCall.antlrtree.txt
│       │   │   │   ├── innerSuperCallSecondary.antlrtree.txt
│       │   │   │   ├── innerTP.antlrtree.txt
│       │   │   │   ├── innerUncheckedCast.antlrtree.txt
│       │   │   │   ├── innerVariance.antlrtree.txt
│       │   │   │   ├── iterator.antlrtree.txt
│       │   │   │   ├── j+k.main.antlrtree.txt
│       │   │   │   ├── j+k_complex.main.antlrtree.txt
│       │   │   │   ├── kt3357.antlrtree.txt
│       │   │   │   ├── kt408.antlrtree.txt
│       │   │   │   ├── kt6325.antlrtree.txt
│       │   │   │   ├── noTypeVarianceConflictInNestedClass.antlrtree.txt
│       │   │   │   ├── outerArgumentsRequired.antlrtree.txt
│       │   │   │   ├── parameterShadowing.antlrtree.txt
│       │   │   │   ├── qualifiedOuter.antlrtree.txt
│       │   │   │   ├── qualifiedTypesResolution.main.antlrtree.txt
│       │   │   │   ├── qualifiedTypesResolution.test.antlrtree.txt
│       │   │   │   ├── simple.antlrtree.txt
│       │   │   │   ├── simpleIn.antlrtree.txt
│       │   │   │   ├── simpleOut.antlrtree.txt
│       │   │   │   ├── simpleOutUseSite.antlrtree.txt
│       │   │   │   └── substitutedMemberScope.antlrtree.txt
│       │   │   ├── invalidArgumentsNumberInWhere.antlrtree.txt
│       │   │   ├── kt1575-Class.antlrtree.txt
│       │   │   ├── kt1575-Function.antlrtree.txt
│       │   │   ├── kt30590.antlrtree.txt
│       │   │   ├── kt34729.antlrtree.txt
│       │   │   ├── kt53656.antlrtree.txt
│       │   │   ├── kt5508.antlrtree.txt
│       │   │   ├── kt9203.antlrtree.txt
│       │   │   ├── kt9203_1.antlrtree.txt
│       │   │   ├── kt9985.A.antlrtree.txt
│       │   │   ├── localClassTypeRefWithTypeParameterFromFunction.antlrtree.txt
│       │   │   ├── multipleBoundsMemberScope/
│       │   │   │   ├── conflictingReturnType.antlrtree.txt
│       │   │   │   ├── flexibleTypes.main.antlrtree.txt
│       │   │   │   ├── mostSpecific.antlrtree.txt
│       │   │   │   ├── properties.antlrtree.txt
│       │   │   │   ├── propertiesConflict.antlrtree.txt
│       │   │   │   ├── simple.antlrtree.txt
│       │   │   │   └── validTypeParameters.antlrtree.txt
│       │   │   ├── nullability/
│       │   │   │   ├── capturedTypeWithPlatformSupertype.test.antlrtree.txt
│       │   │   │   ├── considerTypeNotNullOnlyIfItHasNotNullBound.antlrtree.txt
│       │   │   │   ├── correctSubstitutionForIncorporationConstraint.test.antlrtree.txt
│       │   │   │   ├── declarationsBoundsViolation.antlrtree.txt
│       │   │   │   ├── expressionsBoundsViolation.antlrtree.txt
│       │   │   │   ├── functionalBound.antlrtree.txt
│       │   │   │   ├── inferNotNullTypeFromIntersectionOfNullableTypes.antlrtree.txt
│       │   │   │   ├── kt25182.antlrtree.txt
│       │   │   │   ├── notNullSmartcastOnIntersectionOfNullables.antlrtree.txt
│       │   │   │   ├── nullToGeneric.antlrtree.txt
│       │   │   │   ├── smartCastRefinedClass.antlrtree.txt
│       │   │   │   ├── smartCasts.antlrtree.txt
│       │   │   │   ├── smartCastsOnThis.antlrtree.txt
│       │   │   │   ├── smartCastsValueArgument.antlrtree.txt
│       │   │   │   ├── tpBoundsViolation.antlrtree.txt
│       │   │   │   ├── tpBoundsViolationVariance.antlrtree.txt
│       │   │   │   ├── tpInBounds.antlrtree.txt
│       │   │   │   ├── useAsReceiver.antlrtree.txt
│       │   │   │   └── useAsValueArgument.antlrtree.txt
│       │   │   ├── nullableTypeParameterScope.antlrtree.txt
│       │   │   ├── outerTypeParametersInNestedClasses.antlrtree.txt
│       │   │   ├── projectionsScope/
│       │   │   │   ├── MLOut.main.antlrtree.txt
│       │   │   │   ├── addAll.antlrtree.txt
│       │   │   │   ├── approximateDispatchReceiver.antlrtree.txt
│       │   │   │   ├── extensionReceiverTypeMismatch.antlrtree.txt
│       │   │   │   ├── extensionResultSubstitution.antlrtree.txt
│       │   │   │   ├── flexibleProjectedScope.main.antlrtree.txt
│       │   │   │   ├── inValueParameter.antlrtree.txt
│       │   │   │   ├── iterateOnExtension.antlrtree.txt
│       │   │   │   ├── kt7296.antlrtree.txt
│       │   │   │   ├── kt8647.antlrtree.txt
│       │   │   │   ├── lambdaArgument.antlrtree.txt
│       │   │   │   ├── leakedApproximatedType.antlrtree.txt
│       │   │   │   ├── multipleArgumentProjectedOut.antlrtree.txt
│       │   │   │   ├── platformSuperClass.main.antlrtree.txt
│       │   │   │   ├── projectedOutConventions.antlrtree.txt
│       │   │   │   ├── projectedOutSmartCast.antlrtree.txt
│       │   │   │   ├── recursiveUpperBoundStar.antlrtree.txt
│       │   │   │   ├── recursiveUpperBoundStarOut.antlrtree.txt
│       │   │   │   ├── starNullability.antlrtree.txt
│       │   │   │   ├── starNullabilityRecursive.antlrtree.txt
│       │   │   │   ├── superClass.antlrtree.txt
│       │   │   │   ├── typeMismatchConventions.antlrtree.txt
│       │   │   │   ├── typeMismatchInLambda.antlrtree.txt
│       │   │   │   ├── typeParameterBounds.antlrtree.txt
│       │   │   │   ├── unsafeVarianceInAliasedFunctionalType.antlrtree.txt
│       │   │   │   ├── unsafeVarianceOnInputTypeOfFunctionalType.antlrtree.txt
│       │   │   │   ├── unsafeVarianceStar.antlrtree.txt
│       │   │   │   ├── unsafeVarianceWithRecursiveGenerics.antlrtree.txt
│       │   │   │   └── varargs.antlrtree.txt
│       │   │   ├── protectedSuperCall.GA.antlrtree.txt
│       │   │   ├── protectedSuperCall.Main.antlrtree.txt
│       │   │   ├── recursive.antlrtree.txt
│       │   │   ├── resolveGenericBoundsBeforeSupertypes.antlrtree.txt
│       │   │   ├── sameTypeParameterUse.antlrtree.txt
│       │   │   ├── starProjections/
│       │   │   │   ├── checkBounds.antlrtree.txt
│       │   │   │   ├── collectionInheritedFromJava.k.antlrtree.txt
│       │   │   │   ├── foldRecursiveTypesToStarProjection.antlrtree.txt
│       │   │   │   ├── inheritedFromJava.k.antlrtree.txt
│       │   │   │   ├── inheritedFromKotlin.antlrtree.txt
│       │   │   │   └── invalid.main.antlrtree.txt
│       │   │   ├── suppressVarianceConflict.antlrtree.txt
│       │   │   ├── tpAsReified/
│       │   │   │   ├── CapturedAsReified.antlrtree.txt
│       │   │   │   ├── ClassDereference.antlrtree.txt
│       │   │   │   ├── Conventions.antlrtree.txt
│       │   │   │   ├── GenericArrayAsReifiedArgument.antlrtree.txt
│       │   │   │   ├── GenericArrayAsReifiedArgumentWarning.antlrtree.txt
│       │   │   │   ├── GenericAsReifiedArgument.antlrtree.txt
│       │   │   │   ├── InConstructor.antlrtree.txt
│       │   │   │   ├── InFunction.antlrtree.txt
│       │   │   │   ├── InProperty.antlrtree.txt
│       │   │   │   ├── InType.antlrtree.txt
│       │   │   │   ├── InlineableReified.antlrtree.txt
│       │   │   │   ├── LocalFun.antlrtree.txt
│       │   │   │   ├── NotInlineableReified.antlrtree.txt
│       │   │   │   └── ReifiedClass.antlrtree.txt
│       │   │   ├── unresolvedClassifierInWhere.antlrtree.txt
│       │   │   ├── varProjection/
│       │   │   │   ├── setterNotProjectedOutAssign.antlrtree.txt
│       │   │   │   ├── setterProjectedOutAssign.test.antlrtree.txt
│       │   │   │   ├── setterProjectedOutNoPlusAssign.antlrtree.txt
│       │   │   │   └── setterProjectedOutPlusAssignDefined.antlrtree.txt
│       │   │   ├── wildcardInValueParameter.main.antlrtree.txt
│       │   │   └── wrongNumberOfTypeArgumentsDiagnostic.antlrtree.txt
│       │   ├── implicitIntersection.antlrtree.txt
│       │   ├── implicitNestedIntersection.antlrtree.txt
│       │   ├── implicitNothing.antlrtree.txt
│       │   ├── imports/
│       │   │   ├── AllUnderImportsAmbiguity.a.antlrtree.txt
│       │   │   ├── AllUnderImportsAmbiguity.b.antlrtree.txt
│       │   │   ├── AllUnderImportsAmbiguity.c.antlrtree.txt
│       │   │   ├── AllUnderImportsLessPriority.a.antlrtree.txt
│       │   │   ├── AllUnderImportsLessPriority.b.antlrtree.txt
│       │   │   ├── AllUnderImportsLessPriority.c.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForFunction.a.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForFunction.b.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForFunction.c.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForProperty.a.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForProperty.b.antlrtree.txt
│       │   │   ├── AllUnderImportsSamePriorityForProperty.c.antlrtree.txt
│       │   │   ├── CheckJavaVisibility.k1.antlrtree.txt
│       │   │   ├── CheckJavaVisibility.k2.antlrtree.txt
│       │   │   ├── CheckJavaVisibility2.j.antlrtree.txt
│       │   │   ├── CheckJavaVisibility2.k.antlrtree.txt
│       │   │   ├── CheckVisibility.k1.antlrtree.txt
│       │   │   ├── CheckVisibility.k2.antlrtree.txt
│       │   │   ├── CheckVisibility.k3.antlrtree.txt
│       │   │   ├── ClassClash.a.antlrtree.txt
│       │   │   ├── ClassClash.b.antlrtree.txt
│       │   │   ├── ClassClash.c.antlrtree.txt
│       │   │   ├── ClassClash.top_a.antlrtree.txt
│       │   │   ├── ClassClash.top_b.antlrtree.txt
│       │   │   ├── ClassClash.top_c.antlrtree.txt
│       │   │   ├── ClassClash.top_d.antlrtree.txt
│       │   │   ├── ClassClashStarImport.a.antlrtree.txt
│       │   │   ├── ClassClashStarImport.b.antlrtree.txt
│       │   │   ├── ClassClashStarImport.top_a.antlrtree.txt
│       │   │   ├── ClassClashStarImport.top_b.antlrtree.txt
│       │   │   ├── ClassClashStarImport.top_c.antlrtree.txt
│       │   │   ├── ClassImportsConflicting.a.antlrtree.txt
│       │   │   ├── ClassImportsConflicting.b.antlrtree.txt
│       │   │   ├── ClassImportsConflicting.c.antlrtree.txt
│       │   │   ├── CurrentPackageAndAllUnderImport.a.antlrtree.txt
│       │   │   ├── CurrentPackageAndAllUnderImport.b.antlrtree.txt
│       │   │   ├── CurrentPackageAndAllUnderImport.b1.antlrtree.txt
│       │   │   ├── CurrentPackageAndExplicitImport.a.antlrtree.txt
│       │   │   ├── CurrentPackageAndExplicitImport.b.antlrtree.txt
│       │   │   ├── CurrentPackageAndExplicitImport.b1.antlrtree.txt
│       │   │   ├── DefaultImportsPriority.antlrtree.txt
│       │   │   ├── DoubleImports.ExplicitImported.antlrtree.txt
│       │   │   ├── DoubleImports.StarImported.antlrtree.txt
│       │   │   ├── DoubleImports.Test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity.test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity2.OtherEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity2.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity2.test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity3.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity3.test.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity4.SomeEnum.antlrtree.txt
│       │   │   ├── EnumEntryVsStaticAmbiguity4.test.antlrtree.txt
│       │   │   ├── ExplicitImportsAmbiguity.a.antlrtree.txt
│       │   │   ├── ExplicitImportsAmbiguity.b.antlrtree.txt
│       │   │   ├── ExplicitImportsAmbiguity.c.antlrtree.txt
│       │   │   ├── ExplicitImportsUnambiguityForFunction.a.antlrtree.txt
│       │   │   ├── ExplicitImportsUnambiguityForFunction.b.antlrtree.txt
│       │   │   ├── ExplicitImportsUnambiguityForFunction.c.antlrtree.txt
│       │   │   ├── ExplicitPackageImportsAmbiguity.a.antlrtree.txt
│       │   │   ├── ExplicitPackageImportsAmbiguity.b.antlrtree.txt
│       │   │   ├── ExplicitPackageImportsAmbiguity.c.antlrtree.txt
│       │   │   ├── ImportClassClash.1.antlrtree.txt
│       │   │   ├── ImportClassClash.2.antlrtree.txt
│       │   │   ├── ImportClassClash.3.antlrtree.txt
│       │   │   ├── ImportClassClash.4.antlrtree.txt
│       │   │   ├── ImportClassClash.5.antlrtree.txt
│       │   │   ├── ImportClassClash.6.antlrtree.txt
│       │   │   ├── ImportClassClash.7.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.a.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.b.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.c.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.d.antlrtree.txt
│       │   │   ├── ImportFromCompanionObject.e.antlrtree.txt
│       │   │   ├── ImportFromCurrentWithDifferentName.antlrtree.txt
│       │   │   ├── ImportFromCurrentWithDifferentNameComplex.antlrtree.txt
│       │   │   ├── ImportFromObject.a.antlrtree.txt
│       │   │   ├── ImportFromObject.b.antlrtree.txt
│       │   │   ├── ImportFromObject.c.antlrtree.txt
│       │   │   ├── ImportFromObject.d.antlrtree.txt
│       │   │   ├── ImportFromObject.e.antlrtree.txt
│       │   │   ├── ImportFromRootPackage.anotherFromRootPackage.antlrtree.txt
│       │   │   ├── ImportFromRootPackage.rootPackage.antlrtree.txt
│       │   │   ├── ImportFromRootPackage.yetAnotherFromRootPackage.antlrtree.txt
│       │   │   ├── ImportFunctionWithPackageName.a.antlrtree.txt
│       │   │   ├── ImportFunctionWithPackageName.b.antlrtree.txt
│       │   │   ├── ImportFunctionWithPackageName.c.antlrtree.txt
│       │   │   ├── ImportHidingDefinitionInTheSameFile.antlrtree.txt
│       │   │   ├── ImportNestedWithDifferentName.antlrtree.txt
│       │   │   ├── ImportObjectAndUseAsSupertype.a.antlrtree.txt
│       │   │   ├── ImportObjectAndUseAsSupertype.b.antlrtree.txt
│       │   │   ├── ImportObjectHidesCurrentPackage.a.antlrtree.txt
│       │   │   ├── ImportObjectHidesCurrentPackage.b.antlrtree.txt
│       │   │   ├── ImportOverloadFunctions.1.antlrtree.txt
│       │   │   ├── ImportOverloadFunctions.2.antlrtree.txt
│       │   │   ├── ImportPrivateMember.antlrtree.txt
│       │   │   ├── ImportPrivateMemberFromOtherFile.A.antlrtree.txt
│       │   │   ├── ImportPrivateMemberFromOtherFile.C.antlrtree.txt
│       │   │   ├── ImportPrivateMembersWithStar.antlrtree.txt
│       │   │   ├── ImportProtectedClass.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.a.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.b.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.c.antlrtree.txt
│       │   │   ├── ImportResolutionOrder.d.antlrtree.txt
│       │   │   ├── ImportStaticFunctionWithNonStaticSibling.test.antlrtree.txt
│       │   │   ├── ImportTwoTimes.a.antlrtree.txt
│       │   │   ├── ImportTwoTimes.b.antlrtree.txt
│       │   │   ├── ImportTwoTimesStar.a.antlrtree.txt
│       │   │   ├── ImportTwoTimesStar.b.antlrtree.txt
│       │   │   ├── Imports.a.antlrtree.txt
│       │   │   ├── Imports.b.antlrtree.txt
│       │   │   ├── Imports.c.antlrtree.txt
│       │   │   ├── Imports.d.antlrtree.txt
│       │   │   ├── ImportsConflicting.a.antlrtree.txt
│       │   │   ├── ImportsConflicting.b.antlrtree.txt
│       │   │   ├── ImportsConflicting.c.antlrtree.txt
│       │   │   ├── InaccessiblePrivateClass.a.antlrtree.txt
│       │   │   ├── InaccessiblePrivateClass.b.antlrtree.txt
│       │   │   ├── InaccessiblePrivateClass.c.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f11.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f12.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f21.antlrtree.txt
│       │   │   ├── InaccessiblePrivateInFile.f22.antlrtree.txt
│       │   │   ├── JavaPackageLocalClassNotImported.File.antlrtree.txt
│       │   │   ├── JavaPackageLocalClassNotImported.Main.antlrtree.txt
│       │   │   ├── MalformedImports.antlrtree.txt
│       │   │   ├── NestedClassClash.a.antlrtree.txt
│       │   │   ├── NestedClassClash.b.antlrtree.txt
│       │   │   ├── NestedClassClash.c.antlrtree.txt
│       │   │   ├── NestedClassClash.d.antlrtree.txt
│       │   │   ├── OperatorRenameOnImport.a.antlrtree.txt
│       │   │   ├── OperatorRenameOnImport.b.antlrtree.txt
│       │   │   ├── OptionalAnnotationClasses.antlrtree.txt
│       │   │   ├── PackageLocalClassNotImported.File1.antlrtree.txt
│       │   │   ├── PackageLocalClassNotImported.File2.antlrtree.txt
│       │   │   ├── PackageLocalClassNotImported.Main.antlrtree.txt
│       │   │   ├── PackageLocalClassReferencedError.File1.antlrtree.txt
│       │   │   ├── PackageLocalClassReferencedError.Main.antlrtree.txt
│       │   │   ├── PackageVsClass.a.antlrtree.txt
│       │   │   ├── PackageVsClass.b.antlrtree.txt
│       │   │   ├── PackageVsClass.c.antlrtree.txt
│       │   │   ├── PackageVsClass.d.antlrtree.txt
│       │   │   ├── PrivateClassNotImported.File1.antlrtree.txt
│       │   │   ├── PrivateClassNotImported.File2.antlrtree.txt
│       │   │   ├── PrivateClassNotImported.Main.antlrtree.txt
│       │   │   ├── PrivateClassReferencedError.File1.antlrtree.txt
│       │   │   ├── PrivateClassReferencedError.Main.antlrtree.txt
│       │   │   ├── RenameOnImport.a.antlrtree.txt
│       │   │   ├── RenameOnImport.b.antlrtree.txt
│       │   │   ├── RenameOnImport.c.antlrtree.txt
│       │   │   ├── StarImportFromObject.antlrtree.txt
│       │   │   ├── SyntaxError.a.antlrtree.txt
│       │   │   ├── SyntaxError.b.antlrtree.txt
│       │   │   ├── SyntaxError.c.antlrtree.txt
│       │   │   ├── SyntaxError.d.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.a.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.b.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.c.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.d.antlrtree.txt
│       │   │   ├── TopLevelClassVsPackage.e.antlrtree.txt
│       │   │   ├── WrongImport.a.antlrtree.txt
│       │   │   ├── WrongImport.b.antlrtree.txt
│       │   │   ├── WrongImport.c.antlrtree.txt
│       │   │   ├── brokenImport.Klass.antlrtree.txt
│       │   │   ├── brokenImport.test.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImport.importFunctionWithAllUnderImport.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImport.importFunctionWithAllUnderImportOther.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImportAfterNamedImport.mainFile.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImportAfterNamedImport.testing.antlrtree.txt
│       │   │   ├── importFunctionWithAllUnderImportAfterNamedImport.testingOther.antlrtree.txt
│       │   │   ├── invisibleFakeReferenceInImport.A.antlrtree.txt
│       │   │   ├── invisibleFakeReferenceInImport.B.antlrtree.txt
│       │   │   ├── invisibleFakeReferenceInImport.C.antlrtree.txt
│       │   │   ├── kt13112.1.antlrtree.txt
│       │   │   ├── kt13112.2.antlrtree.txt
│       │   │   ├── kt13112.3.antlrtree.txt
│       │   │   ├── propertyClassFileDependencyRecursion.propertyClassFileDependencyRecursion.antlrtree.txt
│       │   │   ├── propertyClassFileDependencyRecursion.propertyClassFileDependencyRecursionOther.antlrtree.txt
│       │   │   ├── renamedImportInDifferentFile.first.antlrtree.txt
│       │   │   ├── renamedImportInDifferentFile.main.antlrtree.txt
│       │   │   ├── twoImportLists.a.antlrtree.txt
│       │   │   ├── twoImportLists.b.antlrtree.txt
│       │   │   ├── twoImportLists.c.antlrtree.txt
│       │   │   └── twoImportLists.d.antlrtree.txt
│       │   ├── incompleteCode/
│       │   │   ├── NoSenselessComparisonForErrorType.antlrtree.txt
│       │   │   ├── SupertypeOfErrorType.antlrtree.txt
│       │   │   ├── arrayBracketsRange.antlrtree.txt
│       │   │   ├── checkNothingIsSubtype.antlrtree.txt
│       │   │   ├── controlStructuresErrors.antlrtree.txt
│       │   │   ├── diagnosticWithSyntaxError/
│       │   │   │   ├── arrayExpression.antlrtree.txt
│       │   │   │   ├── checkBackingFieldException.antlrtree.txt
│       │   │   │   ├── completeFunctionArgumentsOfNestedCalls.antlrtree.txt
│       │   │   │   ├── declarationAfterDotSelectorExpected.antlrtree.txt
│       │   │   │   ├── declarationAfterIncompleteElvis.antlrtree.txt
│       │   │   │   ├── funEquals.antlrtree.txt
│       │   │   │   ├── funKeyword.antlrtree.txt
│       │   │   │   ├── funcitonTypes.antlrtree.txt
│       │   │   │   ├── incompleteEnumReference.antlrtree.txt
│       │   │   │   ├── incompleteVal.antlrtree.txt
│       │   │   │   ├── incompleteValWithAccessor.antlrtree.txt
│       │   │   │   ├── incompleteWhen.antlrtree.txt
│       │   │   │   ├── namedFun.antlrtree.txt
│       │   │   │   ├── noTypeParamsInReturnType.antlrtree.txt
│       │   │   │   ├── typeReferenceError.antlrtree.txt
│       │   │   │   ├── valNoName.antlrtree.txt
│       │   │   │   ├── valWithNoNameBeforeNextDeclarationWithModifiers.antlrtree.txt
│       │   │   │   └── valWithNoNameInBlock.antlrtree.txt
│       │   │   ├── illegalSelectorCallableReference.antlrtree.txt
│       │   │   ├── inExpr.antlrtree.txt
│       │   │   ├── incompleteAssignment.antlrtree.txt
│       │   │   ├── incompleteEquals.antlrtree.txt
│       │   │   ├── incompleteTryCatchBlock.antlrtree.txt
│       │   │   ├── kt1955.antlrtree.txt
│       │   │   ├── kt2014.antlrtree.txt
│       │   │   ├── kt4866UnresolvedArrayAccess.antlrtree.txt
│       │   │   ├── kt59041.antlrtree.txt
│       │   │   ├── plusOnTheRight.antlrtree.txt
│       │   │   ├── pseudocodeTraverseNextInstructions.antlrtree.txt
│       │   │   ├── senselessComparisonWithNull.antlrtree.txt
│       │   │   ├── typeParameterOnLhsOfDot.antlrtree.txt
│       │   │   ├── unresolvedArguments.antlrtree.txt
│       │   │   ├── unresolvedOperation.antlrtree.txt
│       │   │   ├── unresolvedTypeWithTypeArguments.antlrtree.txt
│       │   │   └── variableDeclarationInSelector.antlrtree.txt
│       │   ├── incrementDecrementOnFullyQualified.antlrtree.txt
│       │   ├── incrementDecrementOnObject.antlrtree.txt
│       │   ├── inference/
│       │   │   ├── NoInferenceFromDeclaredBounds.antlrtree.txt
│       │   │   ├── annotatedUnderscoredTypeArgument.antlrtree.txt
│       │   │   ├── builderInference/
│       │   │   │   ├── changingResolveIfDontUseBuilderInference.antlrtree.txt
│       │   │   │   ├── constraints/
│       │   │   │   │   └── violating.antlrtree.txt
│       │   │   │   ├── equalityChecksOnIntegerTypes.antlrtree.txt
│       │   │   │   ├── equalityChecksOnIntegerTypesProgressive.antlrtree.txt
│       │   │   │   ├── errorOnStubReceiver.antlrtree.txt
│       │   │   │   ├── incompleteCallInReturnArgumentsWithProperExpectType.antlrtree.txt
│       │   │   │   ├── invalidateKeys.antlrtree.txt
│       │   │   │   ├── kt47744.antlrtree.txt
│       │   │   │   ├── kt47986Default.antlrtree.txt
│       │   │   │   ├── kt47986Disabled.antlrtree.txt
│       │   │   │   ├── kt47986Enabled.antlrtree.txt
│       │   │   │   ├── kt47986_2.antlrtree.txt
│       │   │   │   ├── kt47986_3.antlrtree.txt
│       │   │   │   ├── kt47986_4.antlrtree.txt
│       │   │   │   ├── kt48031.antlrtree.txt
│       │   │   │   ├── kt49285.antlrtree.txt
│       │   │   │   ├── kt49828.antlrtree.txt
│       │   │   │   ├── kt49829.antlrtree.txt
│       │   │   │   ├── kt50498.antlrtree.txt
│       │   │   │   ├── kt50989.antlrtree.txt
│       │   │   │   ├── kt51148.antlrtree.txt
│       │   │   │   ├── kt51464.antlrtree.txt
│       │   │   │   ├── kt53422.antlrtree.txt
│       │   │   │   ├── kt53639.antlrtree.txt
│       │   │   │   ├── labaledCall.main.antlrtree.txt
│       │   │   │   ├── multiLambdaRestriction.antlrtree.txt
│       │   │   │   ├── multiLambdaRestrictionDisabled.antlrtree.txt
│       │   │   │   ├── noBuilderInferenceRestrictionReceiverInconsistency.antlrtree.txt
│       │   │   │   ├── propertySubstitution.antlrtree.txt
│       │   │   │   ├── simpleLambdaInCallWithAnotherLambdaWithBuilderInference.antlrtree.txt
│       │   │   │   ├── skipedUnresolvedInBuilderInferenceWithStubReceiverType.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferences.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesDontCareTypeInBlockExression.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesDontRewriteAtSlice.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesErrorType.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesErrorTypeUnrestricted.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesNonStrictOnlyInputTypes.antlrtree.txt
│       │   │   │   ├── specialCallsWithCallableReferencesUnrestricted.antlrtree.txt
│       │   │   │   ├── specialCallsWithLambdas.antlrtree.txt
│       │   │   │   ├── stubTypes/
│       │   │   │   │   ├── capturedTypes.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperType.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeContravariant.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeCovariant.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeInvariant.main.antlrtree.txt
│       │   │   │   │   ├── commonSuperTypeNullable.main.antlrtree.txt
│       │   │   │   │   ├── intersect.main.antlrtree.txt
│       │   │   │   │   ├── memberScope.main.antlrtree.txt
│       │   │   │   │   ├── nullability.main.antlrtree.txt
│       │   │   │   │   ├── renderingStubTypes.antlrtree.txt
│       │   │   │   │   ├── stubTypeReceiverRestriction.antlrtree.txt
│       │   │   │   │   └── stubTypeReceiverRestrictionDisabled.antlrtree.txt
│       │   │   │   └── withoutAnnotationDisabledFeature.antlrtree.txt
│       │   │   ├── callableReferences/
│       │   │   │   ├── conversionLastStatementInLambda.antlrtree.txt
│       │   │   │   ├── kt55931.antlrtree.txt
│       │   │   │   └── kt56227.antlrtree.txt
│       │   │   ├── cannotCompleteResolveAmbiguity.antlrtree.txt
│       │   │   ├── cannotCompleteResolveFunctionLiteralsNoUse.antlrtree.txt
│       │   │   ├── cannotCompleteResolveNoInfoForParameter.antlrtree.txt
│       │   │   ├── cannotCompleteResolveNoneApplicable.antlrtree.txt
│       │   │   ├── cannotCompleteResolveWithFunctionLiterals.antlrtree.txt
│       │   │   ├── capturedInProjectedFlexibleType.main.antlrtree.txt
│       │   │   ├── capturedTypes/
│       │   │   │   ├── approximateBeforeFixation.antlrtree.txt
│       │   │   │   ├── approximateContravariantCapturedTypes.antlrtree.txt
│       │   │   │   ├── approximationLeavesNonTrivialLowerBound.antlrtree.txt
│       │   │   │   ├── avoidCreatingUselessCapturedTypes.antlrtree.txt
│       │   │   │   ├── cannotCaptureInProjection.antlrtree.txt
│       │   │   │   ├── captureForNullableTypes.antlrtree.txt
│       │   │   │   ├── captureForPlatformTypes.b.antlrtree.txt
│       │   │   │   ├── captureFromNullableTypeInScope.antlrtree.txt
│       │   │   │   ├── captureFromNullableTypeInScopeAny.antlrtree.txt
│       │   │   │   ├── captureFromNullableTypeVariable.antlrtree.txt
│       │   │   │   ├── captureFromSubtyping.antlrtree.txt
│       │   │   │   ├── captureFromTypeParameterUpperBound.antlrtree.txt
│       │   │   │   ├── captureTypeOnlyOnTopLevel.antlrtree.txt
│       │   │   │   ├── capturedFlexibleIntersectionTypesWithDifferentBounds.main.antlrtree.txt
│       │   │   │   ├── capturedFlexibleIntersectionTypesWithDifferentConstructors.main.antlrtree.txt
│       │   │   │   ├── capturedType.antlrtree.txt
│       │   │   │   ├── capturedTypeAndApproximation.antlrtree.txt
│       │   │   │   ├── capturedTypeSubstitutedIntoOppositeProjection.antlrtree.txt
│       │   │   │   ├── capturedTypeWithInnerTypealias.antlrtree.txt
│       │   │   │   ├── capturedTypeWithTypeVariableSubtyping.antlrtree.txt
│       │   │   │   ├── capturedTypesSubstitutionIntoAbbreviation.antlrtree.txt
│       │   │   │   ├── capturingFromArgumentOfFlexibleType.main.antlrtree.txt
│       │   │   │   ├── differentCapturedTypes.antlrtree.txt
│       │   │   │   ├── dontCheckNewCapturedTypeSpecificChecksForOldOnes.antlrtree.txt
│       │   │   │   ├── expectedTypeMismatchWithInVariance.antlrtree.txt
│       │   │   │   ├── invokeCallWithCapturedReceiver.antlrtree.txt
│       │   │   │   ├── kt25302.antlrtree.txt
│       │   │   │   ├── kt2570.antlrtree.txt
│       │   │   │   ├── kt2872.antlrtree.txt
│       │   │   │   ├── kt46727.main.antlrtree.txt
│       │   │   │   ├── kt46727Warnings.main.antlrtree.txt
│       │   │   │   ├── kt49101.antlrtree.txt
│       │   │   │   ├── kt52782.main.antlrtree.txt
│       │   │   │   ├── memberScopeOfCaptured.antlrtree.txt
│       │   │   │   ├── noCaptureTypeErrorForNonTopLevel.antlrtree.txt
│       │   │   │   ├── notApproximateWhenCopyDescriptors.antlrtree.txt
│       │   │   │   ├── nullableCaptruredTypeAgainstNullableVariable.main.antlrtree.txt
│       │   │   │   ├── nullableCaptruredTypeAgainstNullableVariableWithDisabledComplatibilityFlag.main.antlrtree.txt
│       │   │   │   ├── overApproximationForInCaptured.antlrtree.txt
│       │   │   │   ├── overApproximationForOutCaptured.antlrtree.txt
│       │   │   │   ├── propagateNullailityOnSupertypesWhenCaptureTypes.antlrtree.txt
│       │   │   │   ├── starProjectionRegression.antlrtree.txt
│       │   │   │   ├── substituteCapturedTypesWithTypeVariables.antlrtree.txt
│       │   │   │   └── topLevelCapturingInsideReturnType.antlrtree.txt
│       │   │   ├── capturedTypesInSelfType.antlrtree.txt
│       │   │   ├── coerceFunctionLiteralToSuspend.antlrtree.txt
│       │   │   ├── coercionToUnit/
│       │   │   │   ├── afterBareReturn.antlrtree.txt
│       │   │   │   ├── coercionToUnitForIfAsLastExpressionInLambda.antlrtree.txt
│       │   │   │   ├── coercionToUnitForLastLambdaInLambda.antlrtree.txt
│       │   │   │   ├── coercionToUnitReference.antlrtree.txt
│       │   │   │   ├── coercionToUnitWithNothingType.test.antlrtree.txt
│       │   │   │   ├── coercionWithExpectedType.antlrtree.txt
│       │   │   │   ├── coercionWithExpectedTypeAndBound.antlrtree.txt
│       │   │   │   ├── coercionWithExplicitTypeArgument.antlrtree.txt
│       │   │   │   ├── coercionWithoutExpectedType.antlrtree.txt
│       │   │   │   ├── coerctionToUnitForATypeWithUpperBound.antlrtree.txt
│       │   │   │   ├── coersionWithAnonymousFunctionsAndUnresolved.antlrtree.txt
│       │   │   │   ├── indirectCoercionWithExpectedType.antlrtree.txt
│       │   │   │   ├── kt30242.antlrtree.txt
│       │   │   │   ├── lambdaWithNullableUnitInElvis.antlrtree.txt
│       │   │   │   ├── nestedLambda.antlrtree.txt
│       │   │   │   ├── noCoercion.antlrtree.txt
│       │   │   │   └── nonPropagationOfCoercionToUnitInsideNestedLambda.antlrtree.txt
│       │   │   ├── commonSuperTypeOfErrorTypes.antlrtree.txt
│       │   │   ├── commonSuperTypeOfTypesWithErrorSupertypes.antlrtree.txt
│       │   │   ├── commonSystem/
│       │   │   │   ├── boundOnNullableVariable.antlrtree.txt
│       │   │   │   ├── castToSubtype.antlrtree.txt
│       │   │   │   ├── cstFromNullableChildAndNonParameterizedType.antlrtree.txt
│       │   │   │   ├── cstWithTypeContainingNonFixedVariable.antlrtree.txt
│       │   │   │   ├── dontCaptureTypeVariable.antlrtree.txt
│       │   │   │   ├── exactOnElvis.antlrtree.txt
│       │   │   │   ├── fixVariablesInRightOrder.antlrtree.txt
│       │   │   │   ├── genericCandidateInGenericClass.antlrtree.txt
│       │   │   │   ├── iltInsideSeveralCalls.antlrtree.txt
│       │   │   │   ├── inferenceWithUpperBoundsInLambda.antlrtree.txt
│       │   │   │   ├── kt30300.antlrtree.txt
│       │   │   │   ├── kt31969.antlrtree.txt
│       │   │   │   ├── kt32818.antlrtree.txt
│       │   │   │   ├── kt33197.antlrtree.txt
│       │   │   │   ├── kt3372toCollection.antlrtree.txt
│       │   │   │   ├── lessSpecificTypeForArgumentCallWithExactAnnotation.antlrtree.txt
│       │   │   │   ├── lessSpecificTypeForArgumentCallWithExactAnnotation_ni.antlrtree.txt
│       │   │   │   ├── manyArgumentsForVararg.antlrtree.txt
│       │   │   │   ├── nestedLambdas.antlrtree.txt
│       │   │   │   ├── nonFixedVariableFromBothBranches.test.antlrtree.txt
│       │   │   │   ├── nonFixedVariableInsideFlexibleType.test.antlrtree.txt
│       │   │   │   ├── outProjectedTypeToOutProjected.antlrtree.txt
│       │   │   │   ├── postponedCompletionWithExactAnnotation.antlrtree.txt
│       │   │   │   ├── postponedCompletionWithExactAnnotation_ni.antlrtree.txt
│       │   │   │   ├── selectFromTwoIncompatibleTypes.antlrtree.txt
│       │   │   │   ├── selectIntegerValueTypeFromIf.antlrtree.txt
│       │   │   │   └── theSameFunctionInArgs.antlrtree.txt
│       │   │   ├── completeInferenceIfManyFailed.antlrtree.txt
│       │   │   ├── completion/
│       │   │   │   ├── anonymousFunction.antlrtree.txt
│       │   │   │   ├── basic.antlrtree.txt
│       │   │   │   ├── definitelyNotNullType.antlrtree.txt
│       │   │   │   ├── equalityConstraintUpstairs.antlrtree.txt
│       │   │   │   ├── errorAfterCompletion.antlrtree.txt
│       │   │   │   ├── flexibleType.Test.antlrtree.txt
│       │   │   │   ├── inferLabeledElementTypeForLambdaInReturnInCatch.antlrtree.txt
│       │   │   │   ├── intersectionType.antlrtree.txt
│       │   │   │   ├── kt33166.test.antlrtree.txt
│       │   │   │   ├── kt36233.antlrtree.txt
│       │   │   │   ├── lambdaWithVariableAndNothing.antlrtree.txt
│       │   │   │   ├── nestedVariance.antlrtree.txt
│       │   │   │   ├── nothingFromNestedCall.antlrtree.txt
│       │   │   │   ├── partialForIlt.antlrtree.txt
│       │   │   │   ├── partialForIltWithNothing.antlrtree.txt
│       │   │   │   ├── postponedArgumentsAnalysis/
│       │   │   │   │   ├── basic.antlrtree.txt
│       │   │   │   │   ├── callableReferenceLambdaCombinationInsideCall.antlrtree.txt
│       │   │   │   │   ├── callableReferences.antlrtree.txt
│       │   │   │   │   ├── fixingVariableDuringAddingConstraintForFirstPosponedArgument.antlrtree.txt
│       │   │   │   │   ├── lackOfDeepIncorporation.antlrtree.txt
│       │   │   │   │   ├── lambdasInTryCatch.antlrtree.txt
│       │   │   │   │   ├── notInferableParameterOfAnonymousFunction.antlrtree.txt
│       │   │   │   │   ├── takingExtensibilityFromDeclarationOfAnonymousFunction.antlrtree.txt
│       │   │   │   │   ├── wrongVariableFixationOrder.antlrtree.txt
│       │   │   │   │   └── wrongVariableFixationOrder2.antlrtree.txt
│       │   │   │   ├── transitiveConstraint.antlrtree.txt
│       │   │   │   └── withExact.antlrtree.txt
│       │   │   ├── completionOfMultipleLambdas.antlrtree.txt
│       │   │   ├── conflictingSubstitutions.antlrtree.txt
│       │   │   ├── constraints/
│       │   │   │   ├── approximationWithDefNotNullInInvPositionDuringInference.antlrtree.txt
│       │   │   │   ├── complexDependencyWihtoutProperConstraints.antlrtree.txt
│       │   │   │   ├── constraintFromVariantTypeWithNestedProjection.antlrtree.txt
│       │   │   │   ├── constraintOnFunctionLiteral.antlrtree.txt
│       │   │   │   ├── definitelyNotNullTypeInArguments.antlrtree.txt
│       │   │   │   ├── definitelyNotNullTypeInReturnPosition.antlrtree.txt
│       │   │   │   ├── definitelyNotNullTypeInvariantPosition.antlrtree.txt
│       │   │   │   ├── earlyCompletionForCalls.antlrtree.txt
│       │   │   │   ├── equalityConstraintOnNullableType.antlrtree.txt
│       │   │   │   ├── errorUpperBoundConstraint.test.antlrtree.txt
│       │   │   │   ├── fixTypeVariableWithNothingConstraintEarlierThanComplexVariable.antlrtree.txt
│       │   │   │   ├── ignoreConstraintFromImplicitInNothing.antlrtree.txt
│       │   │   │   ├── inferTypeFromCapturedStarProjection.antlrtree.txt
│       │   │   │   ├── kt6320.antlrtree.txt
│       │   │   │   ├── kt7351ConstraintFromUnitExpectedType.antlrtree.txt
│       │   │   │   ├── kt7433.antlrtree.txt
│       │   │   │   ├── kt8879.antlrtree.txt
│       │   │   │   ├── manyConstraintsDueToFlexibleRawTypes.test.antlrtree.txt
│       │   │   │   ├── manyConstraintsDueToRecursiveFlexibleTypesWithWildcards.test.antlrtree.txt
│       │   │   │   ├── notNullConstraintOnNullableType.antlrtree.txt
│       │   │   │   ├── operationsOnIntegerValueTypes.antlrtree.txt
│       │   │   │   ├── recursiveJavaTypeWithStarProjection.test.antlrtree.txt
│       │   │   │   ├── remainConstraintContainingTypeWithoutProjection.main.antlrtree.txt
│       │   │   │   ├── returnLambdaFromLambda.antlrtree.txt
│       │   │   │   ├── subtypeConstraintOnNullableType.antlrtree.txt
│       │   │   │   ├── supertypeConstraintOnNullableType.antlrtree.txt
│       │   │   │   └── wrongApproximationWithDefNotNullTypesAndDelegates.antlrtree.txt
│       │   │   ├── cstFromErrorAndNonErrorTypes.antlrtree.txt
│       │   │   ├── dependOnExpectedType.antlrtree.txt
│       │   │   ├── dependantOnVariance.antlrtree.txt
│       │   │   ├── dependantOnVarianceNullable.antlrtree.txt
│       │   │   ├── discardInapplicableCandidateWithNotSatisfyingSelfType.antlrtree.txt
│       │   │   ├── dontThrowEmptyIntersectionException.main.antlrtree.txt
│       │   │   ├── elvisInsideWhen.antlrtree.txt
│       │   │   ├── emptyIntersectionTypes/
│       │   │   │   ├── compatibilityResolveWhenVariableHasComplexIntersectionType.antlrtree.txt
│       │   │   │   ├── contravariance.antlrtree.txt
│       │   │   │   ├── covariance.antlrtree.txt
│       │   │   │   ├── emptyIntersectionOnIf.antlrtree.txt
│       │   │   │   ├── kt45461.antlrtree.txt
│       │   │   │   ├── kt45461_10.antlrtree.txt
│       │   │   │   ├── kt45461_11.antlrtree.txt
│       │   │   │   ├── kt45461_12.antlrtree.txt
│       │   │   │   ├── kt45461_13.antlrtree.txt
│       │   │   │   ├── kt45461_14.antlrtree.txt
│       │   │   │   ├── kt45461_15.antlrtree.txt
│       │   │   │   ├── kt45461_16.antlrtree.txt
│       │   │   │   ├── kt45461_17.antlrtree.txt
│       │   │   │   ├── kt45461_18.antlrtree.txt
│       │   │   │   ├── kt45461_19.antlrtree.txt
│       │   │   │   ├── kt45461_2.antlrtree.txt
│       │   │   │   ├── kt45461_20.antlrtree.txt
│       │   │   │   ├── kt45461_21.antlrtree.txt
│       │   │   │   ├── kt45461_22.antlrtree.txt
│       │   │   │   ├── kt45461_23.antlrtree.txt
│       │   │   │   ├── kt45461_24.antlrtree.txt
│       │   │   │   ├── kt45461_25.antlrtree.txt
│       │   │   │   ├── kt45461_26.antlrtree.txt
│       │   │   │   ├── kt45461_27.antlrtree.txt
│       │   │   │   ├── kt45461_28.antlrtree.txt
│       │   │   │   ├── kt45461_29.antlrtree.txt
│       │   │   │   ├── kt45461_3.antlrtree.txt
│       │   │   │   ├── kt45461_30.antlrtree.txt
│       │   │   │   ├── kt45461_31.antlrtree.txt
│       │   │   │   ├── kt45461_32.antlrtree.txt
│       │   │   │   ├── kt45461_33.antlrtree.txt
│       │   │   │   ├── kt45461_34.antlrtree.txt
│       │   │   │   ├── kt45461_35.antlrtree.txt
│       │   │   │   ├── kt45461_35_Enabled.antlrtree.txt
│       │   │   │   ├── kt45461_4.antlrtree.txt
│       │   │   │   ├── kt45461_5.antlrtree.txt
│       │   │   │   ├── kt45461_6.antlrtree.txt
│       │   │   │   ├── kt45461_7.antlrtree.txt
│       │   │   │   ├── kt45461_8.antlrtree.txt
│       │   │   │   ├── kt45461_9.antlrtree.txt
│       │   │   │   ├── kt48765.antlrtree.txt
│       │   │   │   ├── kt48935.antlrtree.txt
│       │   │   │   ├── kt48935_2.antlrtree.txt
│       │   │   │   ├── kt48935_3.antlrtree.txt
│       │   │   │   ├── kt48935_4.antlrtree.txt
│       │   │   │   ├── kt48935_5.antlrtree.txt
│       │   │   │   ├── kt48935_6.antlrtree.txt
│       │   │   │   ├── kt48987.antlrtree.txt
│       │   │   │   ├── kt49661.antlrtree.txt
│       │   │   │   ├── kt51016.antlrtree.txt
│       │   │   │   ├── kt52364.antlrtree.txt
│       │   │   │   ├── kt52393.antlrtree.txt
│       │   │   │   ├── kt52431.antlrtree.txt
│       │   │   │   ├── kt54411.antlrtree.txt
│       │   │   │   ├── nullableEmptyIntersection.antlrtree.txt
│       │   │   │   ├── recursiveTypeParameters.antlrtree.txt
│       │   │   │   ├── selectFromCovariantAndContravariantTypes.antlrtree.txt
│       │   │   │   ├── substitutingSuperTypes.antlrtree.txt
│       │   │   │   └── substitutingSuperTypes2.antlrtree.txt
│       │   │   ├── equalitySubstitutionInsideNonInvariantType.antlrtree.txt
│       │   │   ├── errorsOnImplicitInvokeInSimpleCall.antlrtree.txt
│       │   │   ├── exclExclInference.antlrtree.txt
│       │   │   ├── expectedTypeAdditionalTest.antlrtree.txt
│       │   │   ├── expectedTypeDoubleReceiver.antlrtree.txt
│       │   │   ├── expectedTypeFromCast.antlrtree.txt
│       │   │   ├── expectedTypeFromCastComplexExpression.antlrtree.txt
│       │   │   ├── expectedTypeFromCastParenthesized.antlrtree.txt
│       │   │   ├── expectedTypeWithGenerics.antlrtree.txt
│       │   │   ├── expectedTypeWithGenericsSafeCalls.antlrtree.txt
│       │   │   ├── extensionLambdasAndArrow.antlrtree.txt
│       │   │   ├── findViewById.1.antlrtree.txt
│       │   │   ├── fixVariableToNothing.antlrtree.txt
│       │   │   ├── fixationOrderForProperConstraints.antlrtree.txt
│       │   │   ├── flexibleTypesAsUpperBound.1.antlrtree.txt
│       │   │   ├── forks/
│       │   │   │   ├── nestedCallVariableFixation.main.antlrtree.txt
│       │   │   │   ├── nestedCallVariableFixationSimple.antlrtree.txt
│       │   │   │   └── overloadResolutionByLambdaReturnTypeAndExpectedType.antlrtree.txt
│       │   │   ├── functionPlaceholderError.antlrtree.txt
│       │   │   ├── genericAssignmentOperator.antlrtree.txt
│       │   │   ├── genericCallInThrow.antlrtree.txt
│       │   │   ├── hasErrorInConstrainingTypes.antlrtree.txt
│       │   │   ├── ifWithDependentBranches.antlrtree.txt
│       │   │   ├── illegalUnderscoredTypeArgument.antlrtree.txt
│       │   │   ├── immutableArrayList.k.antlrtree.txt
│       │   │   ├── implicitInvokeExtensionWithFunctionalArgument.antlrtree.txt
│       │   │   ├── implicitInvokeInCompanionObjectWithFunctionalArgument.antlrtree.txt
│       │   │   ├── implicitInvokeInObjectWithFunctionalArgument.antlrtree.txt
│       │   │   ├── implicitInvokeWithFunctionLiteralArgument.antlrtree.txt
│       │   │   ├── inferInFunctionLiterals.antlrtree.txt
│       │   │   ├── inferInFunctionLiteralsWithReturn.antlrtree.txt
│       │   │   ├── inferenceForkRegression.antlrtree.txt
│       │   │   ├── inferenceForkRegressionSimple.antlrtree.txt
│       │   │   ├── intersectionTypeMultipleBoundsAsReceiver.antlrtree.txt
│       │   │   ├── intersectionTypesWithContravariantTypes.antlrtree.txt
│       │   │   ├── intersectionWithEnum.antlrtree.txt
│       │   │   ├── invokeLambdaAsFunction.antlrtree.txt
│       │   │   ├── knownTypeParameters.antlrtree.txt
│       │   │   ├── kt11963.antlrtree.txt
│       │   │   ├── kt12399.antlrtree.txt
│       │   │   ├── kt1293.antlrtree.txt
│       │   │   ├── kt28598.antlrtree.txt
│       │   │   ├── kt28654.antlrtree.txt
│       │   │   ├── kt30405.antlrtree.txt
│       │   │   ├── kt3184.antlrtree.txt
│       │   │   ├── kt32196.antlrtree.txt
│       │   │   ├── kt32415.antlrtree.txt
│       │   │   ├── kt32434.main.antlrtree.txt
│       │   │   ├── kt32462.antlrtree.txt
│       │   │   ├── kt33263.antlrtree.txt
│       │   │   ├── kt35702.antlrtree.txt
│       │   │   ├── kt36044.antlrtree.txt
│       │   │   ├── kt36819.antlrtree.txt
│       │   │   ├── kt37853.antlrtree.txt
│       │   │   ├── kt39220.antlrtree.txt
│       │   │   ├── kt40396.antlrtree.txt
│       │   │   ├── kt46515.antlrtree.txt
│       │   │   ├── kt47316.main.antlrtree.txt
│       │   │   ├── kt49658.antlrtree.txt
│       │   │   ├── kt49658Strict.antlrtree.txt
│       │   │   ├── kt49961.antlrtree.txt
│       │   │   ├── kt50232a.antlrtree.txt
│       │   │   ├── kt53124.exp_main.antlrtree.txt
│       │   │   ├── kt6175.antlrtree.txt
│       │   │   ├── kt619.antlrtree.txt
│       │   │   ├── lambdaArgumentWithLabel.antlrtree.txt
│       │   │   ├── lambdaInValInitializerWithAnonymousFunctions.antlrtree.txt
│       │   │   ├── lambdaParameterTypeInElvis.antlrtree.txt
│       │   │   ├── listConstructor.antlrtree.txt
│       │   │   ├── localFunctionInsideIfBlock.antlrtree.txt
│       │   │   ├── mapFunction.antlrtree.txt
│       │   │   ├── mostSpecificAfterInference.antlrtree.txt
│       │   │   ├── nestedCalls/
│       │   │   │   ├── arrayAccess.antlrtree.txt
│       │   │   │   ├── binaryExpressions.antlrtree.txt
│       │   │   │   ├── checkTypesForQualifiedProperties.antlrtree.txt
│       │   │   │   ├── completeNestedCallsForArraySetExpression.antlrtree.txt
│       │   │   │   ├── completeNestedCallsInference.antlrtree.txt
│       │   │   │   ├── completeNestedForVariableAsFunctionCall.antlrtree.txt
│       │   │   │   ├── externalTypeParameter.antlrtree.txt
│       │   │   │   ├── inferenceForNestedBinaryCall.antlrtree.txt
│       │   │   │   ├── kt3395.antlrtree.txt
│       │   │   │   ├── kt3461checkTypes.antlrtree.txt
│       │   │   │   ├── makeNullableIfSafeCall.antlrtree.txt
│       │   │   │   ├── nontrivialCallExpression.antlrtree.txt
│       │   │   │   ├── preferArgumentToNullability.antlrtree.txt
│       │   │   │   └── preferNothingToBound.antlrtree.txt
│       │   │   ├── noInformationForParameter.antlrtree.txt
│       │   │   ├── nonFunctionalExpectedTypeForLambdaArgument.antlrtree.txt
│       │   │   ├── nothingType/
│       │   │   │   ├── complexDependancyOnVariableWithTrivialConstraint.antlrtree.txt
│       │   │   │   ├── discriminateNothingForReifiedParameter.antlrtree.txt
│       │   │   │   ├── discriminatedNothingAndSmartCast.antlrtree.txt
│       │   │   │   ├── discriminatedNothingInsideComplexNestedCall.antlrtree.txt
│       │   │   │   ├── generateConstraintWithInnerNothingType.antlrtree.txt
│       │   │   │   ├── genericOverride.antlrtree.txt
│       │   │   │   ├── implicitInferenceTToFlexibleNothing.antlrtree.txt
│       │   │   │   ├── implicitNothingConstraintFromReturn.antlrtree.txt
│       │   │   │   ├── inferArgumentToNothingFromNullConstant.antlrtree.txt
│       │   │   │   ├── inferenceWithRecursiveGenericsAndNothing.antlrtree.txt
│       │   │   │   ├── kt24490.antlrtree.txt
│       │   │   │   ├── kt32051.antlrtree.txt
│       │   │   │   ├── kt32081.antlrtree.txt
│       │   │   │   ├── kt32207.antlrtree.txt
│       │   │   │   ├── kt32388.antlrtree.txt
│       │   │   │   ├── kt34335.antlrtree.txt
│       │   │   │   ├── kt56448.main.antlrtree.txt
│       │   │   │   ├── lambdaNothingAndExpectedType.antlrtree.txt
│       │   │   │   ├── nestedLambdaInferenceWithIncorporationOfVariables.antlrtree.txt
│       │   │   │   ├── notEnoughInformationAndNothing.antlrtree.txt
│       │   │   │   ├── notEnoughInformationFromNullabilityConstraint.antlrtree.txt
│       │   │   │   ├── nothingWithCallableReference.antlrtree.txt
│       │   │   │   ├── nullableExpectedTypeFromVariable.antlrtree.txt
│       │   │   │   ├── platformNothingAsUsefulConstraint.test.antlrtree.txt
│       │   │   │   ├── reifiedParameterWithRecursiveBound.antlrtree.txt
│       │   │   │   ├── reportImplicitNothingOnlyForOwnTypeParameters.antlrtree.txt
│       │   │   │   ├── returnAsLastStatementInLambda.antlrtree.txt
│       │   │   │   ├── selectWithNull.antlrtree.txt
│       │   │   │   └── specialCallWithMaterializeAndExpectedType.antlrtree.txt
│       │   │   ├── nothingVsParameterBound.antlrtree.txt
│       │   │   ├── nullableArgumentForDnn.antlrtree.txt
│       │   │   ├── nullableTypeArgumentWithNotNullUpperBound.antlrtree.txt
│       │   │   ├── nullableUpperBound.antlrtree.txt
│       │   │   ├── onlyInputTypesWithMultilevelIncorporation.antlrtree.txt
│       │   │   ├── opposite.antlrtree.txt
│       │   │   ├── possibleCycleOnConstraints.antlrtree.txt
│       │   │   ├── publicApproximation/
│       │   │   │   ├── approximatedIntersectionMorePreciseThanBound.antlrtree.txt
│       │   │   │   ├── chainedLambdas.antlrtree.txt
│       │   │   │   ├── declarationTypes.antlrtree.txt
│       │   │   │   ├── intersectionAfterSmartCastInLambdaReturn.antlrtree.txt
│       │   │   │   ├── intersectionAlternative.antlrtree.txt
│       │   │   │   ├── intersectionLocations.antlrtree.txt
│       │   │   │   ├── lambdaReturnArgumentCall.antlrtree.txt
│       │   │   │   ├── lambdaReturnTypeApproximation.antlrtree.txt
│       │   │   │   ├── nonTrivialVariance.antlrtree.txt
│       │   │   │   ├── parameterInBound.antlrtree.txt
│       │   │   │   ├── projections.antlrtree.txt
│       │   │   │   ├── smartCastInLambdaReturnAfterIntersection.antlrtree.txt
│       │   │   │   └── twoIntersections.antlrtree.txt
│       │   │   ├── receiverTypeMismatch_withProper.Main.antlrtree.txt
│       │   │   ├── receiverTypeMismatch_withoutProper.Main.antlrtree.txt
│       │   │   ├── recursiveCalls/
│       │   │   │   ├── kt23531.antlrtree.txt
│       │   │   │   └── kt23531.reversed.antlrtree.txt
│       │   │   ├── recursiveLocalFuns/
│       │   │   │   ├── localFactorial.antlrtree.txt
│       │   │   │   ├── recursiveFun.antlrtree.txt
│       │   │   │   ├── recursiveLambda.antlrtree.txt
│       │   │   │   └── selfCall.antlrtree.txt
│       │   │   ├── recursiveTypes/
│       │   │   │   ├── multirecursion.antlrtree.txt
│       │   │   │   ├── recursiveInIn.antlrtree.txt
│       │   │   │   ├── recursiveInInv.antlrtree.txt
│       │   │   │   ├── recursiveInOut.antlrtree.txt
│       │   │   │   ├── recursiveInvIn.antlrtree.txt
│       │   │   │   ├── recursiveInvOut.antlrtree.txt
│       │   │   │   ├── recursiveOutIn.antlrtree.txt
│       │   │   │   ├── recursiveOutInv.antlrtree.txt
│       │   │   │   ├── recursiveOutOut.antlrtree.txt
│       │   │   │   ├── recursiveTypeWithNonStarResult.antlrtree.txt
│       │   │   │   ├── recursiveTypes.antlrtree.txt
│       │   │   │   ├── selfTypes/
│       │   │   │   │   ├── disabledInferenceOnSelfTypes/
│       │   │   │   │   │   ├── basicInferenceForImplicitSelfType.antlrtree.txt
│       │   │   │   │   │   ├── recursiveTypeWithTwoTypeParams.antlrtree.txt
│       │   │   │   │   │   └── writerAppenderExampleRecursive.antlrtree.txt
│       │   │   │   │   └── enabledInferenceOnSelfTypes/
│       │   │   │   │       ├── basicInferenceForImplicitSelfType.main.antlrtree.txt
│       │   │   │   │       ├── recursiveTypeWithTwoTypeParams.main.antlrtree.txt
│       │   │   │   │       └── writerAppenderExampleRecursive.main.antlrtree.txt
│       │   │   │   └── twoTypeConstructors.antlrtree.txt
│       │   │   ├── regressions/
│       │   │   │   ├── compareBy.antlrtree.txt
│       │   │   │   ├── kt1029.antlrtree.txt
│       │   │   │   ├── kt1031.antlrtree.txt
│       │   │   │   ├── kt1127.antlrtree.txt
│       │   │   │   ├── kt1145.antlrtree.txt
│       │   │   │   ├── kt1358.antlrtree.txt
│       │   │   │   ├── kt1410.antlrtree.txt
│       │   │   │   ├── kt1718.antlrtree.txt
│       │   │   │   ├── kt1944.antlrtree.txt
│       │   │   │   ├── kt2057.antlrtree.txt
│       │   │   │   ├── kt2179.antlrtree.txt
│       │   │   │   ├── kt2200.antlrtree.txt
│       │   │   │   ├── kt2283.antlrtree.txt
│       │   │   │   ├── kt2286.antlrtree.txt
│       │   │   │   ├── kt2294.antlrtree.txt
│       │   │   │   ├── kt2320.antlrtree.txt
│       │   │   │   ├── kt2324.antlrtree.txt
│       │   │   │   ├── kt2407.antlrtree.txt
│       │   │   │   ├── kt2445.antlrtree.txt
│       │   │   │   ├── kt2459.antlrtree.txt
│       │   │   │   ├── kt2484.antlrtree.txt
│       │   │   │   ├── kt2505.antlrtree.txt
│       │   │   │   ├── kt2514.antlrtree.txt
│       │   │   │   ├── kt2588.antlrtree.txt
│       │   │   │   ├── kt2741.antlrtree.txt
│       │   │   │   ├── kt2754.antlrtree.txt
│       │   │   │   ├── kt2838.antlrtree.txt
│       │   │   │   ├── kt2841.antlrtree.txt
│       │   │   │   ├── kt2841_it.antlrtree.txt
│       │   │   │   ├── kt2841_it_this.antlrtree.txt
│       │   │   │   ├── kt2841_this.antlrtree.txt
│       │   │   │   ├── kt2842.antlrtree.txt
│       │   │   │   ├── kt2883.antlrtree.txt
│       │   │   │   ├── kt3007.antlrtree.txt
│       │   │   │   ├── kt3038.antlrtree.txt
│       │   │   │   ├── kt3150.antlrtree.txt
│       │   │   │   ├── kt3174.antlrtree.txt
│       │   │   │   ├── kt32106.antlrtree.txt
│       │   │   │   ├── kt32250.antlrtree.txt
│       │   │   │   ├── kt32862_both.antlrtree.txt
│       │   │   │   ├── kt32862_none.antlrtree.txt
│       │   │   │   ├── kt3301.antlrtree.txt
│       │   │   │   ├── kt3344.antlrtree.txt
│       │   │   │   ├── kt33629.antlrtree.txt
│       │   │   │   ├── kt34029.antlrtree.txt
│       │   │   │   ├── kt34282.antlrtree.txt
│       │   │   │   ├── kt3496.antlrtree.txt
│       │   │   │   ├── kt3496_2.antlrtree.txt
│       │   │   │   ├── kt3559.antlrtree.txt
│       │   │   │   ├── kt35844.antlrtree.txt
│       │   │   │   ├── kt35943.antlrtree.txt
│       │   │   │   ├── kt36342.antlrtree.txt
│       │   │   │   ├── kt36342_2.antlrtree.txt
│       │   │   │   ├── kt37043.main.antlrtree.txt
│       │   │   │   ├── kt37043_2.antlrtree.txt
│       │   │   │   ├── kt37419.antlrtree.txt
│       │   │   │   ├── kt37650.antlrtree.txt
│       │   │   │   ├── kt38549.antlrtree.txt
│       │   │   │   ├── kt38691.antlrtree.txt
│       │   │   │   ├── kt41386.antlrtree.txt
│       │   │   │   ├── kt41394.antlrtree.txt
│       │   │   │   ├── kt4420.antlrtree.txt
│       │   │   │   ├── kt44440.antlrtree.txt
│       │   │   │   ├── kt47941.antlrtree.txt
│       │   │   │   ├── kt702.antlrtree.txt
│       │   │   │   ├── kt731.antlrtree.txt
│       │   │   │   ├── kt742.antlrtree.txt
│       │   │   │   ├── kt8132.antlrtree.txt
│       │   │   │   ├── kt832.antlrtree.txt
│       │   │   │   ├── kt943.antlrtree.txt
│       │   │   │   ├── kt9461.antlrtree.txt
│       │   │   │   ├── kt948.antlrtree.txt
│       │   │   │   └── noRecursionOnCallingPureKotlinFunctionAsSyntheticJavaAccessor.antlrtree.txt
│       │   │   ├── reportAboutUnresolvedReferenceAsUnresolved.antlrtree.txt
│       │   │   ├── reportNotEnoughTypeInformationErrorsOnBlockExpressions.antlrtree.txt
│       │   │   ├── reportingImprovements/
│       │   │   │   ├── ErrorTypeAsGenericParameter.antlrtree.txt
│       │   │   │   ├── FunctionPlaceholder.antlrtree.txt
│       │   │   │   ├── NoAmbiguityForDifferentFunctionTypes.antlrtree.txt
│       │   │   │   ├── cannotInferParameterTypeWithInference.antlrtree.txt
│       │   │   │   ├── inferTypeFromUnresolvedArgument.antlrtree.txt
│       │   │   │   ├── kt42620.antlrtree.txt
│       │   │   │   ├── reportUnresolvedReferenceWrongReceiverForManyCandidates.antlrtree.txt
│       │   │   │   ├── subtypeForInvariantWithErrorGenerics.antlrtree.txt
│       │   │   │   ├── typeInferenceFailedOnComponentN.antlrtree.txt
│       │   │   │   ├── typeInferenceFailedOnIteratorCall.antlrtree.txt
│       │   │   │   ├── wrongArgumentExtensionFunction.antlrtree.txt
│       │   │   │   └── wrongArgumentPassedToLocalExtensionFunction.antlrtree.txt
│       │   │   ├── resolveWithUnknownLambdaParameterType.antlrtree.txt
│       │   │   ├── returningLambdaInSuspendContext.antlrtree.txt
│       │   │   ├── selectOfLambdaWithExtension.antlrtree.txt
│       │   │   ├── selectOfLambdaWithExtensionDisabled.antlrtree.txt
│       │   │   ├── selectOfLambdaWithExtensionEnabled.antlrtree.txt
│       │   │   ├── smartCastFork.antlrtree.txt
│       │   │   ├── smartCastForkForExpectType.antlrtree.txt
│       │   │   ├── smartCastForkForExpectedTypeNested.antlrtree.txt
│       │   │   ├── specialCallsWithCallableReferences.antlrtree.txt
│       │   │   ├── specialCallsWithLambdas.antlrtree.txt
│       │   │   ├── starApproximation.antlrtree.txt
│       │   │   ├── starApproximationBangBang.antlrtree.txt
│       │   │   ├── starApproximationFlexible.main.antlrtree.txt
│       │   │   ├── starApproximationFromDifferentTypeParameter.antlrtree.txt
│       │   │   ├── stubTypeForSubtyping.antlrtree.txt
│       │   │   ├── substitutions/
│       │   │   │   ├── delegationAndInference.antlrtree.txt
│       │   │   │   ├── hideFlexibleLocalTypeInPublicPosition.main.antlrtree.txt
│       │   │   │   ├── hideFlexibleLocalTypeInPublicPosition_before.main.antlrtree.txt
│       │   │   │   ├── hideLocalTypeForReturnTypeOfSingleExpressionFunction.antlrtree.txt
│       │   │   │   ├── hideNullableLocalTypeInPublicPosition.antlrtree.txt
│       │   │   │   ├── hideNullableLocalTypeInPublicPosition_before.antlrtree.txt
│       │   │   │   ├── kt32189returnTypeWithTypealiasSubtitution.antlrtree.txt
│       │   │   │   ├── kt6081SubstituteIntoClassCorrectly.antlrtree.txt
│       │   │   │   ├── simpleSubstitutionCheckTypeArgumentsNotTypeParameters.antlrtree.txt
│       │   │   │   ├── substitutionIntoAnonymousClass.antlrtree.txt
│       │   │   │   ├── substitutionIntoInnerClass.antlrtree.txt
│       │   │   │   └── substitutionOfTypeEnhancement.main.antlrtree.txt
│       │   │   ├── tooEagerSmartcast.antlrtree.txt
│       │   │   ├── topLevelIntersection.antlrtree.txt
│       │   │   ├── tryNumberLowerBoundsBeforeUpperBounds.antlrtree.txt
│       │   │   ├── typeConstructorMismatch.antlrtree.txt
│       │   │   ├── typeInferenceExpectedTypeMismatch.antlrtree.txt
│       │   │   ├── typeParameterInConstructor.antlrtree.txt
│       │   │   ├── underscoredTypeArgument.antlrtree.txt
│       │   │   ├── underscoredTypeInForbiddenPositions.antlrtree.txt
│       │   │   ├── unsoundness1.antlrtree.txt
│       │   │   ├── unsoundness2.antlrtree.txt
│       │   │   ├── upperBounds/
│       │   │   │   ├── conflictingSubstitutionsFromUpperBound.antlrtree.txt
│       │   │   │   ├── doNotInferFromBoundsOnly.antlrtree.txt
│       │   │   │   ├── flexibilityInCommonSuperTypeCalculation.main.antlrtree.txt
│       │   │   │   ├── flexibilityInCommonSuperTypeCalculation.ni.main.antlrtree.txt
│       │   │   │   ├── inferringVariableByMaterializeAndUpperBound.antlrtree.txt
│       │   │   │   ├── intersectUpperBounds.antlrtree.txt
│       │   │   │   ├── kt2856.antlrtree.txt
│       │   │   │   ├── nonNullUpperBound.antlrtree.txt
│       │   │   │   ├── typeParameterAsUpperBound.antlrtree.txt
│       │   │   │   ├── useBoundsIfUnknownParameters.antlrtree.txt
│       │   │   │   └── useBoundsToInferTypeParamsSimple.antlrtree.txt
│       │   │   ├── useFunctionLiteralsToInferType.antlrtree.txt
│       │   │   ├── violatingUpperBoundForSelfType.antlrtree.txt
│       │   │   └── violatingUpperBoundForSelfTypeError.antlrtree.txt
│       │   ├── infos/
│       │   │   ├── PropertiesWithBackingFields.antlrtree.txt
│       │   │   └── SmartCasts.antlrtree.txt
│       │   ├── initializedAfterRethrow.antlrtree.txt
│       │   ├── inline/
│       │   │   ├── anonymousObjects.antlrtree.txt
│       │   │   ├── approximateReturnedAnonymousObjects.antlrtree.txt
│       │   │   ├── assignment.antlrtree.txt
│       │   │   ├── binaryExpressions/
│       │   │   │   ├── andOr.antlrtree.txt
│       │   │   │   ├── arrayAccess.antlrtree.txt
│       │   │   │   ├── assignment.antlrtree.txt
│       │   │   │   ├── comparison.antlrtree.txt
│       │   │   │   ├── componentAccess.antlrtree.txt
│       │   │   │   ├── contains.antlrtree.txt
│       │   │   │   ├── mathOperations.antlrtree.txt
│       │   │   │   └── rangeTo.antlrtree.txt
│       │   │   ├── capture.antlrtree.txt
│       │   │   ├── constructor.antlrtree.txt
│       │   │   ├── default.antlrtree.txt
│       │   │   ├── defaultLambdaInlineSuspend.antlrtree.txt
│       │   │   ├── defaultLambdaInlining.antlrtree.txt
│       │   │   ├── extensionOnFunction.antlrtree.txt
│       │   │   ├── forbidExtensionCallsOnInlineFunctionalParameters_after.antlrtree.txt
│       │   │   ├── forbidExtensionCallsOnInlineFunctionalParameters_before.antlrtree.txt
│       │   │   ├── fromInlineToNoInline.antlrtree.txt
│       │   │   ├── functions.antlrtree.txt
│       │   │   ├── inlineLambdaInDefaultInlineParameter.antlrtree.txt
│       │   │   ├── inlineReified.antlrtree.txt
│       │   │   ├── inlinedReturnInBranch.antlrtree.txt
│       │   │   ├── invoke.antlrtree.txt
│       │   │   ├── isCheck.antlrtree.txt
│       │   │   ├── kt15410.antlrtree.txt
│       │   │   ├── kt19679.antlrtree.txt
│       │   │   ├── kt21177.antlrtree.txt
│       │   │   ├── kt21177Warning.antlrtree.txt
│       │   │   ├── kt4869.antlrtree.txt
│       │   │   ├── labeled.antlrtree.txt
│       │   │   ├── lambdaCast.antlrtree.txt
│       │   │   ├── localFun.antlrtree.txt
│       │   │   ├── messagesForUnsupportedInInline.antlrtree.txt
│       │   │   ├── nonLocalReturns/
│       │   │   │   ├── anonymousObjects.antlrtree.txt
│       │   │   │   ├── anonymousObjectsNested.antlrtree.txt
│       │   │   │   ├── explicitReturnType.antlrtree.txt
│       │   │   │   ├── fromOnlyLocal.antlrtree.txt
│       │   │   │   ├── inlineLambda.antlrtree.txt
│       │   │   │   ├── labeledReturn.antlrtree.txt
│       │   │   │   ├── lambdaAsGeneric.antlrtree.txt
│       │   │   │   ├── lambdaAsNonFunction.antlrtree.txt
│       │   │   │   ├── lambdaWithGlobalReturnsInsideOnlyLocalOne.antlrtree.txt
│       │   │   │   ├── localFun.antlrtree.txt
│       │   │   │   ├── nestedNonLocals.antlrtree.txt
│       │   │   │   ├── noInlineAnnotation.antlrtree.txt
│       │   │   │   ├── noInlineLambda.antlrtree.txt
│       │   │   │   ├── nonInlinedClass.antlrtree.txt
│       │   │   │   ├── onlyLocalReturnLambda.antlrtree.txt
│       │   │   │   ├── onlyLocalReturnLambdaBinaryExpr.antlrtree.txt
│       │   │   │   ├── propertyAccessorsAndConstructor.antlrtree.txt
│       │   │   │   └── toOnlyLocal.antlrtree.txt
│       │   │   ├── nonPublicMember/
│       │   │   │   ├── inNonPublicClass.antlrtree.txt
│       │   │   │   ├── inNonPublicInnerClass.antlrtree.txt
│       │   │   │   ├── inPackage.antlrtree.txt
│       │   │   │   ├── inPublicClass.antlrtree.txt
│       │   │   │   ├── kt14887.antlrtree.txt
│       │   │   │   ├── kt55179.antlrtree.txt
│       │   │   │   ├── localClass.antlrtree.txt
│       │   │   │   ├── localClass2.antlrtree.txt
│       │   │   │   ├── localFun.antlrtree.txt
│       │   │   │   ├── protectedInlineInsideInternal.antlrtree.txt
│       │   │   │   └── publishedApi.antlrtree.txt
│       │   │   ├── nonVirtualMembersWithInline.antlrtree.txt
│       │   │   ├── nothingToInline.antlrtree.txt
│       │   │   ├── nullabilityOperations.antlrtree.txt
│       │   │   ├── nullableFunction.antlrtree.txt
│       │   │   ├── overrideWithInline.antlrtree.txt
│       │   │   ├── parenthesized.antlrtree.txt
│       │   │   ├── privateClass.antlrtree.txt
│       │   │   ├── propagation.antlrtree.txt
│       │   │   ├── property/
│       │   │   │   ├── invoke.antlrtree.txt
│       │   │   │   ├── propertyWithBackingField.antlrtree.txt
│       │   │   │   ├── unsupportedConstruction.antlrtree.txt
│       │   │   │   └── virtualProperty.antlrtree.txt
│       │   │   ├── protectedCallDepecation.main.antlrtree.txt
│       │   │   ├── protectedCallError.main.antlrtree.txt
│       │   │   ├── publishedApi.antlrtree.txt
│       │   │   ├── recursion.antlrtree.txt
│       │   │   ├── recursiveTypeInPrivateInlineFunction.antlrtree.txt
│       │   │   ├── regressions/
│       │   │   │   └── kt4341.antlrtree.txt
│       │   │   ├── returnedAnonymousObjects.antlrtree.txt
│       │   │   ├── returnedAnonymousObjects_2.antlrtree.txt
│       │   │   ├── returns.antlrtree.txt
│       │   │   ├── sam.test.antlrtree.txt
│       │   │   ├── stringTemplate.antlrtree.txt
│       │   │   ├── superCall.1.antlrtree.txt
│       │   │   ├── superCall.2.antlrtree.txt
│       │   │   ├── superCallDepecation.main.antlrtree.txt
│       │   │   ├── superCallDepecationWarning.main.antlrtree.txt
│       │   │   ├── superCallFromMultipleSubclasses.1.antlrtree.txt
│       │   │   ├── superCallFromMultipleSubclasses.2.antlrtree.txt
│       │   │   ├── superProperty.1.antlrtree.txt
│       │   │   ├── superProperty.2.antlrtree.txt
│       │   │   ├── unaryExpressions/
│       │   │   │   ├── mathOperation.antlrtree.txt
│       │   │   │   ├── notOnCall.antlrtree.txt
│       │   │   │   └── notOperation.antlrtree.txt
│       │   │   ├── valueClasses.antlrtree.txt
│       │   │   ├── vararg.antlrtree.txt
│       │   │   ├── virtualMemberInEnum.antlrtree.txt
│       │   │   ├── virtualValInEnum.antlrtree.txt
│       │   │   ├── when.antlrtree.txt
│       │   │   └── wrongUsage.antlrtree.txt
│       │   ├── inlineClasses/
│       │   │   ├── basicInlineClassDeclaration.antlrtree.txt
│       │   │   ├── basicInlineClassDeclarationDisabled.antlrtree.txt
│       │   │   ├── changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.antlrtree.txt
│       │   │   ├── constructorsJvmSignaturesClash.antlrtree.txt
│       │   │   ├── delegatedPropertyInInlineClass.antlrtree.txt
│       │   │   ├── functionsJvmSignaturesClash.antlrtree.txt
│       │   │   ├── functionsJvmSignaturesConflictOnInheritance.antlrtree.txt
│       │   │   ├── genericInlineClass.antlrtree.txt
│       │   │   ├── identityComparisonWithInlineClasses.antlrtree.txt
│       │   │   ├── inefficientEqualsOverridingInInlineClass.antlrtree.txt
│       │   │   ├── inlineClassCanImplementInterfaceByDelegation.antlrtree.txt
│       │   │   ├── inlineClassCanOnlyImplementInterfaces.antlrtree.txt
│       │   │   ├── inlineClassCannotImplementInterfaceByDelegation.antlrtree.txt
│       │   │   ├── inlineClassConstructorParameterWithDefaultValue.antlrtree.txt
│       │   │   ├── inlineClassDeclarationCheck.antlrtree.txt
│       │   │   ├── inlineClassDeprecated.antlrtree.txt
│       │   │   ├── inlineClassImplementsCollection.antlrtree.txt
│       │   │   ├── inlineClassWithForbiddenUnderlyingType.antlrtree.txt
│       │   │   ├── inlineClassesInsideAnnotations.antlrtree.txt
│       │   │   ├── innerClassInsideInlineClass.antlrtree.txt
│       │   │   ├── lateinitInlineClassesOff.antlrtree.txt
│       │   │   ├── lateinitInlineClassesOn.antlrtree.txt
│       │   │   ├── presenceOfInitializerBlockInsideInlineClass.antlrtree.txt
│       │   │   ├── presenceOfPublicPrimaryConstructorForInlineClass.antlrtree.txt
│       │   │   ├── propertiesWithBackingFieldsInsideInlineClass.antlrtree.txt
│       │   │   ├── recursiveInlineClasses.antlrtree.txt
│       │   │   ├── reifiedGenericUnderlyingType.antlrtree.txt
│       │   │   ├── reservedConstructorsBodyInKotlinPre19.antlrtree.txt
│       │   │   ├── reservedMembersAndConstructsInsideInlineClass.antlrtree.txt
│       │   │   ├── synchronizedForbidden.antlrtree.txt
│       │   │   ├── typedEqualsOperatorDeclarationCheck.antlrtree.txt
│       │   │   ├── typedEqualsOperatorModifierInInlineClass.antlrtree.txt
│       │   │   ├── unsignedLiteralsWithoutArtifactOnClasspath.antlrtree.txt
│       │   │   └── varargsOnParametersOfInlineClassType.antlrtree.txt
│       │   ├── inlineDeprecationsOnImplicitCalls.antlrtree.txt
│       │   ├── inner/
│       │   │   ├── InnerClassNameClash.antlrtree.txt
│       │   │   ├── accessingToJavaNestedClass.K.antlrtree.txt
│       │   │   ├── accessingToJavaNestedClass.test.antlrtree.txt
│       │   │   ├── accessingToKotlinNestedClass.antlrtree.txt
│       │   │   ├── annotationInInnerClass.antlrtree.txt
│       │   │   ├── classesInClassObjectHeader.antlrtree.txt
│       │   │   ├── constructorAccess.antlrtree.txt
│       │   │   ├── deepInnerClass.antlrtree.txt
│       │   │   ├── enumEntries.antlrtree.txt
│       │   │   ├── enumInInnerClass.antlrtree.txt
│       │   │   ├── extensionFun.antlrtree.txt
│       │   │   ├── extensionLambdaInsideNestedClass.antlrtree.txt
│       │   │   ├── illegalModifier_lv12.antlrtree.txt
│       │   │   ├── innerClassInEnumEntryClassMemberResolve.antlrtree.txt
│       │   │   ├── innerClassInEnumEntryClass_lv12.antlrtree.txt
│       │   │   ├── innerClassInEnumEntryClass_lv13.antlrtree.txt
│       │   │   ├── innerClassesInStaticParameters.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiers.Outer.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiers.imported.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiersWithIrrelevantCandidate.Outer.antlrtree.txt
│       │   │   ├── innerConstructorsFromQualifiersWithIrrelevantCandidate.imported.antlrtree.txt
│       │   │   ├── innerErrorForClassObjects.antlrtree.txt
│       │   │   ├── innerErrorForObjects.antlrtree.txt
│       │   │   ├── innerThisSuper.antlrtree.txt
│       │   │   ├── interfaceInInnerClass.antlrtree.txt
│       │   │   ├── kt5854.antlrtree.txt
│       │   │   ├── kt6026.antlrtree.txt
│       │   │   ├── localClass.antlrtree.txt
│       │   │   ├── localClassInsideNested.antlrtree.txt
│       │   │   ├── localThisSuper.antlrtree.txt
│       │   │   ├── modality.antlrtree.txt
│       │   │   ├── nestedClassAccessedViaInstanceReference.antlrtree.txt
│       │   │   ├── nestedClassExtendsOuter.antlrtree.txt
│       │   │   ├── nestedClassExtendsOuterGeneric.antlrtree.txt
│       │   │   ├── nestedClassInObject.antlrtree.txt
│       │   │   ├── nestedClassNotAllowed_after.antlrtree.txt
│       │   │   ├── nestedClassNotAllowed_before.antlrtree.txt
│       │   │   ├── nestedClassTypeParameterNameCollision.antlrtree.txt
│       │   │   ├── nestedObject.antlrtree.txt
│       │   │   ├── nestedVsInnerAccessOuterMember.antlrtree.txt
│       │   │   ├── outerGenericParam.antlrtree.txt
│       │   │   ├── outerProtectedMember.antlrtree.txt
│       │   │   ├── outerSuperClassMember.antlrtree.txt
│       │   │   ├── qualifiedExpression/
│       │   │   │   ├── classObjectOfNestedClass.antlrtree.txt
│       │   │   │   ├── constructNestedClass.antlrtree.txt
│       │   │   │   ├── dataLocalVariable.antlrtree.txt
│       │   │   │   ├── enumConstant.antlrtree.txt
│       │   │   │   ├── genericNestedClass.antlrtree.txt
│       │   │   │   ├── importNestedClass.a.antlrtree.txt
│       │   │   │   ├── importNestedClass.b.antlrtree.txt
│       │   │   │   ├── nestedClassInPackage.antlrtree.txt
│       │   │   │   ├── nestedEnumConstant.antlrtree.txt
│       │   │   │   ├── nestedObjects.antlrtree.txt
│       │   │   │   └── typePosition.antlrtree.txt
│       │   │   ├── referenceToSelfInLocal.antlrtree.txt
│       │   │   ├── resolvePackageClassInObjects.antlrtree.txt
│       │   │   ├── selfAnnotationForClassObject.antlrtree.txt
│       │   │   ├── traits.antlrtree.txt
│       │   │   ├── typeVarianceConflict.antlrtree.txt
│       │   │   ├── typeVarianceConflictFeatureOn.antlrtree.txt
│       │   │   └── visibility.antlrtree.txt
│       │   ├── integerLiterals/
│       │   │   ├── complexMapping.complexMapping.
Copy disabled (too large) Download .json
Condensed preview — 6926 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (107,836K chars).
[
  {
    "path": ".fleet/run.json",
    "chars": 260,
    "preview": "{\n  \"configurations\": [\n    {\n      \"type\": \"gradle\",\n      \"name\": \"Build web version\",\n      \"tasks\": [\n        \"build"
  },
  {
    "path": ".fleet/settings.json",
    "chars": 37,
    "preview": "{\n    \"backend.maxHeapSizeMb\": 4096\n}"
  },
  {
    "path": ".github/actions/build-spec-in-docker/action.yml",
    "chars": 143,
    "preview": "name: 'Build Kotlin spec in its Docker container'\nruns:\n  using: 'docker'\n  image: '../../../docker/Dockerfile'\n  entryp"
  },
  {
    "path": ".github/actions/upload-spec-artifacts/action.yml",
    "chars": 416,
    "preview": "name: 'Upload Kotlin spec artifacts'\nruns:\n  using: 'composite'\n  steps:\n    - name: 'Upload Kotlin spec PDF artifacts'\n"
  },
  {
    "path": ".github/workflows/build-spec-on-pr-in-docker.yml",
    "chars": 397,
    "preview": "name: 'Build Kotlin spec on PRs (Docker version)'\n\non: [pull_request]\n\njobs:\n  build-spec:\n    runs-on: ubuntu-20.04\n   "
  },
  {
    "path": ".github/workflows/build-spec-on-pr.yml",
    "chars": 1668,
    "preview": "name: Build Kotlin spec on PRs\n\non: [pull_request]\n\njobs:\n  build-spec:\n    runs-on: ubuntu-20.04\n    steps:\n      - nam"
  },
  {
    "path": ".gitignore",
    "chars": 358,
    "preview": "*.generated.md\n\ngrammar/testData/psi/**/*.*\n!grammar/testData/psi/**/*.antlrtree.txt\n!grammar/testData/psi/**/*.diff\n\ngr"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 184,
    "preview": "# Code of Conduct\n\nThis project and the corresponding community is governed by the [JetBrains Open Source and Community "
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 5855,
    "preview": "# Contributing\n\nIf you want to contribute to the Kotlin language specification, welcome!\nThis document describes the way"
  },
  {
    "path": "LICENSE",
    "chars": 11398,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 5273,
    "preview": "# Kotlin Language Specification\n\n[![JetBrains official project](https://jb.gg/badges/official.svg)](https://github.com/J"
  },
  {
    "path": "ROADMAP.md",
    "chars": 630,
    "preview": "# Specification roadmap\n\n## Short-term plans\n\n* Improve Kotlin code examples\n* Synchronize specification of complex feat"
  },
  {
    "path": "build.gradle.kts",
    "chars": 2343,
    "preview": "import at.phatbl.shellexec.ShellExec\n\nplugins {\n    kotlin(\"jvm\") version \"1.7.0\" apply false\n    id(\"at.phatbl.shellexe"
  },
  {
    "path": "docker/Dockerfile",
    "chars": 1062,
    "preview": "FROM pandoc/latex:2.14.2-ubuntu\nMAINTAINER Marat Akhin <marat.akhin@jetbrains.com>\n\nWORKDIR /source\n\n# install Java 11\nR"
  },
  {
    "path": "docker/build-spec.sh",
    "chars": 87,
    "preview": "#!/bin/bash\n\ncd /github/workspace\n\n./gradlew buildWeb buildPdf\n\n./gradlew :grammar:jar\n"
  },
  {
    "path": "docs/build.gradle.kts",
    "chars": 3928,
    "preview": "import org.jetbrains.kotlin.gradle.tasks.KotlinCompile\nimport java.net.URI\n\nplugins {\n    application\n    kotlin(\"jvm\")\n"
  },
  {
    "path": "docs/html/build.gradle.kts",
    "chars": 579,
    "preview": "val htmlBuildDir = \"${project.parent?.buildDir}/spec/html\"\nval scriptsDir = \"${project.parent?.projectDir}/scripts/build"
  },
  {
    "path": "docs/htmlSections/build.gradle.kts",
    "chars": 662,
    "preview": "import java.nio.file.Paths\n\nval htmlBuildDir = \"${project.parent?.buildDir}/spec/html\"\nval scriptsDir = \"${project.paren"
  },
  {
    "path": "docs/pdf/build.gradle.kts",
    "chars": 627,
    "preview": "val pdfBuildDir = \"${project.parent?.buildDir}/spec/pdf\"\nval scriptsDir = \"${project.parent?.projectDir}/scripts/build\"\n"
  },
  {
    "path": "docs/pdfSections/build.gradle.kts",
    "chars": 671,
    "preview": "import java.nio.file.Paths\n\nval pdfBuildDir = \"${project.parent?.buildDir}/spec/pdf\"\nval scriptsDir = \"${project.parent?"
  },
  {
    "path": "docs/scripts/build/buildHtml.sh",
    "chars": 478,
    "preview": "#!/bin/env bash\n\nsource directories.sh\nsource ${BUILD_DIR}/prepare.sh\nsource settings.sh\n\ninit_settings \"html\"\n\nexport P"
  },
  {
    "path": "docs/scripts/build/buildHtmlBySections.sh",
    "chars": 740,
    "preview": "#!/bin/env bash\n\nsource directories.sh\nsource ${BUILD_DIR}/prepare.sh\nsource settings.sh\n\ninit_settings \"html\"\n\nexport P"
  },
  {
    "path": "docs/scripts/build/buildPdf.sh",
    "chars": 562,
    "preview": "#!/bin/env bash\n\nsource directories.sh\nsource ${BUILD_DIR}/prepare.sh\nsource settings.sh\n\ninit_settings \"pdf\"\n\nexport PR"
  },
  {
    "path": "docs/scripts/build/buildPdfBySections.sh",
    "chars": 813,
    "preview": "#!/bin/env bash\n\nsource directories.sh\nsource ${BUILD_DIR}/prepare.sh\nsource settings.sh\n\ninit_settings \"pdf\"\n\nexport PR"
  },
  {
    "path": "docs/scripts/build/directories.sh",
    "chars": 158,
    "preview": "#!/bin/env bash\n\nexport PROJECT_DIR\n\nSECTIONS_DIR=\"$PROJECT_DIR/src/md/kotlin.core\"\nFILTERS_DIR=\"$PROJECT_DIR/scripts/fi"
  },
  {
    "path": "docs/scripts/build/settings.sh",
    "chars": 1067,
    "preview": "#!/bin/env bash\n\nFORMAT_PANDOC_OPTIONS=\"-f markdown-raw_html+smart+tex_math_double_backslash\"\n\n#--variable=subparagraph "
  },
  {
    "path": "docs/scripts/filters/brokenReferencesReportFilter.sh",
    "chars": 117,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.BrokenReferencesReporterKt $*\n"
  },
  {
    "path": "docs/scripts/filters/compoundFilter.sh",
    "chars": 180,
    "preview": "#!/bin/bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.CompoundFilterKt $* --embed $TODO_OPT"
  },
  {
    "path": "docs/scripts/filters/copyPasteFilter.sh",
    "chars": 108,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.CopyPasteFilterKt $*\n"
  },
  {
    "path": "docs/scripts/filters/inlineDiagramFilter.sh",
    "chars": 120,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.InlineDiagramFilterKt $* --embed\n"
  },
  {
    "path": "docs/scripts/filters/inlineKatexFilter.sh",
    "chars": 142,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.InlineKatexKt $* $STATIC_MATH_OPT"
  },
  {
    "path": "docs/scripts/filters/markSentencesFilter.sh",
    "chars": 112,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.MarkSentencesFilterKt $*\n"
  },
  {
    "path": "docs/scripts/filters/mathInCodeFilter.sh",
    "chars": 109,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.MathInCodeFilterKt $*\n"
  },
  {
    "path": "docs/scripts/filters/processTodoFilter.sh",
    "chars": 123,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.ProcessTodoFilterKt $* $TODO_OPTI"
  },
  {
    "path": "docs/scripts/filters/splitSections.sh",
    "chars": 106,
    "preview": "#!/bin/env bash\njava -cp $PROJECT_DIR/build/libs/filters.jar org.jetbrains.kotlin.spec.SplitDocumentKt $*\n"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/brokenReferencesReporter.kt",
    "chars": 2048,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport ru.spbstu.pandoc.*\nimport ru.spbstu.pandoc.helper.*\n\nprivate class ModifiedToS"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/compoundFilter.kt",
    "chars": 2504,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport com.fasterxml.jackson.module.kotlin.readValue\nimport com.github.ajalt.clikt.co"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/convertGrammar.kt",
    "chars": 6461,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport com.github.ajalt.clikt.core.CliktCommand\nimport com.github.ajalt.clikt.paramet"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/copyPasteFilter.kt",
    "chars": 2844,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport ru.spbstu.pandoc.*\nimport ru.spbstu.pandoc.helper.*\n\nprivate class IdCollector"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/inlineDiagramFilter.kt",
    "chars": 3933,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport com.github.ajalt.clikt.core.CliktCommand\nimport com.github.ajalt.clikt.paramet"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/inlineKatex.kt",
    "chars": 2786,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport com.github.ajalt.clikt.core.CliktCommand\nimport com.github.ajalt.clikt.paramet"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/markSentencesFilter.kt",
    "chars": 3366,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport ru.spbstu.pandoc.*\n\nprivate const val SENTENCE_CLASS = \"sentence\"\nprivate cons"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/mathInCodeFilter.kt",
    "chars": 997,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport ru.spbstu.pandoc.*\n\nobject MathInCode : PandocVisitor() {\n    override fun vis"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/processTodoFilter.kt",
    "chars": 4381,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport com.github.ajalt.clikt.core.CliktCommand\nimport com.github.ajalt.clikt.paramet"
  },
  {
    "path": "docs/src/main/kotlin/org/jetbrains/kotlin/spec/splitDocument.kt",
    "chars": 7795,
    "preview": "package org.jetbrains.kotlin.spec\n\nimport com.github.ajalt.clikt.core.CliktCommand\nimport com.github.ajalt.clikt.paramet"
  },
  {
    "path": "docs/src/md/commands.md",
    "chars": 2889,
    "preview": "<#mode quote>\n\n\\newcommand{\\currentKotlinMajorVersion}{\\textrm{1.9}}\n\n\\newcommand{\\opMathTT}[2]{%\n  \\expandafter\\newcomm"
  },
  {
    "path": "docs/src/md/dynamic_math.html",
    "chars": 933,
    "preview": "<script type=\"text/javascript\">\n    require([\n        \"resources/js/katex/katex.min.js\"\n    ], katex => {\n        let re"
  },
  {
    "path": "docs/src/md/epilogue.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/src/md/index.md",
    "chars": 190,
    "preview": "<#mode quote>\n---\ntitle: Kotlin language specification\nauthor:\n- Marat Akhin\n- Mikhail Belyaev\nsubtitle: Version 1.9-rfc"
  },
  {
    "path": "docs/src/md/kotlin.core/annotations.md",
    "chars": 11548,
    "preview": "## Annotations\n\nAnnotations are a form of syntactically-defined metadata which may be associated with different entities"
  },
  {
    "path": "docs/src/md/kotlin.core/builtins.md",
    "chars": 18445,
    "preview": "## Built-in types and their semantics\n\nKotlin has several built-in classifier types, which are important for the rest of"
  },
  {
    "path": "docs/src/md/kotlin.core/cdfa.md",
    "chars": 67654,
    "preview": "## Control- and data-flow analysis\n\nSeveral Kotlin features such as [variable initialization analysis] and [smart castin"
  },
  {
    "path": "docs/src/md/kotlin.core/concurrency.md",
    "chars": 293,
    "preview": "## Concurrency\n\nKotlin Core does not specify the semantics of the code running in concurrent environments.\nFor informati"
  },
  {
    "path": "docs/src/md/kotlin.core/coroutines.md",
    "chars": 14113,
    "preview": "## Asynchronous programming with coroutines\n\nTODO([Kotlin 1.3+, Experimental] Update w.r.t. structured concurrency)\n\n###"
  },
  {
    "path": "docs/src/md/kotlin.core/declarations.md",
    "chars": 93296,
    "preview": "## Declarations\n\n### Glossary {-}\n\nEntity\n~ Distinguishable part of a program\n\nIdentifier\n~ Name of a program entity\n\nPa"
  },
  {
    "path": "docs/src/md/kotlin.core/exceptions.md",
    "chars": 2847,
    "preview": "## Exceptions\n\nAn *exception* type declaration is any type declaration that meets the following criteria:\n\n- It is a [cl"
  },
  {
    "path": "docs/src/md/kotlin.core/expressions.md",
    "chars": 81355,
    "preview": "## Expressions\n\n### Glossary {-}\n\nCSB\n~ [Control structure body][Code blocks]\n\n### Introduction {-}\n\nExpressions (togeth"
  },
  {
    "path": "docs/src/md/kotlin.core/index.md",
    "chars": 578,
    "preview": "# Kotlin/Core\n\n<#include \"introduction.md\">\n\n<#include \"syntax.md\">\n\n<#include \"type-system.md\">\n\n<#include \"builtins.md"
  },
  {
    "path": "docs/src/md/kotlin.core/inheritance.md",
    "chars": 9248,
    "preview": "## Inheritance\n\nKotlin is an object-oriented language with its object model based on **inheritance**.\n\n### Classifier ty"
  },
  {
    "path": "docs/src/md/kotlin.core/introduction.md",
    "chars": 4539,
    "preview": "## Introduction {-}\n\nKotlin took inspiration from many programming languages, including (but not limited to) Java, Scala"
  },
  {
    "path": "docs/src/md/kotlin.core/operators.md",
    "chars": 7303,
    "preview": "## Operator overloading\n\nSome syntax forms in Kotlin are *defined by convention*, meaning that their semantics are defin"
  },
  {
    "path": "docs/src/md/kotlin.core/overload-resolution.md",
    "chars": 51825,
    "preview": "## Overload resolution\n\n### Glossary {-}\n\n`type(e)`\n~ [Type][Type system] of expression `e`\n\n### Introduction {-}\n\nKotli"
  },
  {
    "path": "docs/src/md/kotlin.core/packages.md",
    "chars": 5515,
    "preview": "## Packages and imports\n\nA Kotlin project is structured into **packages**.\nA package contains one or more Kotlin files, "
  },
  {
    "path": "docs/src/md/kotlin.core/rtti.md",
    "chars": 4094,
    "preview": "## Runtime type information\n\nThe _runtime type information_ (RTTI) is the information about Kotlin types of values avail"
  },
  {
    "path": "docs/src/md/kotlin.core/scoping.md",
    "chars": 9586,
    "preview": "## Scopes and identifiers\n\nKotlin program is logically divided into _scopes_.\n\nA scope is a syntactically-delimited regi"
  },
  {
    "path": "docs/src/md/kotlin.core/statements.md",
    "chars": 12130,
    "preview": "## Statements\n\n:::{.paste target=grammar-rule-statements}\n:::\n:::{.paste target=grammar-rule-statement}\n:::\n\nKotlin does"
  },
  {
    "path": "docs/src/md/kotlin.core/syntax.md",
    "chars": 30581,
    "preview": "## Syntax and grammar\n\n### Notation\n\nThis section uses a BNF-based notation similar to EBNF with the following conventio"
  },
  {
    "path": "docs/src/md/kotlin.core/type-constraints.md",
    "chars": 14131,
    "preview": "## Kotlin type constraints\n\nSome complex tasks that need to be solved when compiling Kotlin code are formulated best usi"
  },
  {
    "path": "docs/src/md/kotlin.core/type-inference.md",
    "chars": 29617,
    "preview": "## Type inference\n\nKotlin has a concept of *type inference* for compile-time type information, meaning some type informa"
  },
  {
    "path": "docs/src/md/kotlin.core/type-system.md",
    "chars": 66477,
    "preview": "## Type system\n\n### Glossary {-}\n\n$T$\n~ Type (with unknown nullability)\n\n$T!!$\n~ [Non-nullable type][Nullable types]\n\n$T"
  },
  {
    "path": "docs/src/md/kotlin.jvm/declarations.md",
    "chars": 156,
    "preview": "## Declarations\n\n### Classifier declaration\n\n#### Class declaration\n\n##### Inheritance delegation\n\nTODO(How we handle de"
  },
  {
    "path": "docs/src/md/kotlin.jvm/index.md",
    "chars": 130,
    "preview": "# Kotlin/JVM\n\n<#include \"type-system.md\">\n\n<#include \"declarations.md\">\n\n<#include \"rtti.md\">\n\n<#include \"lambda-express"
  },
  {
    "path": "docs/src/md/kotlin.jvm/lambda-expressions.md",
    "chars": 602,
    "preview": "## Lambda expressions\n\nTODO(Everything)\n\n> Note: creating excessive lambda instances may potentially lead to logical mem"
  },
  {
    "path": "docs/src/md/kotlin.jvm/rtti.md",
    "chars": 86,
    "preview": "## Runtime type information\n\nTODO(Function0..Function22, Function<R>, FunctionN, ...)\n"
  },
  {
    "path": "docs/src/md/kotlin.jvm/type-system.md",
    "chars": 574,
    "preview": "## Type system\n\n### Type kinds\n\n#### Type parameters\n\nOn the JVM platform, bounded type parameter with regular bounds sh"
  },
  {
    "path": "docs/src/md/kotlin.xml",
    "chars": 17702,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- kotlin language syntax http://kotlinlang.org -->\n<language name=\"Kotlin\" ver"
  },
  {
    "path": "docs/src/md/preamble.html",
    "chars": 1650,
    "preview": "<link rel=\"Shortcut Icon\" href=\"https://kotlinlang.org/assets/images/favicon.ico\" type=\"image/x-icon\"/>\n<link rel=\"apple"
  },
  {
    "path": "docs/src/md/preamble.tex",
    "chars": 791,
    "preview": "\\usepackage{enumitem}\n\\setlist[description]{style=nextline}\n\n\\usepackage{amsmath}\n\\usepackage{cancel}\n\n\\usepackage{todon"
  },
  {
    "path": "docs/src/md/preface.html",
    "chars": 613,
    "preview": "<div class=\"header-bar\">\n    <div class=\"icon-menu\">\n        <span class=\"divide\"></span>\n        <span class=\"divide\"><"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "chars": 202,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "gradle.properties",
    "chars": 50,
    "preview": "withGrammarProject=true\n\norg.gradle.parallel=true\n"
  },
  {
    "path": "gradlew",
    "chars": 5960,
    "preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "gradlew.bat",
    "chars": 2842,
    "preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
  },
  {
    "path": "grammar/README.md",
    "chars": 2482,
    "preview": "# Kotlin grammar\n\n[![TeamCity (simple build status)](https://img.shields.io/teamcity/https/teamcity.jetbrains.com/e/Kotl"
  },
  {
    "path": "grammar/build.gradle.kts",
    "chars": 5127,
    "preview": "import at.phatbl.shellexec.ShellExec\nimport java.io.File\nimport java.net.URI\nimport java.util.regex.Pattern\n\nplugins {\n "
  },
  {
    "path": "grammar/gradle/wrapper/gradle-wrapper.jar",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "grammar/gradle/wrapper/gradle-wrapper.properties",
    "chars": 200,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "grammar/scripts/compareActuals.sh",
    "chars": 168,
    "preview": "#!/bin/bash\n\nTEST_DATA=\"$1\"\n\nfor fo in `find ${TEST_DATA} -name \"*.antlrtree.txt\"`; do\n    fa=\"$fo.actual\";\n    if [[ -e"
  },
  {
    "path": "grammar/scripts/processActuals.sh",
    "chars": 360,
    "preview": "#!/bin/bash\n\nTEST_DATA=\"$1\"\nREF=\"$2\"\n\nfor actual in `find \"${TEST_DATA}\" -name \"*.actual\"`; do\n    old=\"${actual%.*}\";\n "
  },
  {
    "path": "grammar/scripts/processModified.sh",
    "chars": 206,
    "preview": "#!/bin/bash\n\nREF=\"$1\"\n\nfor i in `git status -s | grep \"^ M.*\\.antlrtree.txt$\" | cut -d ' ' -f 3`; do\n    git diff --nums"
  },
  {
    "path": "grammar/src/main/antlr/KotlinLexer.g4",
    "chars": 12224,
    "preview": "/**\n * Kotlin lexical grammar in ANTLR4 notation\n */\n\nlexer grammar KotlinLexer;\n\nimport UnicodeClasses;\n\n// SECTION: le"
  },
  {
    "path": "grammar/src/main/antlr/KotlinLexer.tokens",
    "chars": 3420,
    "preview": "ShebangLine=1\nDelimitedComment=2\nLineComment=3\nWS=4\nNL=5\nRESERVED=6\nDOT=7\nCOMMA=8\nLPAREN=9\nRPAREN=10\nLSQUARE=11\nRSQUARE="
  },
  {
    "path": "grammar/src/main/antlr/KotlinParser.g4",
    "chars": 17235,
    "preview": "/**\n * Kotlin syntax grammar in ANTLR4 notation\n */\n\nparser grammar KotlinParser;\n\noptions { tokenVocab = KotlinLexer; }"
  },
  {
    "path": "grammar/src/main/antlr/UnicodeClasses.g4",
    "chars": 23131,
    "preview": "/**\n * Kotlin lexical grammar in ANTLR4 notation (Unicode classes)\n *\n * Taken from http://www.antlr3.org/grammar/134514"
  },
  {
    "path": "grammar/src/main/antlr/UnicodeClasses.tokens",
    "chars": 133,
    "preview": "UNICODE_CLASS_LL=1\nUNICODE_CLASS_LM=2\nUNICODE_CLASS_LO=3\nUNICODE_CLASS_LT=4\nUNICODE_CLASS_LU=5\nUNICODE_CLASS_ND=6\nUNICOD"
  },
  {
    "path": "grammar/src/test/org/jetbrains/kotlin/spec/grammar/TestRunner.kt",
    "chars": 5951,
    "preview": "package org.jetbrains.kotlin.spec.grammar\n\nimport com.intellij.testFramework.TestDataPath\nimport org.jetbrains.kotlin.sp"
  },
  {
    "path": "grammar/src/test/org/jetbrains/kotlin/spec/grammar/parsetree/ComparisonTree.kt",
    "chars": 4848,
    "preview": "package org.jetbrains.kotlin.spec.grammar.parsetree\n\nimport com.intellij.openapi.util.io.FileUtil\nimport java.io.File\nim"
  },
  {
    "path": "grammar/src/test/org/jetbrains/kotlin/spec/grammar/parsetree/KotlinParseTree.kt",
    "chars": 1211,
    "preview": "package org.jetbrains.kotlin.spec.grammar.parsetree\n\nimport org.jetbrains.kotlin.spec.grammar.util.TestUtil.ls\nimport ja"
  },
  {
    "path": "grammar/src/test/org/jetbrains/kotlin/spec/grammar/parsetree/ParseTreeUtil.kt",
    "chars": 4782,
    "preview": "package org.jetbrains.kotlin.spec.grammar.parsetree\n\nimport org.antlr.v4.runtime.*\nimport org.antlr.v4.runtime.atn.Predi"
  },
  {
    "path": "grammar/src/test/org/jetbrains/kotlin/spec/grammar/psi/PsiTextParser.kt",
    "chars": 4208,
    "preview": "package org.jetbrains.kotlin.spec.grammar.psi\n\nimport java.util.*\nimport java.util.regex.Matcher\nimport java.util.regex."
  },
  {
    "path": "grammar/src/test/org/jetbrains/kotlin/spec/grammar/util/TestUtil.kt",
    "chars": 3819,
    "preview": "package org.jetbrains.kotlin.spec.grammar.util\n\nimport com.intellij.openapi.util.io.FileUtil\nimport com.intellij.openapi"
  },
  {
    "path": "grammar/testData/diagnostics/Abstract.b.antlrtree.txt",
    "chars": 37437,
    "preview": "File: Abstract.b.kt - 1653c958f5acf2bb6dff2bd874377d98\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n      simpl"
  },
  {
    "path": "grammar/testData/diagnostics/Abstract.c.antlrtree.txt",
    "chars": 14750,
    "preview": "File: Abstract.c.kt - 1d59066bffbd812bda005664a647b642\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject\n    decl"
  },
  {
    "path": "grammar/testData/diagnostics/AbstractAccessor.antlrtree.txt",
    "chars": 7724,
    "preview": "File: AbstractAccessor.kt - 0dc14db75b4f030d55b4337e405bf860\n  packageHeader\n  importList\n  topLevelObject\n    declarati"
  },
  {
    "path": "grammar/testData/diagnostics/AbstractInAbstractClass.antlrtree.txt",
    "chars": 48952,
    "preview": "File: AbstractInAbstractClass.kt - f330f7abc48344d5e2331c0165649d1d\n  NL(\"\\n\")\n  packageHeader\n    PACKAGE(\"package\")\n  "
  },
  {
    "path": "grammar/testData/diagnostics/AbstractInClass.antlrtree.txt",
    "chars": 49831,
    "preview": "File: AbstractInClass.kt - 0b3f5cf31761f3bc15c46f9cb3cf2061\n  NL(\"\\n\")\n  packageHeader\n    PACKAGE(\"package\")\n    identi"
  },
  {
    "path": "grammar/testData/diagnostics/AbstractInTrait.antlrtree.txt",
    "chars": 49738,
    "preview": "File: AbstractInTrait.kt - 9339caa9e5d8c7bab0facd97d7d2767d\n  NL(\"\\n\")\n  packageHeader\n    PACKAGE(\"package\")\n    identi"
  },
  {
    "path": "grammar/testData/diagnostics/AnonymousInitializerVarAndConstructor.antlrtree.txt",
    "chars": 3723,
    "preview": "File: AnonymousInitializerVarAndConstructor.kt - 5b0762eea5f1ee4dd211ae314d5d73af\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  pac"
  },
  {
    "path": "grammar/testData/diagnostics/AnonymousInitializers.antlrtree.txt",
    "chars": 11350,
    "preview": "File: AnonymousInitializers.kt - 9c742b772222e9612bef487c061a254a\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObje"
  },
  {
    "path": "grammar/testData/diagnostics/AssignToArrayElement.antlrtree.txt",
    "chars": 24899,
    "preview": "File: AssignToArrayElement.kt - 0b443c2b058eaeca0b8178385135a904\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObjec"
  },
  {
    "path": "grammar/testData/diagnostics/AutoCreatedIt.antlrtree.txt",
    "chars": 60453,
    "preview": "File: AutoCreatedIt.kt - 16255624719e6f14b4e58d93cb28a689\n  packageHeader\n  importList\n  topLevelObject\n    declaration\n"
  },
  {
    "path": "grammar/testData/diagnostics/BacktickNames.antlrtree.txt",
    "chars": 72493,
    "preview": "File: BacktickNames.kt - 5e43fd112302a18ef7d562143608d43f\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\"
  },
  {
    "path": "grammar/testData/diagnostics/Basic.antlrtree.txt",
    "chars": 20106,
    "preview": "File: Basic.kt - ffc8c3f0460d2ff8a7fba644aed94323\n  packageHeader\n  importList\n  topLevelObject\n    declaration\n      fu"
  },
  {
    "path": "grammar/testData/diagnostics/BinaryCallsOnNullableValues.antlrtree.txt",
    "chars": 37167,
    "preview": "File: BinaryCallsOnNullableValues.kt - 3286a70749bd3fcb8f7702dc73e17727\n  packageHeader\n  importList\n  topLevelObject\n  "
  },
  {
    "path": "grammar/testData/diagnostics/Bounds.a.antlrtree.txt",
    "chars": 18583,
    "preview": "File: Bounds.a.kt - 64a7915ec6dc9ded98aed4fcf97bfcb0\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n      simpleI"
  },
  {
    "path": "grammar/testData/diagnostics/Bounds.b.antlrtree.txt",
    "chars": 29280,
    "preview": "File: Bounds.b.kt - 75b66acdf64f48194f463649d6a4f081\n  packageHeader\n  importList\n  topLevelObject\n    declaration\n     "
  },
  {
    "path": "grammar/testData/diagnostics/BreakContinue.antlrtree.txt",
    "chars": 139373,
    "preview": "File: BreakContinue.kt - 93ceae9127a5fc6c1b472929a4ed921d\n  packageHeader\n  importList\n  topLevelObject\n    declaration\n"
  },
  {
    "path": "grammar/testData/diagnostics/BreakContinueInWhen_after.antlrtree.txt",
    "chars": 163376,
    "preview": "File: BreakContinueInWhen_after.kt - 9261914a8cf8c785889959c94104f9eb\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList"
  },
  {
    "path": "grammar/testData/diagnostics/BreakContinueInWhen_before.antlrtree.txt",
    "chars": 115841,
    "preview": "File: BreakContinueInWhen_before.kt - d36d21d00790799e26e64df6465eaf90\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importLis"
  },
  {
    "path": "grammar/testData/diagnostics/Builders.a.antlrtree.txt",
    "chars": 369437,
    "preview": "File: Builders.a.kt - c3470fb71c965489f2d0c759f5e7a86b\n  NL(\"\\n\")\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n"
  },
  {
    "path": "grammar/testData/diagnostics/Casts.antlrtree.txt",
    "chars": 72420,
    "preview": "File: Casts.kt - f170e1212ee14d5edba6af82b36b4749\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject\n  "
  },
  {
    "path": "grammar/testData/diagnostics/CharacterLiterals.antlrtree.txt",
    "chars": 1669,
    "preview": "File: CharacterLiterals.kt - dce7c3b2ff711fbac1831cfbdd64208a (WITH_ERRORS)\n  packageHeader\n  importList\n  topLevelObjec"
  },
  {
    "path": "grammar/testData/diagnostics/CompareToWithErrorType.antlrtree.txt",
    "chars": 4837,
    "preview": "File: CompareToWithErrorType.kt - 022cfdd71389b0a2ddaf15304fac4695\n  packageHeader\n  importList\n  topLevelObject\n    dec"
  },
  {
    "path": "grammar/testData/diagnostics/Constants.antlrtree.txt",
    "chars": 151940,
    "preview": "File: Constants.kt - bda7bfc6ea91e5ba2ff81643a6c85e68\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObjec"
  },
  {
    "path": "grammar/testData/diagnostics/Constructors.antlrtree.txt",
    "chars": 14337,
    "preview": "File: Constructors.kt - f788ad0a39e2a89d02a61f6c74962359 (WITH_ERRORS)\n  packageHeader\n  importList\n  topLevelObject\n   "
  },
  {
    "path": "grammar/testData/diagnostics/ConstructorsOfPrimitives.antlrtree.txt",
    "chars": 10735,
    "preview": "File: ConstructorsOfPrimitives.kt - dd2396edc1df67140f6e0a4a7d588e48\n  packageHeader\n  importList\n  topLevelObject\n    d"
  },
  {
    "path": "grammar/testData/diagnostics/CovariantOverrideType.antlrtree.txt",
    "chars": 20295,
    "preview": "File: CovariantOverrideType.kt - 94e24508b08cd92765d50ac51c1ae935\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObje"
  },
  {
    "path": "grammar/testData/diagnostics/DefaultValueForParameterInFunctionType.antlrtree.txt",
    "chars": 13292,
    "preview": "File: DefaultValueForParameterInFunctionType.kt - fd66b4d7f802347ea5ebfbf67133cfc3 (WITH_ERRORS)\n  NL(\"\\n\")\n  NL(\"\\n\")\n "
  },
  {
    "path": "grammar/testData/diagnostics/DefaultValuesCheckWithoutBody.antlrtree.txt",
    "chars": 9433,
    "preview": "File: DefaultValuesCheckWithoutBody.kt - 0c44ee3a78a4ec651a067f09503a702b\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topL"
  },
  {
    "path": "grammar/testData/diagnostics/DefaultValuesTypechecking.antlrtree.txt",
    "chars": 59817,
    "preview": "File: DefaultValuesTypechecking.kt - b4cea46ed48599c6ad967c36e15eb5b2\n  packageHeader\n  importList\n  topLevelObject\n    "
  },
  {
    "path": "grammar/testData/diagnostics/DeferredTypes.antlrtree.txt",
    "chars": 2344,
    "preview": "File: DeferredTypes.kt - acbcab50024fe0974d8e971102b93cab\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelO"
  },
  {
    "path": "grammar/testData/diagnostics/DeprecatedGetSetPropertyDelegateConvention.antlrtree.txt",
    "chars": 67754,
    "preview": "File: DeprecatedGetSetPropertyDelegateConvention.kt - 41a1a8777a28a6877c03b5f074256c94\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHe"
  },
  {
    "path": "grammar/testData/diagnostics/DeprecatedUnaryOperatorConventions.antlrtree.txt",
    "chars": 28695,
    "preview": "File: DeprecatedUnaryOperatorConventions.kt - 933d8dab5d362e83aa16b80aae9d8d93\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  i"
  },
  {
    "path": "grammar/testData/diagnostics/DiamondFunction.antlrtree.txt",
    "chars": 3699,
    "preview": "File: DiamondFunction.kt - 860904ed705890d3e520aa1744af5254\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject\n   "
  },
  {
    "path": "grammar/testData/diagnostics/DiamondFunctionGeneric.antlrtree.txt",
    "chars": 5802,
    "preview": "File: DiamondFunctionGeneric.kt - adbf7d276a5b008b43f2db179d76e986\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObj"
  },
  {
    "path": "grammar/testData/diagnostics/DiamondProperty.antlrtree.txt",
    "chars": 4584,
    "preview": "File: DiamondProperty.kt - 8b1a930c6c9ab0783099d2c2f91248b4\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject\n   "
  },
  {
    "path": "grammar/testData/diagnostics/Dollar.antlrtree.txt",
    "chars": 8059,
    "preview": "File: Dollar.kt - 2395501cfbd6b043cf8642ac4cdc0ce6\n  NL(\"\\n\")\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n    "
  },
  {
    "path": "grammar/testData/diagnostics/EnumEntryAsType.antlrtree.txt",
    "chars": 71332,
    "preview": "File: EnumEntryAsType.kt - 28ff420512194d935c74950eb9cb04b6\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLeve"
  },
  {
    "path": "grammar/testData/diagnostics/ExtensionCallInvoke.antlrtree.txt",
    "chars": 9935,
    "preview": "File: ExtensionCallInvoke.kt - 497c938e806c0eb7827d5a16d860aa51\n  packageHeader\n  importList\n  topLevelObject\n    declar"
  },
  {
    "path": "grammar/testData/diagnostics/ExternalAccessors.antlrtree.txt",
    "chars": 4079,
    "preview": "File: ExternalAccessors.kt - 7d9a844917a0c99ba5b41aed82e7f133\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importL"
  },
  {
    "path": "grammar/testData/diagnostics/ExternalAndAbstract.antlrtree.txt",
    "chars": 2443,
    "preview": "File: ExternalAndAbstract.kt - a8825ec1e5974e8def10814960039b2d\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject"
  },
  {
    "path": "grammar/testData/diagnostics/ForRangeConventions.antlrtree.txt",
    "chars": 57583,
    "preview": "File: ForRangeConventions.kt - 5c4f48709f115effb9fb949ee212b9d3\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n    i"
  },
  {
    "path": "grammar/testData/diagnostics/FreeFunctionCalledAsExtension.antlrtree.txt",
    "chars": 7384,
    "preview": "File: FreeFunctionCalledAsExtension.kt - b22c92c2d9fbd292bc12c2de13f10269\n  packageHeader\n  importList\n  topLevelObject\n"
  },
  {
    "path": "grammar/testData/diagnostics/FreeFunctionCalledAsExtension.reversed.antlrtree.txt",
    "chars": 7393,
    "preview": "File: FreeFunctionCalledAsExtension.reversed.kt - b22c92c2d9fbd292bc12c2de13f10269\n  packageHeader\n  importList\n  topLev"
  },
  {
    "path": "grammar/testData/diagnostics/FunctionCalleeExpressions.antlrtree.txt",
    "chars": 100736,
    "preview": "File: FunctionCalleeExpressions.kt - d61ea8cba7585448c1096b67ca93fa8d (WITH_ERRORS)\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeade"
  },
  {
    "path": "grammar/testData/diagnostics/FunctionParameterWithoutType.antlrtree.txt",
    "chars": 6387,
    "preview": "File: FunctionParameterWithoutType.kt - ee789bdb529ef71cec4c3ba6c991e3b7 (WITH_ERRORS)\n  NL(\"\\n\")\n  packageHeader\n  impo"
  },
  {
    "path": "grammar/testData/diagnostics/FunctionReturnTypes.antlrtree.txt",
    "chars": 388773,
    "preview": "File: FunctionReturnTypes.kt - ef8a86ead961d128fac128d93e8a799b\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  top"
  },
  {
    "path": "grammar/testData/diagnostics/GenericArgumentConsistency.a.antlrtree.txt",
    "chars": 11306,
    "preview": "File: GenericArgumentConsistency.a.kt - bdf031ae73445d31de726632eff8232a\n  packageHeader\n  importList\n  topLevelObject\n "
  },
  {
    "path": "grammar/testData/diagnostics/GenericArgumentConsistency.b.antlrtree.txt",
    "chars": 4350,
    "preview": "File: GenericArgumentConsistency.b.kt - f9fa3e90d75ca4717baeb01645f76073\n  packageHeader\n    PACKAGE(\"package\")\n    iden"
  },
  {
    "path": "grammar/testData/diagnostics/GenericArgumentConsistency.c.antlrtree.txt",
    "chars": 4351,
    "preview": "File: GenericArgumentConsistency.c.kt - 95863948bb3f94d6a5c21d0d98951a29\n  packageHeader\n    PACKAGE(\"package\")\n    iden"
  },
  {
    "path": "grammar/testData/diagnostics/GenericArgumentConsistency.d.antlrtree.txt",
    "chars": 4349,
    "preview": "File: GenericArgumentConsistency.d.kt - e702ed55743eab3546753d40f9b92b52\n  packageHeader\n    PACKAGE(\"package\")\n    iden"
  },
  {
    "path": "grammar/testData/diagnostics/GenericArgumentConsistency.e.antlrtree.txt",
    "chars": 4350,
    "preview": "File: GenericArgumentConsistency.e.kt - 17707d4db7a4af2859adea5ef5341db8\n  packageHeader\n    PACKAGE(\"package\")\n    iden"
  },
  {
    "path": "grammar/testData/diagnostics/GenericArgumentConsistency.f.antlrtree.txt",
    "chars": 5648,
    "preview": "File: GenericArgumentConsistency.f.kt - 04c141c1079cc180c51c95221c75b1fe\n  packageHeader\n  importList\n  topLevelObject\n "
  },
  {
    "path": "grammar/testData/diagnostics/GenericFunctionIsLessSpecific.antlrtree.txt",
    "chars": 16782,
    "preview": "File: GenericFunctionIsLessSpecific.kt - 1c7634072fcc4ac05b9492c218e7825c\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  "
  },
  {
    "path": "grammar/testData/diagnostics/IdentityComparisonWithPrimitives.antlrtree.txt",
    "chars": 270705,
    "preview": "File: IdentityComparisonWithPrimitives.kt - c557097502fea09d6de6ed59fd89aaa3\n  packageHeader\n  importList\n  topLevelObje"
  },
  {
    "path": "grammar/testData/diagnostics/IncDec.antlrtree.txt",
    "chars": 40948,
    "preview": "File: IncDec.kt - fe1b27dcd36fbef2e75d8f916994b59f\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject\n    declarat"
  },
  {
    "path": "grammar/testData/diagnostics/IncDecOperatorsInExpectClass.antlrtree.txt",
    "chars": 2492,
    "preview": "File: IncDecOperatorsInExpectClass.kt - e344413571d82384a6a0eafbf202f52a\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  N"
  },
  {
    "path": "grammar/testData/diagnostics/IncorrectCharacterLiterals.antlrtree.txt",
    "chars": 5864,
    "preview": "File: IncorrectCharacterLiterals.kt - 4350acb7bcc6a4d2574d402359f710d3 (WITH_ERRORS)\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  "
  },
  {
    "path": "grammar/testData/diagnostics/InferNullabilityInThenBlock.antlrtree.txt",
    "chars": 12931,
    "preview": "File: InferNullabilityInThenBlock.kt - 586e9032f2086bab5312f49558ed48d2\n  packageHeader\n  importList\n  topLevelObject\n  "
  },
  {
    "path": "grammar/testData/diagnostics/Infix.antlrtree.txt",
    "chars": 83139,
    "preview": "File: Infix.kt - b3215dafe86fe1b8d005e69163235089\n  packageHeader\n  importList\n  topLevelObject\n    declaration\n      cl"
  },
  {
    "path": "grammar/testData/diagnostics/InfixModifierApplicability.antlrtree.txt",
    "chars": 27504,
    "preview": "File: InfixModifierApplicability.kt - f04724d044fb5c88ec3758aa3a32c407\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importLis"
  },
  {
    "path": "grammar/testData/diagnostics/InvokeAndRecursiveResolve.antlrtree.txt",
    "chars": 12065,
    "preview": "File: InvokeAndRecursiveResolve.kt - c7cb0b1bb974a08c63e0891cd6b03637\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList"
  },
  {
    "path": "grammar/testData/diagnostics/IsExpressions.KotlinFile.antlrtree.txt",
    "chars": 23047,
    "preview": "File: IsExpressions.KotlinFile.kt - 921b40cab3833d2806f514eb57672a7f\n  packageHeader\n  importList\n  topLevelObject\n    d"
  },
  {
    "path": "grammar/testData/diagnostics/LValueAssignment.antlrtree.txt",
    "chars": 104670,
    "preview": "File: LValueAssignment.kt - 8ecdf806019f2b18dcfb685364cf61dc (WITH_ERRORS)\n  packageHeader\n    PACKAGE(\"package\")\n    id"
  },
  {
    "path": "grammar/testData/diagnostics/LValueAssignment.diff",
    "chars": 56,
    "preview": "Needs labels on arbitrary expressions to parse correctly"
  },
  {
    "path": "grammar/testData/diagnostics/LiteralAsResult.antlrtree.txt",
    "chars": 2936,
    "preview": "File: LiteralAsResult.kt - f563d7be2401ce8780752f11b8e4f030\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importLis"
  },
  {
    "path": "grammar/testData/diagnostics/LocalClassAndShortSubpackageNames.A.antlrtree.txt",
    "chars": 484,
    "preview": "File: LocalClassAndShortSubpackageNames.A.kt - dce64dce79ea717231548563345380fe\n  packageHeader\n    PACKAGE(\"package\")\n "
  },
  {
    "path": "grammar/testData/diagnostics/LocalClassAndShortSubpackageNames.B.antlrtree.txt",
    "chars": 6546,
    "preview": "File: LocalClassAndShortSubpackageNames.B.kt - e2cb8f98c53451ce23b676f1de5e84d6\n  packageHeader\n    PACKAGE(\"package\")\n "
  },
  {
    "path": "grammar/testData/diagnostics/MultilineStringTemplates.antlrtree.txt",
    "chars": 111356,
    "preview": "File: MultilineStringTemplates.kt - ac1400d8ddba1523c1e8c2b2d9228d6a\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelO"
  },
  {
    "path": "grammar/testData/diagnostics/MultipleBounds.antlrtree.txt",
    "chars": 54264,
    "preview": "File: MultipleBounds.kt - 280448b73eff2c81165b46a718f80db4\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n      s"
  },
  {
    "path": "grammar/testData/diagnostics/NamedFunctionTypeParameterInSupertype.antlrtree.txt",
    "chars": 4747,
    "preview": "File: NamedFunctionTypeParameterInSupertype.kt - be4ec0c513c4d410e24cdaf71e31f9aa\n  packageHeader\n  importList\n  topLeve"
  },
  {
    "path": "grammar/testData/diagnostics/Nullability.antlrtree.txt",
    "chars": 756607,
    "preview": "File: Nullability.kt - 8e8fd46dca6cf845f3a3a76ad10a0238\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObj"
  },
  {
    "path": "grammar/testData/diagnostics/NumberPrefixAndSuffix.antlrtree.txt",
    "chars": 64212,
    "preview": "File: NumberPrefixAndSuffix.kt - 209ffef993dda9b8d7ae53fa451c30f4\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  t"
  },
  {
    "path": "grammar/testData/diagnostics/ObjectWithConstructor.antlrtree.txt",
    "chars": 5679,
    "preview": "File: ObjectWithConstructor.kt - e8641c9451b5e1d5b4466be03cb1d125 (WITH_ERRORS)\n  packageHeader\n  importList\n  topLevelO"
  },
  {
    "path": "grammar/testData/diagnostics/OperatorChecks.antlrtree.txt",
    "chars": 176669,
    "preview": "File: OperatorChecks.kt - 39f7bbf616551f3f454b681e0bf66b5c\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n    import"
  },
  {
    "path": "grammar/testData/diagnostics/Operators.antlrtree.txt",
    "chars": 144735,
    "preview": "File: Operators.kt - 569cd625293e85b6629e705dd81bef50\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObjec"
  },
  {
    "path": "grammar/testData/diagnostics/OperatorsWithWrongNames.antlrtree.txt",
    "chars": 12314,
    "preview": "File: OperatorsWithWrongNames.kt - 4c861a0d970d0493b0530d066df7b538\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelOb"
  },
  {
    "path": "grammar/testData/diagnostics/OverrideFunctionWithParamDefaultValue.antlrtree.txt",
    "chars": 8187,
    "preview": "File: OverrideFunctionWithParamDefaultValue.kt - 25963097181200a95419d4587a3de99a\n  NL(\"\\n\")\n  packageHeader\n  importLis"
  },
  {
    "path": "grammar/testData/diagnostics/OverridenFunctionAndSpecifiedTypeParameter.antlrtree.txt",
    "chars": 9955,
    "preview": "File: OverridenFunctionAndSpecifiedTypeParameter.kt - 955503911cff2998c3e877708bb462d6\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHe"
  },
  {
    "path": "grammar/testData/diagnostics/OverridenSetterVisibility.antlrtree.txt",
    "chars": 18477,
    "preview": "File: OverridenSetterVisibility.kt - 12441df8a65d2fe172720cd2d27bc894\n  packageHeader\n  importList\n  topLevelObject\n    "
  },
  {
    "path": "grammar/testData/diagnostics/OverridingVarByVal.antlrtree.txt",
    "chars": 8046,
    "preview": "File: OverridingVarByVal.kt - ffdf4937405f7e097350663f82f4df82\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject\n"
  },
  {
    "path": "grammar/testData/diagnostics/PackageInExpressionPosition.antlrtree.txt",
    "chars": 29816,
    "preview": "File: PackageInExpressionPosition.kt - 5e9e4b5ff24a245a5eeb03e058291c83\n  NL(\"\\n\")\n  packageHeader\n    PACKAGE(\"package\""
  },
  {
    "path": "grammar/testData/diagnostics/PackageInTypePosition.a.antlrtree.txt",
    "chars": 238,
    "preview": "File: PackageInTypePosition.a.kt - 96c98b8667d005ddfc3cea5df8800fdf\n  packageHeader\n    PACKAGE(\"package\")\n    identifie"
  },
  {
    "path": "grammar/testData/diagnostics/PackageInTypePosition.b.antlrtree.txt",
    "chars": 2222,
    "preview": "File: PackageInTypePosition.b.kt - 13098159a5a17fae26b8db848d86c9c0\n  packageHeader\n  importList\n  topLevelObject\n    de"
  },
  {
    "path": "grammar/testData/diagnostics/PackageQualified.a.antlrtree.txt",
    "chars": 5772,
    "preview": "File: PackageQualified.a.kt - 155295d14891ef6a3f7560a99c742295\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n   "
  },
  {
    "path": "grammar/testData/diagnostics/PackageQualified.b.antlrtree.txt",
    "chars": 2014,
    "preview": "File: PackageQualified.b.kt - e529f683969648b19955c79414bff65f\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n   "
  },
  {
    "path": "grammar/testData/diagnostics/PackageQualified.c.antlrtree.txt",
    "chars": 3933,
    "preview": "File: PackageQualified.c.kt - 9659d49d583de1032dd7fed9f2601726\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n   "
  },
  {
    "path": "grammar/testData/diagnostics/PackageQualified.d.antlrtree.txt",
    "chars": 70528,
    "preview": "File: PackageQualified.d.kt - 6ce7455268726fa122937d8147822ecf\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n   "
  },
  {
    "path": "grammar/testData/diagnostics/PrimaryConstructors.antlrtree.txt",
    "chars": 17859,
    "preview": "File: PrimaryConstructors.kt - 6470846d984fe0ba36ae638d78831d66\n  NL(\"\\n\")\n  packageHeader\n  importList\n  topLevelObject"
  },
  {
    "path": "grammar/testData/diagnostics/PrivateFromOuterPackage.a.antlrtree.txt",
    "chars": 950,
    "preview": "File: PrivateFromOuterPackage.a.kt - 8776257d69b450dc1c524040f0e37978\n  packageHeader\n    PACKAGE(\"package\")\n    identif"
  },
  {
    "path": "grammar/testData/diagnostics/PrivateFromOuterPackage.b.antlrtree.txt",
    "chars": 3863,
    "preview": "File: PrivateFromOuterPackage.b.kt - 686abf395955135d4f4fd910cb32393e\n  packageHeader\n    PACKAGE(\"package\")\n    identif"
  },
  {
    "path": "grammar/testData/diagnostics/PrivateFromOuterPackage.c.antlrtree.txt",
    "chars": 3911,
    "preview": "File: PrivateFromOuterPackage.c.kt - b834880c278657c78d3e393df9a24521\n  packageHeader\n    PACKAGE(\"package\")\n    identif"
  },
  {
    "path": "grammar/testData/diagnostics/PrivateSetterForOverridden.antlrtree.txt",
    "chars": 34614,
    "preview": "File: PrivateSetterForOverridden.kt - 34a84caef1d4537ec381b745cf8f87e1\n  NL(\"\\n\")\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n"
  },
  {
    "path": "grammar/testData/diagnostics/ProcessingEmptyImport.antlrtree.txt",
    "chars": 253,
    "preview": "File: ProcessingEmptyImport.kt - a34fae7b98d638291063dea2c0de728c (WITH_ERRORS)\n  NL(\"\\n\")\n  packageHeader\n  importList\n"
  },
  {
    "path": "grammar/testData/diagnostics/ProjectionOnFunctionArgumentErrror.antlrtree.txt",
    "chars": 3536,
    "preview": "File: ProjectionOnFunctionArgumentErrror.kt - a8b47e6616c46da3a11e3994744f1d4d\n  packageHeader\n  importList\n  topLevelOb"
  },
  {
    "path": "grammar/testData/diagnostics/ProjectionsInSupertypes.antlrtree.txt",
    "chars": 6481,
    "preview": "File: ProjectionsInSupertypes.kt - 8c0a673d87d245615e7159c0689928dc (WITH_ERRORS)\n  NL(\"\\n\")\n  packageHeader\n  importLis"
  },
  {
    "path": "grammar/testData/diagnostics/Properties.antlrtree.txt",
    "chars": 22423,
    "preview": "File: Properties.kt - 553f01a8593677992ae3b39c41fdd57c\n  packageHeader\n  importList\n  topLevelObject\n    declaration\n   "
  },
  {
    "path": "grammar/testData/diagnostics/PropertyInitializers.antlrtree.txt",
    "chars": 12443,
    "preview": "File: PropertyInitializers.kt - 0eb8878e3174e8a09885692dfa65c84b\n  NL(\"\\n\")\n  NL(\"\\n\")\n  packageHeader\n  importList\n  to"
  },
  {
    "path": "grammar/testData/diagnostics/QualifiedExpressions.antlrtree.txt",
    "chars": 25035,
    "preview": "File: QualifiedExpressions.kt - 8dd51273f1992c0d5df303444943ad81\n  packageHeader\n    PACKAGE(\"package\")\n    identifier\n "
  },
  {
    "path": "grammar/testData/diagnostics/RecursiveResolve.antlrtree.txt",
    "chars": 120882,
    "preview": "File: RecursiveResolve.kt - 1667836b36bfcbacdc69206f990a81f7\n  packageHeader\n  importList\n  topLevelObject\n    declarati"
  }
]

// ... and 6726 more files (download for full content)

About this extraction

This page contains the full source code of the Kotlin/kotlin-spec GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6926 files (168.8 MB), approximately 26.7M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!