From f765457e5188166b4c3cb5908bd68d5ba56c2335 Mon Sep 17 00:00:00 2001 From: Kristoffer Andersen Date: Mon, 1 Aug 2022 17:46:54 +0200 Subject: [PATCH] [K2] isUsedAsExpression analysis --- .../KtFe10ExpressionInfoProvider.kt | 11 +- ...ModuleIsUsedAsExpressionTestGenerated.java | 2004 +++++++++++++++++ ...ceModuleHLExpressionTypeTestGenerated.java | 6 + .../components/KtFirExpressionInfoProvider.kt | 406 +++- .../components/KtFirExpressionTypeProvider.kt | 7 +- ...ModuleIsUsedAsExpressionTestGenerated.java | 2004 +++++++++++++++++ ...ModuleIsUsedAsExpressionTestGenerated.java | 2004 +++++++++++++++++ ...ceModuleHLExpressionTypeTestGenerated.java | 6 + ...ceModuleHLExpressionTypeTestGenerated.java | 6 + .../AbstractIsUsedAsExpressionTest.kt | 35 + .../AbstractHLExpressionTypeTest.kt | 9 +- ...ModuleIsUsedAsExpressionTestGenerated.java | 2004 +++++++++++++++++ ...ceModuleHLExpressionTypeTestGenerated.java | 6 + .../components/KtExpressionInfoProvider.kt | 26 + .../isUsedAsExpression/annotatedExpr.kt | 3 + .../isUsedAsExpression/annotatedExpr.txt | 3 + .../annotatedExprAnnotation.kt | 3 + .../annotatedExprAnnotation.txt | 3 + .../isUsedAsExpression/annotatedExprBody.kt | 3 + .../isUsedAsExpression/annotatedExprBody.txt | 3 + .../annotatedExprBodyUnused.kt | 3 + .../annotatedExprBodyUnused.txt | 3 + .../isUsedAsExpression/annotationArg.kt | 5 + .../isUsedAsExpression/annotationArg.txt | 3 + .../annotationCollectionLiteral.kt | 5 + .../annotationCollectionLiteral.txt | 3 + .../annotationCollectionLiteralEntry.kt | 5 + .../annotationCollectionLiteralEntry.txt | 3 + .../isUsedAsExpression/annotationName.kt | 5 + .../isUsedAsExpression/annotationName.txt | 3 + .../isUsedAsExpression/argument.kt | 6 + .../isUsedAsExpression/argument.txt | 3 + .../isUsedAsExpression/arrayAccess.kt | 3 + .../isUsedAsExpression/arrayAccess.txt | 3 + .../arrayAccessComputedIndex.kt | 3 + .../arrayAccessComputedIndex.txt | 3 + .../arrayAccessComputedIndexIndex.kt | 3 + .../arrayAccessComputedIndexIndex.txt | 3 + .../isUsedAsExpression/arrayAccessIndex.kt | 3 + .../isUsedAsExpression/arrayAccessIndex.txt | 3 + .../isUsedAsExpression/arrayAccessLHS.kt | 3 + .../isUsedAsExpression/arrayAccessLHS.txt | 3 + ...arrayAccessModificationComputedReceiver.kt | 3 + ...rrayAccessModificationComputedReceiver.txt | 3 + ...essModificationComputedReceiverReceiver.kt | 3 + ...ssModificationComputedReceiverReceiver.txt | 3 + ...dificationComputedReceiverReceiverInner.kt | 3 + ...ificationComputedReceiverReceiverInner.txt | 3 + .../arrayAccessModificationReceiver.kt | 3 + .../arrayAccessModificationReceiver.txt | 3 + .../isUsedAsExpression/arrayAccessUnused.kt | 3 + .../isUsedAsExpression/arrayAccessUnused.txt | 3 + .../isUsedAsExpression/asExpression.kt | 3 + .../isUsedAsExpression/asExpression.txt | 3 + .../asExpressionElvisCall.kt | 3 + .../asExpressionElvisCall.txt | 3 + .../asExpressionElvisCallLHS.kt | 3 + .../asExpressionElvisCallLHS.txt | 3 + .../asExpressionElvisCallRHS.kt | 3 + .../asExpressionElvisCallRHS.txt | 3 + .../asExpressionElvisCallRHSUsed.kt | 3 + .../asExpressionElvisCallRHSUsed.txt | 3 + .../asExpressionElvisCallUsed.kt | 3 + .../asExpressionElvisCallUsed.txt | 3 + .../isUsedAsExpression/asExpressionInner.kt | 3 + .../isUsedAsExpression/asExpressionInner.txt | 3 + .../isUsedAsExpression/asExpressionLHS.kt | 3 + .../isUsedAsExpression/asExpressionLHS.txt | 3 + .../asExpressionNullable.kt | 3 + .../asExpressionNullable.txt | 3 + .../asExpressionNullableInner.kt | 3 + .../asExpressionNullableInner.txt | 3 + .../asExpressionNullableLet.kt | 5 + .../asExpressionNullableLet.txt | 5 + .../asExpressionNullableLetBlock.kt | 5 + .../asExpressionNullableLetBlock.txt | 5 + .../asExpressionNullableLetBlockUsed.kt | 5 + .../asExpressionNullableLetBlockUsed.txt | 5 + .../asExpressionNullableLetExplicitIt.kt | 5 + .../asExpressionNullableLetExplicitIt.txt | 3 + .../asExpressionNullableLetIt.kt | 5 + .../asExpressionNullableLetIt.txt | 3 + .../asExpressionNullableLetName.kt | 5 + .../asExpressionNullableLetName.txt | 3 + .../asExpressionNullableLetUsed.kt | 5 + .../asExpressionNullableLetUsed.txt | 5 + .../isUsedAsExpression/asExpressionRHS.kt | 3 + .../isUsedAsExpression/asExpressionRHS.txt | 3 + .../isUsedAsExpression/asExpressionUsed.kt | 3 + .../isUsedAsExpression/asExpressionUsed.txt | 3 + .../isUsedAsExpression/backingField.kt | 4 + .../isUsedAsExpression/backingField.txt | 4 + .../isUsedAsExpression/backingFieldDecl.kt | 4 + .../isUsedAsExpression/backingFieldDecl.txt | 3 + .../backingFieldInitializer.kt | 7 + .../backingFieldInitializer.txt | 3 + .../isUsedAsExpression/boolean_else.txt | 5 + .../isUsedAsExpression/break.kt | 9 + .../isUsedAsExpression/break.txt | 3 + .../isUsedAsExpression/callReceiver.kt | 4 + .../isUsedAsExpression/callReceiver.txt | 3 + .../callReceiverInParens.kt | 4 + .../callReceiverInParens.txt | 3 + .../isUsedAsExpression/callReceiverParens.kt | 4 + .../isUsedAsExpression/callReceiverParens.txt | 3 + .../isUsedAsExpression/callableReference.kt | 6 + .../isUsedAsExpression/callableReference.txt | 3 + .../callableReferenceDirectCall.kt | 6 + .../callableReferenceDirectCall.txt | 3 + .../callableReferenceIndirectCall.kt | 6 + .../callableReferenceIndirectCall.txt | 3 + .../callableReferenceLHS.kt | 6 + .../callableReferenceLHS.txt | 3 + .../callableReferenceRHS.kt | 6 + .../callableReferenceRHS.txt | 3 + .../callableReferenceRHSUnused.kt | 3 + .../callableReferenceRHSUnused.txt | 3 + .../callableReferenceStaticLHS.kt | 6 + .../callableReferenceStaticLHS.txt | 3 + .../callableReferenceStaticLHSDirectCall.kt | 6 + .../callableReferenceStaticLHSDirectCall.txt | 3 + .../callableReferenceStaticLHSIndirectCall.kt | 6 + ...callableReferenceStaticLHSIndirectCall.txt | 3 + .../callableReferenceStaticLHSLHS.kt | 6 + .../callableReferenceStaticLHSLHS.txt | 3 + .../callableReferenceStaticLHSRHS.kt | 6 + .../callableReferenceStaticLHSRHS.txt | 3 + .../callableReferenceStaticLHSRHSUnused.kt | 3 + .../callableReferenceStaticLHSRHSUnused.txt | 3 + .../callableReferenceUnused.kt | 3 + .../callableReferenceUnused.txt | 3 + .../classConstructorInvocation.kt | 17 + .../classConstructorInvocation.txt | 3 + .../classConstructorInvocationName.kt | 17 + .../classConstructorInvocationName.txt | 3 + .../isUsedAsExpression/classDecl.kt | 25 + .../isUsedAsExpression/classDecl.txt | 23 + .../classDeclImplementsInterface.kt | 25 + .../classDeclImplementsInterface.txt | 3 + .../classDeclImplementsTypeParameter.kt | 25 + .../classDeclImplementsTypeParameter.txt | 3 + .../isUsedAsExpression/classDeclTypeParam.kt | 25 + .../isUsedAsExpression/classDeclTypeParam.txt | 3 + .../isUsedAsExpression/classInitBlock.kt | 5 + .../isUsedAsExpression/classInitBlock.txt | 5 + .../isUsedAsExpression/classInitExpr.kt | 5 + .../isUsedAsExpression/classInitExpr.txt | 3 + .../isUsedAsExpression/classInitializer.kt | 5 + .../isUsedAsExpression/classInitializer.txt | 5 + .../classLiteralExpressionComputedVar.kt | 3 + .../classLiteralExpressionComputedVar.txt | 3 + ...teralExpressionComputedVarParenthesized.kt | 2 + ...eralExpressionComputedVarParenthesized.txt | 3 + ...classLiteralExpressionComputedVarUnused.kt | 3 + ...lassLiteralExpressionComputedVarUnused.txt | 3 + ...ressionComputedVarUnusedWholeExpression.kt | 3 + ...essionComputedVarUnusedWholeExpression.txt | 3 + ...ssLiteralExpressionLHSParenthesizedUsed.kt | 6 + ...sLiteralExpressionLHSParenthesizedUsed.txt | 3 + .../classLiteralExpressionLHSUsed.kt | 3 + .../classLiteralExpressionLHSUsed.txt | 3 + .../classLiteralExpressionUnused.kt | 3 + .../classLiteralExpressionUnused.txt | 3 + .../classLiteralExpressionUnusedLHS.kt | 3 + .../classLiteralExpressionUnusedLHS.txt | 3 + .../classLiteralExpressionUsed.kt | 3 + .../classLiteralExpressionUsed.txt | 3 + .../collectionLiteralInvalidUnused.kt | 3 + .../collectionLiteralInvalidUnused.txt | 3 + .../collectionLiteralInvalidUsed.kt | 3 + .../collectionLiteralInvalidUsed.txt | 3 + .../isUsedAsExpression/companionObjectDecl.kt | 25 + .../companionObjectDecl.txt | 5 + .../isUsedAsExpression/compoundAssignRHS.kt | 17 + .../isUsedAsExpression/compoundAssignRHS.txt | 3 + .../compoundAssignmentException.kt | 9 + .../compoundAssignmentException.txt | 3 + .../compoundAssignmentExceptionCustom.kt | 11 + .../compoundAssignmentExceptionCustom.txt | 3 + .../compoundAssignmentToProperty.kt | 21 + .../compoundAssignmentToProperty.txt | 3 + .../compoundAssignmentToPropertyLHS.kt | 17 + .../compoundAssignmentToPropertyLHS.txt | 3 + .../compoundAssignmentToPropertyRHS.kt | 17 + .../compoundAssignmentToPropertyRHS.txt | 3 + .../compoundAssignmentToPropertyReceiver.kt | 17 + .../compoundAssignmentToPropertyReceiver.txt | 3 + .../compoundAssignmentToPropertyReference.kt | 17 + .../compoundAssignmentToPropertyReference.txt | 3 + .../computedClassExpression.kt | 3 + .../computedClassExpression.txt | 3 + .../computedClassExpressionLHS.kt | 3 + .../computedClassExpressionLHS.txt | 3 + .../isUsedAsExpression/constructorCallee.kt | 5 + .../isUsedAsExpression/constructorCallee.txt | 3 + .../constructorCalleeUsed.kt | 5 + .../constructorCalleeUsed.txt | 3 + ...constructorInvocationAsPropertyReceiver.kt | 17 + ...onstructorInvocationAsPropertyReceiver.txt | 3 + .../constructorPrimarySuperCall.kt | 3 + .../constructorPrimarySuperCall.txt | 3 + .../constructorSecondary.kt | 5 + .../constructorSecondary.txt | 5 + .../constructorSecondaryBlock.kt | 5 + .../constructorSecondaryBlock.txt | 5 + .../constructorSecondaryBlockBody.kt | 5 + .../constructorSecondaryBlockBody.txt | 3 + .../constructorSecondaryDefaultArg.kt | 5 + .../constructorSecondaryDefaultArg.txt | 3 + .../constructorSuperReference.kt | 5 + .../constructorSuperReference.txt | 3 + .../constructorSuperReferenceArg.kt | 5 + .../constructorSuperReferenceArg.txt | 3 + .../isUsedAsExpression/continue.kt | 9 + .../isUsedAsExpression/continue.txt | 3 + .../defaultExtensionLambda.kt | 3 + .../defaultExtensionLambda.txt | 3 + ...aultExtensionLambdaPropertyAccessOnThis.kt | 3 + ...ultExtensionLambdaPropertyAccessOnThis.txt | 4 + .../defaultExtensionLambdaPropertyOnThis.kt | 3 + .../defaultExtensionLambdaPropertyOnThis.txt | 3 + .../defaultExtensionLambdaThis.kt | 3 + .../defaultExtensionLambdaThis.txt | 3 + .../isUsedAsExpression/default_parameter.kt | 3 + .../isUsedAsExpression/default_parameter.txt | 3 + .../isUsedAsExpression/destructuringDecl.kt | 8 + .../isUsedAsExpression/destructuringDecl.txt | 3 + .../destructuringDeclInForLoop.kt | 5 + .../destructuringDeclInForLoop.txt | 3 + .../destructuringDeclInForLoopRHS.kt | 5 + .../destructuringDeclInForLoopRHS.txt | 3 + .../destructuringDeclInForLoopVariable.kt | 5 + .../destructuringDeclInForLoopVariable.txt | 3 + .../destructuringDeclLHSVar.kt | 8 + .../destructuringDeclLHSVar.txt | 3 + .../destructuringDeclNested.txt | 3 + .../destructuringDeclRHS.kt | 8 + .../destructuringDeclRHS.txt | 3 + .../destructuringDeclType.kt | 8 + .../destructuringDeclType.txt | 3 + .../isUsedAsExpression/doWhileCondition.kt | 6 + .../isUsedAsExpression/doWhileCondition.txt | 3 + .../isUsedAsExpression/doWhileExpr.kt | 5 + .../isUsedAsExpression/doWhileExpr.txt | 5 + .../isUsedAsExpression/doWhileLoopBlock.kt | 6 + .../isUsedAsExpression/doWhileLoopBlock.txt | 5 + .../isUsedAsExpression/doubleColonClassLHS.kt | 8 + .../doubleColonClassLHS.txt | 3 + .../doubleColonCompanionLHS.kt | 10 + .../doubleColonCompanionLHS.txt | 3 + .../isUsedAsExpression/doubleColonLHS.kt | 3 + .../isUsedAsExpression/doubleColonLHS.txt | 3 + .../doubleColonUnqualifiedCompanionLHS.kt | 7 + .../doubleColonUnqualifiedCompanionLHS.txt | 3 + ...lonUnqualifiedCompanionLHSParenthesized.kt | 7 + ...onUnqualifiedCompanionLHSParenthesized.txt | 3 + .../isUsedAsExpression/elvisWithBreak.kt | 9 + .../isUsedAsExpression/elvisWithBreak.txt | 3 + .../isUsedAsExpression/elvisWithContinue.kt | 9 + .../isUsedAsExpression/elvisWithContinue.txt | 3 + .../isUsedAsExpression/elvisWithReturn.kt | 7 + .../isUsedAsExpression/elvisWithReturn.txt | 3 + .../isUsedAsExpression/elvisWithThrow.kt | 7 + .../isUsedAsExpression/elvisWithThrow.txt | 3 + .../isUsedAsExpression/enumDecl.kt | 5 + .../isUsedAsExpression/enumDecl.txt | 7 + .../isUsedAsExpression/enumDeclArg.kt | 5 + .../isUsedAsExpression/enumDeclArg.txt | 3 + .../isUsedAsExpression/enumDeclConstructor.kt | 9 + .../enumDeclConstructor.txt | 3 + .../enumDeclConstructorArg.kt | 10 + .../enumDeclConstructorArg.txt | 3 + .../enumDeclConstructorThis.kt | 9 + .../enumDeclConstructorThis.txt | 3 + .../enumDeclPrimaryConstructorArg.kt | 5 + .../enumDeclPrimaryConstructorArg.txt | 3 + .../enumDeclPrimaryConstructorArgList.kt | 5 + .../enumDeclPrimaryConstructorArgList.txt | 3 + .../expressionBodyLambdaReturningInt.kt | 3 + .../expressionBodyLambdaReturningInt.txt | 5 + .../expressionBodyUnitLambda.kt | 3 + .../expressionBodyUnitLambda.txt | 3 + .../extensionFunctionAnonymous.kt | 6 + .../extensionFunctionAnonymous.txt | 5 + .../extensionFunctionAnonymousReceiver.kt | 6 + .../extensionFunctionAnonymousReceiver.txt | 3 + .../isUsedAsExpression/forExpr.kt | 5 + .../isUsedAsExpression/forExpr.txt | 5 + .../isUsedAsExpression/forExprBlock.kt | 5 + .../isUsedAsExpression/forExprBlock.txt | 5 + .../isUsedAsExpression/forExprInvalid.kt | 5 + .../isUsedAsExpression/forExprInvalid.txt | 5 + .../isUsedAsExpression/forExprLoopVar.kt | 5 + .../isUsedAsExpression/forExprLoopVar.txt | 3 + .../isUsedAsExpression/forExprRangeExpr.kt | 5 + .../isUsedAsExpression/forExprRangeExpr.txt | 3 + .../forExprRangeExprUpperBound.kt | 5 + .../forExprRangeExprUpperBound.txt | 3 + .../isUsedAsExpression/forLoopInvalid.kt | 5 + .../isUsedAsExpression/forLoopInvalid.txt | 3 + .../isUsedAsExpression/functionLiteral.kt | 6 + .../isUsedAsExpression/functionLiteral.txt | 5 + .../functionLiteralExpressionBody.kt | 4 + .../functionLiteralExpressionBody.txt | 3 + .../functionLiteralExpressionBodyBody.kt | 4 + .../functionLiteralExpressionBodyBody.txt | 3 + .../functionLiteralExpressionBodyLambda.kt | 4 + .../functionLiteralExpressionBodyLambda.txt | 3 + ...unctionLiteralExpressionBodyLambdaBlock.kt | 4 + ...nctionLiteralExpressionBodyLambdaBlock.txt | 3 + ...onLiteralExpressionBodyLambdaBlockInner.kt | 4 + ...nLiteralExpressionBodyLambdaBlockInner.txt | 3 + ...teralExpressionBodyLambdaBlockInnerUnit.kt | 4 + ...eralExpressionBodyLambdaBlockInnerUnit.txt | 3 + ...alExpressionBodyLambdaTypeAnnotationLHS.kt | 4 + ...lExpressionBodyLambdaTypeAnnotationLHS.txt | 3 + ...alExpressionBodyLambdaTypeAnnotationRHS.kt | 4 + ...lExpressionBodyLambdaTypeAnnotationRHS.txt | 3 + .../functionLiteralExtensionReceiverType.kt | 3 + .../functionLiteralExtensionReceiverType.txt | 3 + .../isUsedAsExpression/ifBranches_unused.kt | 3 + .../isUsedAsExpression/ifBranches_unused.txt | 3 + .../isUsedAsExpression/ifBranches_used.kt | 3 + .../isUsedAsExpression/ifBranches_used.txt | 3 + .../isUsedAsExpression/ifConditionParens.kt | 9 + .../isUsedAsExpression/ifConditionParens.txt | 3 + .../isUsedAsExpression/if_subject.kt | 7 + .../isUsedAsExpression/if_subject.txt | 3 + .../isUsedAsExpression/implicitNullBlock.kt | 3 + .../isUsedAsExpression/implicitNullBlock.txt | 3 + .../isUsedAsExpression/implicitNullBlock2.kt | 1 + .../isUsedAsExpression/implicitNullBlock2.txt | 3 + .../implicitNullBlockMultiStatements.kt | 4 + .../implicitNullBlockMultiStatements.txt | 3 + .../initializer_when_branch.kt | 6 + .../initializer_when_branch.txt | 3 + .../initializer_when_branch_block.kt | 8 + .../initializer_when_branch_block.txt | 3 + .../initializer_when_branch_block_stmt.kt | 10 + .../initializer_when_branch_block_stmt.txt | 3 + .../isUsedAsExpression/innerClassDecl.kt | 25 + .../isUsedAsExpression/innerClassDecl.txt | 5 + .../isUsedAsExpression/interfaceMemberDecl.kt | 25 + .../interfaceMemberDecl.txt | 3 + .../invokedLocalVariable.kt | 4 + .../invokedLocalVariable.txt | 3 + .../isUsedAsExpression/isExpression.kt | 9 + .../isUsedAsExpression/isExpression.txt | 3 + .../isUsedAsExpression/isExpressionLHS.kt | 9 + .../isUsedAsExpression/isExpressionLHS.txt | 3 + .../isExpressionLHSInsideParens.kt | 9 + .../isExpressionLHSInsideParens.txt | 3 + .../isExpressionLHSParens.kt | 9 + .../isExpressionLHSParens.txt | 3 + .../isExpressionOperator.kt | 9 + .../isExpressionOperator.txt | 3 + .../isUsedAsExpression/isExpressionRHS.kt | 9 + .../isUsedAsExpression/isExpressionRHS.txt | 3 + .../isExpressionRHSInsideParens.kt | 9 + .../isExpressionRHSInsideParens.txt | 3 + .../isUsedAsExpression/isExpressionUnused.kt | 10 + .../isUsedAsExpression/isExpressionUnused.txt | 3 + .../isUsedAsExpression/labelledReturn.kt | 5 + .../isUsedAsExpression/labelledReturn.txt | 3 + .../isUsedAsExpression/labelledReturnLabel.kt | 5 + .../labelledReturnLabel.txt | 3 + .../isUsedAsExpression/labelledReturnValue.kt | 5 + .../labelledReturnValue.txt | 3 + .../isUsedAsExpression/labelledThis.kt | 5 + .../isUsedAsExpression/labelledThis.txt | 3 + .../isUsedAsExpression/labelledThisLabel.kt | 5 + .../isUsedAsExpression/labelledThisLabel.txt | 3 + .../isUsedAsExpression/lambdaWithArgs.kt | 6 + .../isUsedAsExpression/lambdaWithArgs.txt | 5 + .../isUsedAsExpression/lambdaWithArgsArgs.kt | 6 + .../isUsedAsExpression/lambdaWithArgsArgs.txt | 3 + .../isUsedAsExpression/lambdaWithArgsBody.kt | 6 + .../isUsedAsExpression/lambdaWithArgsBody.txt | 3 + .../isUsedAsExpression/lambda_unused.kt | 4 + .../isUsedAsExpression/lambda_unused.txt | 3 + .../lambda_unused_invoke.kt | 4 + .../lambda_unused_invoke.txt | 3 + .../isUsedAsExpression/localFunctionDecl.kt | 7 + .../isUsedAsExpression/localFunctionDecl.txt | 5 + .../isUsedAsExpression/loopLabel.kt | 8 + .../isUsedAsExpression/loopLabel.txt | 3 + .../isUsedAsExpression/loopLabelBreak.kt | 8 + .../isUsedAsExpression/loopLabelBreak.txt | 3 + .../isUsedAsExpression/loopLabelBreakLabel.kt | 8 + .../loopLabelBreakLabel.txt | 3 + .../isUsedAsExpression/loopLabelBreakUsed.kt | 8 + .../isUsedAsExpression/loopLabelBreakUsed.txt | 3 + .../isUsedAsExpression/memberFunctionDecl.kt | 25 + .../isUsedAsExpression/memberFunctionDecl.txt | 5 + .../isUsedAsExpression/nonunit_lambda.kt | 12 + .../isUsedAsExpression/nonunit_lambda.txt | 3 + .../nonunit_lambda_multiple_statements.kt | 15 + .../nonunit_lambda_multiple_statements.txt | 3 + .../isUsedAsExpression/objectDeclaration.kt | 5 + .../isUsedAsExpression/objectDeclaration.txt | 5 + .../objectDeclarationProperty.kt | 5 + .../objectDeclarationProperty.txt | 3 + .../isUsedAsExpression/objectLiteral.kt | 5 + .../isUsedAsExpression/objectLiteral.txt | 5 + .../isUsedAsExpression/objectLiteralMember.kt | 5 + .../objectLiteralMember.txt | 3 + .../isUsedAsExpression/object_unused.kt | 5 + .../isUsedAsExpression/object_unused.txt | 5 + .../isUsedAsExpression/object_used.kt | 5 + .../isUsedAsExpression/object_used.txt | 5 + .../isUsedAsExpression/parameterDecl.kt | 8 + .../isUsedAsExpression/parameterDecl.txt | 3 + .../isUsedAsExpression/parameterType.kt | 8 + .../isUsedAsExpression/parameterType.txt | 3 + .../postfixBangBangUnused.kt | 4 + .../postfixBangBangUnused.txt | 3 + .../postfixBangBangUnusedArg.kt | 4 + .../postfixBangBangUnusedArg.txt | 3 + .../postfixBangBangUnusedOp.kt | 4 + .../postfixBangBangUnusedOp.txt | 3 + .../isUsedAsExpression/postfixBangBangUsed.kt | 4 + .../postfixBangBangUsed.txt | 3 + .../postfixBangBangUsedOp.kt | 4 + .../postfixBangBangUsedOp.txt | 3 + .../postfixDecrementException.kt | 9 + .../postfixDecrementException.txt | 3 + .../postfixIncrementException.kt | 9 + .../postfixIncrementException.txt | 3 + .../postfixOperatorTechnicallyUnused.kt | 5 + .../postfixOperatorTechnicallyUnused.txt | 3 + .../isUsedAsExpression/postfixOperatorUsed.kt | 5 + .../postfixOperatorUsed.txt | 3 + .../postfixOperatorUsedArg.kt | 5 + .../postfixOperatorUsedArg.txt | 3 + .../postfixOperatorUsedOp.kt | 5 + .../postfixOperatorUsedOp.txt | 3 + .../isUsedAsExpression/prefixOperator.kt | 8 + .../isUsedAsExpression/prefixOperator.txt | 3 + .../isUsedAsExpression/prefixOperatorArg.kt | 8 + .../isUsedAsExpression/prefixOperatorArg.txt | 3 + .../prefixOperatorArgInParens.kt | 8 + .../prefixOperatorArgInParens.txt | 3 + .../prefixOperatorInParens.kt | 8 + .../prefixOperatorInParens.txt | 3 + .../prefixOperatorOperator.kt | 8 + .../prefixOperatorOperator.txt | 3 + .../prefixOperatorUnused.kt | 9 + .../prefixOperatorUnused.txt | 3 + .../prefixOperatorUnusedArg.kt | 9 + .../prefixOperatorUnusedArg.txt | 3 + .../propertyAsCallReceiverInParens.kt | 6 + .../propertyAsCallReceiverInParens.txt | 3 + .../isUsedAsExpression/propertyCall.kt | 6 + .../isUsedAsExpression/propertyCall.txt | 3 + .../isUsedAsExpression/propertyDecl.kt | 17 + .../isUsedAsExpression/propertyDecl.txt | 9 + .../isUsedAsExpression/propertyGetterBody.kt | 17 + .../isUsedAsExpression/propertyGetterBody.txt | 5 + .../isUsedAsExpression/propertyGetterDecl.kt | 17 + .../isUsedAsExpression/propertyGetterDecl.txt | 3 + .../propertyGetterExpressionBody.kt | 15 + .../propertyGetterExpressionBody.txt | 3 + .../propertyGetterFieldRef.kt | 17 + .../propertyGetterFieldRef.txt | 5 + .../isUsedAsExpression/propertyName.kt | 6 + .../isUsedAsExpression/propertyName.txt | 3 + .../propertyNameFieldGet.kt | 5 + .../propertyNameFieldGet.txt | 3 + .../propertyNameFieldGetUnused.kt | 5 + .../propertyNameFieldGetUnused.txt | 3 + .../isUsedAsExpression/propertyReceiver.kt | 6 + .../isUsedAsExpression/propertyReceiver.txt | 3 + ...propertyReferenceAsCallReceiverInParens.kt | 4 + ...ropertyReferenceAsCallReceiverInParens.txt | 3 + .../propertyReferenceProperty.kt | 4 + .../propertyReferenceProperty.txt | 3 + .../propertyReferenceReceiver.kt | 4 + .../propertyReferenceReceiver.txt | 3 + .../isUsedAsExpression/propertySetterArg.kt | 17 + .../isUsedAsExpression/propertySetterArg.txt | 3 + .../propertySetterCompoundAssign.kt | 17 + .../propertySetterCompoundAssign.txt | 3 + .../propertySetterFieldWrite.kt | 17 + .../propertySetterFieldWrite.txt | 3 + .../isUsedAsExpression/redundantLabel.kt | 5 + .../isUsedAsExpression/redundantLabel.txt | 3 + .../redundantLabelParens.kt | 5 + .../redundantLabelParens.txt | 3 + .../redundantLabelParensWholeExpression.kt | 5 + .../redundantLabelParensWholeExpression.txt | 3 + .../redundantLabelParenthesized.kt | 5 + .../redundantLabelParenthesized.txt | 3 + .../isUsedAsExpression/redundantLabelUsed.kt | 5 + .../isUsedAsExpression/redundantLabelUsed.txt | 3 + .../redundantLabelledExpr.kt | 5 + .../redundantLabelledExpr.txt | 3 + .../isUsedAsExpression/return.kt | 3 + .../isUsedAsExpression/return.txt | 3 + .../isUsedAsExpression/returnType.kt | 8 + .../isUsedAsExpression/returnType.txt | 3 + .../return_explicit_unit.kt | 3 + .../return_explicit_unit.txt | 3 + .../return_implicit_unit.kt | 3 + .../return_implicit_unit.txt | 3 + .../isUsedAsExpression/return_value.kt | 3 + .../isUsedAsExpression/return_value.txt | 3 + .../isUsedAsExpression/run_block.kt | 6 + .../isUsedAsExpression/run_block.txt | 3 + .../isUsedAsExpression/stringTemplate.kt | 3 + .../isUsedAsExpression/stringTemplate.txt | 3 + .../stringTemplateBracesInner.kt | 4 + .../stringTemplateBracesInner.txt | 3 + .../isUsedAsExpression/stringTemplateVar.kt | 4 + .../isUsedAsExpression/stringTemplateVar.txt | 3 + .../isUsedAsExpression/superExpression.kt | 11 + .../isUsedAsExpression/superExpression.txt | 3 + .../isUsedAsExpression/superExpressionArg.kt | 11 + .../isUsedAsExpression/superExpressionArg.txt | 3 + .../superExpressionSuper.kt | 11 + .../superExpressionSuper.txt | 3 + .../isUsedAsExpression/throw.kt | 5 + .../isUsedAsExpression/throw.txt | 3 + .../isUsedAsExpression/throwStmt.kt | 5 + .../isUsedAsExpression/throwStmt.txt | 3 + .../isUsedAsExpression/throw_if_branch.kt | 5 + .../isUsedAsExpression/throw_if_branch.txt | 3 + .../isUsedAsExpression/toplevelDecl.kt | 8 + .../isUsedAsExpression/toplevelDecl.txt | 5 + .../toplevelFunctionCall.kt | 7 + .../toplevelFunctionCall.txt | 3 + .../toplevelFunctionCallReference.kt | 7 + .../toplevelFunctionCallReference.txt | 3 + .../toplevelFunctionReferenceCall.kt | 7 + .../toplevelFunctionReferenceCall.txt | 3 + .../toplevelFunctionReferenceCallArg.kt | 7 + .../toplevelFunctionReferenceCallArg.txt | 3 + .../toplevelFunctionReferenceCallReceiver.kt | 7 + .../toplevelFunctionReferenceCallReceiver.txt | 3 + .../toplevelFunctionReferenceCallReference.kt | 7 + ...toplevelFunctionReferenceCallReference.txt | 3 + .../trailingAnnotatedLambda.kt | 7 + .../trailingAnnotatedLambda.txt | 5 + .../trailingAnnotatedLambdaAnnotatedExpr.kt | 7 + .../trailingAnnotatedLambdaAnnotatedExpr.txt | 5 + .../trailingAnnotatedLambdaBlock.kt | 7 + .../trailingAnnotatedLambdaBlock.txt | 5 + .../trailingAnnotatedLambdaBlockInner.kt | 7 + .../trailingAnnotatedLambdaBlockInner.txt | 3 + .../trailingAnnotatedLambdaFun.kt | 7 + .../trailingAnnotatedLambdaFun.txt | 3 + .../isUsedAsExpression/try.kt | 9 + .../isUsedAsExpression/try.txt | 9 + .../isUsedAsExpression/tryBlockBlock.kt | 9 + .../isUsedAsExpression/tryBlockBlock.txt | 5 + .../isUsedAsExpression/tryBlockBlockUsed.kt | 9 + .../isUsedAsExpression/tryBlockBlockUsed.txt | 5 + .../isUsedAsExpression/tryBlockInner.kt | 9 + .../isUsedAsExpression/tryBlockInner.txt | 3 + .../isUsedAsExpression/tryBlockInnerUsed.kt | 9 + .../isUsedAsExpression/tryBlockInnerUsed.txt | 3 + .../isUsedAsExpression/tryCatchArg.kt | 9 + .../isUsedAsExpression/tryCatchArg.txt | 3 + .../isUsedAsExpression/tryCatchArgUsed.kt | 9 + .../isUsedAsExpression/tryCatchArgUsed.txt | 3 + .../isUsedAsExpression/tryCatchBlock.kt | 9 + .../isUsedAsExpression/tryCatchBlock.txt | 5 + .../isUsedAsExpression/tryCatchBlockInner.kt | 9 + .../isUsedAsExpression/tryCatchBlockInner.txt | 3 + .../tryCatchBlockInnerUsed.kt | 9 + .../tryCatchBlockInnerUsed.txt | 3 + .../isUsedAsExpression/tryCatchBlockUsed.kt | 9 + .../isUsedAsExpression/tryCatchBlockUsed.txt | 5 + .../isUsedAsExpression/tryFinallyBlock.kt | 9 + .../isUsedAsExpression/tryFinallyBlock.txt | 5 + .../tryFinallyBlockInner.kt | 9 + .../tryFinallyBlockInner.txt | 3 + .../tryFinallyBlockInnerUsed.kt | 9 + .../tryFinallyBlockInnerUsed.txt | 3 + .../isUsedAsExpression/tryFinallyBlockUsed.kt | 9 + .../tryFinallyBlockUsed.txt | 5 + .../isUsedAsExpression/tryOnlyFinallyBlock.kt | 7 + .../tryOnlyFinallyBlock.txt | 5 + .../tryOnlyFinallyBlockInner.kt | 7 + .../tryOnlyFinallyBlockInner.txt | 3 + .../tryOnlyFinallyBlockInnerUsed.kt | 7 + .../tryOnlyFinallyBlockInnerUsed.txt | 3 + .../tryOnlyFinallyBlockUsed.kt | 7 + .../tryOnlyFinallyBlockUsed.txt | 5 + .../tryThrowsToFinallyInner.kt | 7 + .../tryThrowsToFinallyInner.txt | 3 + .../tryThrowsToFinallyInnerUsed.kt | 7 + .../tryThrowsToFinallyInnerUsed.txt | 3 + .../isUsedAsExpression/tryUsed.kt | 9 + .../isUsedAsExpression/tryUsed.txt | 9 + .../isUsedAsExpression/try_catch_binop.kt | 6 + .../isUsedAsExpression/try_catch_binop.txt | 3 + .../isUsedAsExpression/typeAlias.kt | 1 + .../isUsedAsExpression/typeAlias.txt | 3 + .../isUsedAsExpression/typeAliasLocal.kt | 3 + .../isUsedAsExpression/typeAliasLocal.txt | 3 + .../isUsedAsExpression/typeAliasParameter.kt | 1 + .../isUsedAsExpression/typeAliasParameter.txt | 3 + .../typeAliasParameterBound.kt | 1 + .../typeAliasParameterBound.txt | 3 + .../typeAliasParameterBoundVariance.kt | 1 + .../typeAliasParameterBoundVariance.txt | 3 + .../typeAliasParameterWithBounds.kt | 1 + .../typeAliasParameterWithBounds.txt | 3 + .../isUsedAsExpression/typeAliasRHS.kt | 1 + .../isUsedAsExpression/typeAliasRHS.txt | 3 + .../typeAliasRHSTypeParameter.kt | 1 + .../typeAliasRHSTypeParameter.txt | 3 + .../isUsedAsExpression/unit_lambda.kt | 12 + .../isUsedAsExpression/unit_lambda.txt | 3 + .../unit_lambda_nonunit_function.kt | 12 + .../unit_lambda_nonunit_function.txt | 3 + .../isUsedAsExpression/value_initializer.kt | 4 + .../isUsedAsExpression/value_initializer.txt | 3 + .../isUsedAsExpression/var_reassignment_if.kt | 7 + .../var_reassignment_if.txt | 7 + .../variableDeclarationDecl.kt | 4 + .../variableDeclarationDecl.txt | 3 + .../variableDeclarationLHSType.kt | 4 + .../variableDeclarationLHSType.txt | 3 + .../variableDeclarationRHS.kt | 4 + .../variableDeclarationRHS.txt | 3 + .../isUsedAsExpression/when.kt | 6 + .../isUsedAsExpression/when.txt | 6 + .../isUsedAsExpression/when2.kt | 12 + .../isUsedAsExpression/when2.txt | 8 + .../whenIsBranchMultiple.kt | 7 + .../whenIsBranchMultiple.txt | 3 + .../isUsedAsExpression/whenIsBranchType.kt | 7 + .../isUsedAsExpression/whenIsBranchType.txt | 3 + .../isUsedAsExpression/whenUsed.kt | 6 + .../isUsedAsExpression/whenUsed.txt | 6 + .../isUsedAsExpression/whenWithVal.kt | 6 + .../isUsedAsExpression/whenWithVal.txt | 3 + .../isUsedAsExpression/whenWithValRHS.kt | 6 + .../isUsedAsExpression/whenWithValRHS.txt | 3 + .../isUsedAsExpression/when_branch.kt | 6 + .../isUsedAsExpression/when_branch.txt | 3 + .../isUsedAsExpression/when_branchUsed.kt | 6 + .../isUsedAsExpression/when_branchUsed.txt | 3 + .../isUsedAsExpression/when_condition.kt | 6 + .../isUsedAsExpression/when_condition.txt | 3 + .../when_condition_unreachable.kt | 6 + .../when_condition_unreachable.txt | 3 + .../isUsedAsExpression/when_subject.kt | 5 + .../isUsedAsExpression/when_subject.txt | 3 + .../when_subject_with_branches.kt | 6 + .../when_subject_with_branches.txt | 3 + .../isUsedAsExpression/when_syntaxerror.kt | 3 + .../isUsedAsExpression/when_syntaxerror.txt | 3 + .../isUsedAsExpression/whileExpr.kt | 5 + .../isUsedAsExpression/whileExpr.txt | 5 + .../isUsedAsExpression/whileLoop.kt | 6 + .../isUsedAsExpression/whileLoop.txt | 5 + .../isUsedAsExpression/whileLoopBlock.kt | 6 + .../isUsedAsExpression/whileLoopBlock.txt | 5 + .../isUsedAsExpression/whileLoopBody.kt | 8 + .../isUsedAsExpression/whileLoopBody.txt | 3 + .../isUsedAsExpression/whileLoopCondition.kt | 6 + .../isUsedAsExpression/whileLoopCondition.txt | 3 + .../whileLoopConditionLHS.kt | 6 + .../whileLoopConditionLHS.txt | 3 + .../whileLoopConditionRHS.kt | 6 + .../whileLoopConditionRHS.txt | 3 + .../declarationReturnType/funtionType.kt | 5 +- .../declarationReturnType/funtionType.txt | 7 + .../singleExpressionLambdaBody.kt | 3 + .../singleExpressionLambdaBody.txt | 2 + .../tests/analysis/api/analysisApi.kt | 5 + 673 files changed, 11862 insertions(+), 10 deletions(-) create mode 100644 analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java create mode 100644 analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java create mode 100644 analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java create mode 100644 analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt create mode 100644 analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/boolean_else.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclNested.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.txt create mode 100644 analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt create mode 100644 analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.txt diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10ExpressionInfoProvider.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10ExpressionInfoProvider.kt index 950a1c1b44b..31dbd54dd6d 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10ExpressionInfoProvider.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10ExpressionInfoProvider.kt @@ -15,11 +15,9 @@ import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion import org.jetbrains.kotlin.analysis.utils.printer.parentOfType import org.jetbrains.kotlin.cfg.WhenChecker import org.jetbrains.kotlin.diagnostics.WhenMissingCase -import org.jetbrains.kotlin.psi.KtDeclaration -import org.jetbrains.kotlin.psi.KtNamedFunction -import org.jetbrains.kotlin.psi.KtReturnExpression -import org.jetbrains.kotlin.psi.KtWhenExpression +import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression internal class KtFe10ExpressionInfoProvider( override val analysisSession: KtFe10AnalysisSession @@ -40,4 +38,9 @@ internal class KtFe10ExpressionInfoProvider( val bindingContext = analysisContext.analyze(whenExpression) return WhenChecker.getMissingCases(whenExpression, bindingContext) } + + override fun isUsedAsExpression(expression: KtExpression): Boolean { + val bindingContext = analysisContext.analyze(expression) + return expression.isUsedAsExpression(bindingContext) + } } \ No newline at end of file diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java new file mode 100644 index 00000000000..d4c73387c58 --- /dev/null +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -0,0 +1,2004 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.analysis.api.fe10.test.cases.generated.cases.components.expressionInfoProvider; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fe10.test.configurator.AnalysisApiFe10TestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider.AbstractIsUsedAsExpressionTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression") +@TestDataPath("$PROJECT_ROOT") +public class Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated extends AbstractIsUsedAsExpressionTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFe10TestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fe10, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInIsUsedAsExpression() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("annotatedExpr.kt") + public void testAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt"); + } + + @Test + @TestMetadata("annotatedExprAnnotation.kt") + public void testAnnotatedExprAnnotation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt"); + } + + @Test + @TestMetadata("annotatedExprBody.kt") + public void testAnnotatedExprBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt"); + } + + @Test + @TestMetadata("annotatedExprBodyUnused.kt") + public void testAnnotatedExprBodyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt"); + } + + @Test + @TestMetadata("annotationArg.kt") + public void testAnnotationArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteral.kt") + public void testAnnotationCollectionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteralEntry.kt") + public void testAnnotationCollectionLiteralEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt"); + } + + @Test + @TestMetadata("annotationName.kt") + public void testAnnotationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt"); + } + + @Test + @TestMetadata("argument.kt") + public void testArgument() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt"); + } + + @Test + @TestMetadata("arrayAccess.kt") + public void testArrayAccess() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndex.kt") + public void testArrayAccessComputedIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndexIndex.kt") + public void testArrayAccessComputedIndexIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessIndex.kt") + public void testArrayAccessIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessLHS.kt") + public void testArrayAccessLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiver.kt") + public void testArrayAccessModificationComputedReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiver.kt") + public void testArrayAccessModificationComputedReceiverReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiverInner.kt") + public void testArrayAccessModificationComputedReceiverReceiverInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationReceiver.kt") + public void testArrayAccessModificationReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessUnused.kt") + public void testArrayAccessUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt"); + } + + @Test + @TestMetadata("asExpression.kt") + public void testAsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCall.kt") + public void testAsExpressionElvisCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallLHS.kt") + public void testAsExpressionElvisCallLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHS.kt") + public void testAsExpressionElvisCallRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHSUsed.kt") + public void testAsExpressionElvisCallRHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallUsed.kt") + public void testAsExpressionElvisCallUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt"); + } + + @Test + @TestMetadata("asExpressionInner.kt") + public void testAsExpressionInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt"); + } + + @Test + @TestMetadata("asExpressionLHS.kt") + public void testAsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt"); + } + + @Test + @TestMetadata("asExpressionNullable.kt") + public void testAsExpressionNullable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt"); + } + + @Test + @TestMetadata("asExpressionNullableInner.kt") + public void testAsExpressionNullableInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLet.kt") + public void testAsExpressionNullableLet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlock.kt") + public void testAsExpressionNullableLetBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlockUsed.kt") + public void testAsExpressionNullableLetBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetExplicitIt.kt") + public void testAsExpressionNullableLetExplicitIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetIt.kt") + public void testAsExpressionNullableLetIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetName.kt") + public void testAsExpressionNullableLetName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetUsed.kt") + public void testAsExpressionNullableLetUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt"); + } + + @Test + @TestMetadata("asExpressionRHS.kt") + public void testAsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt"); + } + + @Test + @TestMetadata("asExpressionUsed.kt") + public void testAsExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt"); + } + + @Test + @TestMetadata("backingField.kt") + public void testBackingField() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt"); + } + + @Test + @TestMetadata("backingFieldDecl.kt") + public void testBackingFieldDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt"); + } + + @Test + @TestMetadata("backingFieldInitializer.kt") + public void testBackingFieldInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt"); + } + + @Test + @TestMetadata("break.kt") + public void testBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt"); + } + + @Test + @TestMetadata("callReceiver.kt") + public void testCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt"); + } + + @Test + @TestMetadata("callReceiverInParens.kt") + public void testCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt"); + } + + @Test + @TestMetadata("callReceiverParens.kt") + public void testCallReceiverParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt"); + } + + @Test + @TestMetadata("callableReference.kt") + public void testCallableReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt"); + } + + @Test + @TestMetadata("callableReferenceDirectCall.kt") + public void testCallableReferenceDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceIndirectCall.kt") + public void testCallableReferenceIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceLHS.kt") + public void testCallableReferenceLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHS.kt") + public void testCallableReferenceRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHSUnused.kt") + public void testCallableReferenceRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHS.kt") + public void testCallableReferenceStaticLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSDirectCall.kt") + public void testCallableReferenceStaticLHSDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSIndirectCall.kt") + public void testCallableReferenceStaticLHSIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSLHS.kt") + public void testCallableReferenceStaticLHSLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHS.kt") + public void testCallableReferenceStaticLHSRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHSUnused.kt") + public void testCallableReferenceStaticLHSRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceUnused.kt") + public void testCallableReferenceUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt"); + } + + @Test + @TestMetadata("classConstructorInvocation.kt") + public void testClassConstructorInvocation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt"); + } + + @Test + @TestMetadata("classConstructorInvocationName.kt") + public void testClassConstructorInvocationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt"); + } + + @Test + @TestMetadata("classDecl.kt") + public void testClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt"); + } + + @Test + @TestMetadata("classDeclImplementsInterface.kt") + public void testClassDeclImplementsInterface() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt"); + } + + @Test + @TestMetadata("classDeclImplementsTypeParameter.kt") + public void testClassDeclImplementsTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt"); + } + + @Test + @TestMetadata("classDeclTypeParam.kt") + public void testClassDeclTypeParam() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt"); + } + + @Test + @TestMetadata("classInitBlock.kt") + public void testClassInitBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt"); + } + + @Test + @TestMetadata("classInitExpr.kt") + public void testClassInitExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt"); + } + + @Test + @TestMetadata("classInitializer.kt") + public void testClassInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVar.kt") + public void testClassLiteralExpressionComputedVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarParenthesized.kt") + public void testClassLiteralExpressionComputedVarParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnused.kt") + public void testClassLiteralExpressionComputedVarUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnusedWholeExpression.kt") + public void testClassLiteralExpressionComputedVarUnusedWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSParenthesizedUsed.kt") + public void testClassLiteralExpressionLHSParenthesizedUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSUsed.kt") + public void testClassLiteralExpressionLHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnused.kt") + public void testClassLiteralExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnusedLHS.kt") + public void testClassLiteralExpressionUnusedLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUsed.kt") + public void testClassLiteralExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUnused.kt") + public void testCollectionLiteralInvalidUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUsed.kt") + public void testCollectionLiteralInvalidUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt"); + } + + @Test + @TestMetadata("companionObjectDecl.kt") + public void testCompanionObjectDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt"); + } + + @Test + @TestMetadata("compoundAssignRHS.kt") + public void testCompoundAssignRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentException.kt") + public void testCompoundAssignmentException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt"); + } + + @Test + @TestMetadata("compoundAssignmentExceptionCustom.kt") + public void testCompoundAssignmentExceptionCustom() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToProperty.kt") + public void testCompoundAssignmentToProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyLHS.kt") + public void testCompoundAssignmentToPropertyLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyRHS.kt") + public void testCompoundAssignmentToPropertyRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReceiver.kt") + public void testCompoundAssignmentToPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReference.kt") + public void testCompoundAssignmentToPropertyReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt"); + } + + @Test + @TestMetadata("computedClassExpression.kt") + public void testComputedClassExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt"); + } + + @Test + @TestMetadata("computedClassExpressionLHS.kt") + public void testComputedClassExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt"); + } + + @Test + @TestMetadata("constructorCallee.kt") + public void testConstructorCallee() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt"); + } + + @Test + @TestMetadata("constructorCalleeUsed.kt") + public void testConstructorCalleeUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt"); + } + + @Test + @TestMetadata("constructorInvocationAsPropertyReceiver.kt") + public void testConstructorInvocationAsPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt"); + } + + @Test + @TestMetadata("constructorPrimarySuperCall.kt") + public void testConstructorPrimarySuperCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt"); + } + + @Test + @TestMetadata("constructorSecondary.kt") + public void testConstructorSecondary() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlock.kt") + public void testConstructorSecondaryBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlockBody.kt") + public void testConstructorSecondaryBlockBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt"); + } + + @Test + @TestMetadata("constructorSecondaryDefaultArg.kt") + public void testConstructorSecondaryDefaultArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt"); + } + + @Test + @TestMetadata("constructorSuperReference.kt") + public void testConstructorSuperReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt"); + } + + @Test + @TestMetadata("constructorSuperReferenceArg.kt") + public void testConstructorSuperReferenceArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt"); + } + + @Test + @TestMetadata("continue.kt") + public void testContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambda.kt") + public void testDefaultExtensionLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyAccessOnThis.kt") + public void testDefaultExtensionLambdaPropertyAccessOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyOnThis.kt") + public void testDefaultExtensionLambdaPropertyOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaThis.kt") + public void testDefaultExtensionLambdaThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt"); + } + + @Test + @TestMetadata("default_parameter.kt") + public void testDefault_parameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); + } + + @Test + @TestMetadata("destructuringDecl.kt") + public void testDestructuringDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoop.kt") + public void testDestructuringDeclInForLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopRHS.kt") + public void testDestructuringDeclInForLoopRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopVariable.kt") + public void testDestructuringDeclInForLoopVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt"); + } + + @Test + @TestMetadata("destructuringDeclLHSVar.kt") + public void testDestructuringDeclLHSVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt"); + } + + @Test + @TestMetadata("destructuringDeclRHS.kt") + public void testDestructuringDeclRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclType.kt") + public void testDestructuringDeclType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt"); + } + + @Test + @TestMetadata("doWhileCondition.kt") + public void testDoWhileCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt"); + } + + @Test + @TestMetadata("doWhileExpr.kt") + public void testDoWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt"); + } + + @Test + @TestMetadata("doWhileLoopBlock.kt") + public void testDoWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt"); + } + + @Test + @TestMetadata("doubleColonClassLHS.kt") + public void testDoubleColonClassLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt"); + } + + @Test + @TestMetadata("doubleColonCompanionLHS.kt") + public void testDoubleColonCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonLHS.kt") + public void testDoubleColonLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHS.kt") + public void testDoubleColonUnqualifiedCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHSParenthesized.kt") + public void testDoubleColonUnqualifiedCompanionLHSParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt"); + } + + @Test + @TestMetadata("elvisWithBreak.kt") + public void testElvisWithBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt"); + } + + @Test + @TestMetadata("elvisWithContinue.kt") + public void testElvisWithContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt"); + } + + @Test + @TestMetadata("elvisWithReturn.kt") + public void testElvisWithReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt"); + } + + @Test + @TestMetadata("elvisWithThrow.kt") + public void testElvisWithThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt"); + } + + @Test + @TestMetadata("enumDecl.kt") + public void testEnumDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt"); + } + + @Test + @TestMetadata("enumDeclArg.kt") + public void testEnumDeclArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructor.kt") + public void testEnumDeclConstructor() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorArg.kt") + public void testEnumDeclConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorThis.kt") + public void testEnumDeclConstructorThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArg.kt") + public void testEnumDeclPrimaryConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArgList.kt") + public void testEnumDeclPrimaryConstructorArgList() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt"); + } + + @Test + @TestMetadata("expressionBodyLambdaReturningInt.kt") + public void testExpressionBodyLambdaReturningInt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt"); + } + + @Test + @TestMetadata("expressionBodyUnitLambda.kt") + public void testExpressionBodyUnitLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymous.kt") + public void testExtensionFunctionAnonymous() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymousReceiver.kt") + public void testExtensionFunctionAnonymousReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt"); + } + + @Test + @TestMetadata("forExpr.kt") + public void testForExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt"); + } + + @Test + @TestMetadata("forExprBlock.kt") + public void testForExprBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt"); + } + + @Test + @TestMetadata("forExprInvalid.kt") + public void testForExprInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt"); + } + + @Test + @TestMetadata("forExprLoopVar.kt") + public void testForExprLoopVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt"); + } + + @Test + @TestMetadata("forExprRangeExpr.kt") + public void testForExprRangeExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt"); + } + + @Test + @TestMetadata("forExprRangeExprUpperBound.kt") + public void testForExprRangeExprUpperBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt"); + } + + @Test + @TestMetadata("forLoopInvalid.kt") + public void testForLoopInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt"); + } + + @Test + @TestMetadata("functionLiteral.kt") + public void testFunctionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBody.kt") + public void testFunctionLiteralExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyBody.kt") + public void testFunctionLiteralExpressionBodyBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambda.kt") + public void testFunctionLiteralExpressionBodyLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlock.kt") + public void testFunctionLiteralExpressionBodyLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInner.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInnerUnit.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInnerUnit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExtensionReceiverType.kt") + public void testFunctionLiteralExtensionReceiverType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt"); + } + + @Test + @TestMetadata("ifBranches_unused.kt") + public void testIfBranches_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt"); + } + + @Test + @TestMetadata("ifBranches_used.kt") + public void testIfBranches_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt"); + } + + @Test + @TestMetadata("ifConditionParens.kt") + public void testIfConditionParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt"); + } + + @Test + @TestMetadata("if_subject.kt") + public void testIf_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt"); + } + + @Test + @TestMetadata("implicitNullBlock.kt") + public void testImplicitNullBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt"); + } + + @Test + @TestMetadata("implicitNullBlock2.kt") + public void testImplicitNullBlock2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt"); + } + + @Test + @TestMetadata("implicitNullBlockMultiStatements.kt") + public void testImplicitNullBlockMultiStatements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt"); + } + + @Test + @TestMetadata("initializer_when_branch.kt") + public void testInitializer_when_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block.kt") + public void testInitializer_when_branch_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block_stmt.kt") + public void testInitializer_when_branch_block_stmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt"); + } + + @Test + @TestMetadata("innerClassDecl.kt") + public void testInnerClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt"); + } + + @Test + @TestMetadata("interfaceMemberDecl.kt") + public void testInterfaceMemberDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt"); + } + + @Test + @TestMetadata("invokedLocalVariable.kt") + public void testInvokedLocalVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt"); + } + + @Test + @TestMetadata("isExpression.kt") + public void testIsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt"); + } + + @Test + @TestMetadata("isExpressionLHS.kt") + public void testIsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt"); + } + + @Test + @TestMetadata("isExpressionLHSInsideParens.kt") + public void testIsExpressionLHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionLHSParens.kt") + public void testIsExpressionLHSParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt"); + } + + @Test + @TestMetadata("isExpressionOperator.kt") + public void testIsExpressionOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt"); + } + + @Test + @TestMetadata("isExpressionRHS.kt") + public void testIsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt"); + } + + @Test + @TestMetadata("isExpressionRHSInsideParens.kt") + public void testIsExpressionRHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionUnused.kt") + public void testIsExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt"); + } + + @Test + @TestMetadata("labelledReturn.kt") + public void testLabelledReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt"); + } + + @Test + @TestMetadata("labelledReturnLabel.kt") + public void testLabelledReturnLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt"); + } + + @Test + @TestMetadata("labelledReturnValue.kt") + public void testLabelledReturnValue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt"); + } + + @Test + @TestMetadata("labelledThis.kt") + public void testLabelledThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt"); + } + + @Test + @TestMetadata("labelledThisLabel.kt") + public void testLabelledThisLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt"); + } + + @Test + @TestMetadata("lambdaWithArgs.kt") + public void testLambdaWithArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsArgs.kt") + public void testLambdaWithArgsArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsBody.kt") + public void testLambdaWithArgsBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt"); + } + + @Test + @TestMetadata("lambda_unused.kt") + public void testLambda_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt"); + } + + @Test + @TestMetadata("lambda_unused_invoke.kt") + public void testLambda_unused_invoke() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt"); + } + + @Test + @TestMetadata("localFunctionDecl.kt") + public void testLocalFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt"); + } + + @Test + @TestMetadata("loopLabel.kt") + public void testLoopLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreak.kt") + public void testLoopLabelBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt"); + } + + @Test + @TestMetadata("loopLabelBreakLabel.kt") + public void testLoopLabelBreakLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreakUsed.kt") + public void testLoopLabelBreakUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt"); + } + + @Test + @TestMetadata("memberFunctionDecl.kt") + public void testMemberFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt"); + } + + @Test + @TestMetadata("nonunit_lambda.kt") + public void testNonunit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt"); + } + + @Test + @TestMetadata("nonunit_lambda_multiple_statements.kt") + public void testNonunit_lambda_multiple_statements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt"); + } + + @Test + @TestMetadata("objectDeclaration.kt") + public void testObjectDeclaration() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt"); + } + + @Test + @TestMetadata("objectDeclarationProperty.kt") + public void testObjectDeclarationProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt"); + } + + @Test + @TestMetadata("objectLiteral.kt") + public void testObjectLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt"); + } + + @Test + @TestMetadata("objectLiteralMember.kt") + public void testObjectLiteralMember() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt"); + } + + @Test + @TestMetadata("object_unused.kt") + public void testObject_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt"); + } + + @Test + @TestMetadata("object_used.kt") + public void testObject_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt"); + } + + @Test + @TestMetadata("parameterDecl.kt") + public void testParameterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt"); + } + + @Test + @TestMetadata("parameterType.kt") + public void testParameterType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnused.kt") + public void testPostfixBangBangUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedArg.kt") + public void testPostfixBangBangUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedOp.kt") + public void testPostfixBangBangUnusedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsed.kt") + public void testPostfixBangBangUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsedOp.kt") + public void testPostfixBangBangUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt"); + } + + @Test + @TestMetadata("postfixDecrementException.kt") + public void testPostfixDecrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt"); + } + + @Test + @TestMetadata("postfixIncrementException.kt") + public void testPostfixIncrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt"); + } + + @Test + @TestMetadata("postfixOperatorTechnicallyUnused.kt") + public void testPostfixOperatorTechnicallyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsed.kt") + public void testPostfixOperatorUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedArg.kt") + public void testPostfixOperatorUsedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedOp.kt") + public void testPostfixOperatorUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt"); + } + + @Test + @TestMetadata("prefixOperator.kt") + public void testPrefixOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorArg.kt") + public void testPrefixOperatorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt"); + } + + @Test + @TestMetadata("prefixOperatorArgInParens.kt") + public void testPrefixOperatorArgInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorInParens.kt") + public void testPrefixOperatorInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorOperator.kt") + public void testPrefixOperatorOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnused.kt") + public void testPrefixOperatorUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnusedArg.kt") + public void testPrefixOperatorUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt"); + } + + @Test + @TestMetadata("propertyAsCallReceiverInParens.kt") + public void testPropertyAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyCall.kt") + public void testPropertyCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt"); + } + + @Test + @TestMetadata("propertyDecl.kt") + public void testPropertyDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterBody.kt") + public void testPropertyGetterBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt"); + } + + @Test + @TestMetadata("propertyGetterDecl.kt") + public void testPropertyGetterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterExpressionBody.kt") + public void testPropertyGetterExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt"); + } + + @Test + @TestMetadata("propertyGetterFieldRef.kt") + public void testPropertyGetterFieldRef() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt"); + } + + @Test + @TestMetadata("propertyName.kt") + public void testPropertyName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGet.kt") + public void testPropertyNameFieldGet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGetUnused.kt") + public void testPropertyNameFieldGetUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt"); + } + + @Test + @TestMetadata("propertyReceiver.kt") + public void testPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt"); + } + + @Test + @TestMetadata("propertyReferenceAsCallReceiverInParens.kt") + public void testPropertyReferenceAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyReferenceProperty.kt") + public void testPropertyReferenceProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt"); + } + + @Test + @TestMetadata("propertyReferenceReceiver.kt") + public void testPropertyReferenceReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt"); + } + + @Test + @TestMetadata("propertySetterArg.kt") + public void testPropertySetterArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt"); + } + + @Test + @TestMetadata("propertySetterCompoundAssign.kt") + public void testPropertySetterCompoundAssign() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt"); + } + + @Test + @TestMetadata("propertySetterFieldWrite.kt") + public void testPropertySetterFieldWrite() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt"); + } + + @Test + @TestMetadata("redundantLabel.kt") + public void testRedundantLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt"); + } + + @Test + @TestMetadata("redundantLabelParens.kt") + public void testRedundantLabelParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt"); + } + + @Test + @TestMetadata("redundantLabelParensWholeExpression.kt") + public void testRedundantLabelParensWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt"); + } + + @Test + @TestMetadata("redundantLabelParenthesized.kt") + public void testRedundantLabelParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt"); + } + + @Test + @TestMetadata("redundantLabelUsed.kt") + public void testRedundantLabelUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt"); + } + + @Test + @TestMetadata("redundantLabelledExpr.kt") + public void testRedundantLabelledExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt"); + } + + @Test + @TestMetadata("return.kt") + public void testReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt"); + } + + @Test + @TestMetadata("returnType.kt") + public void testReturnType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt"); + } + + @Test + @TestMetadata("return_explicit_unit.kt") + public void testReturn_explicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt"); + } + + @Test + @TestMetadata("return_implicit_unit.kt") + public void testReturn_implicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt"); + } + + @Test + @TestMetadata("return_value.kt") + public void testReturn_value() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt"); + } + + @Test + @TestMetadata("run_block.kt") + public void testRun_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt"); + } + + @Test + @TestMetadata("stringTemplate.kt") + public void testStringTemplate() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt"); + } + + @Test + @TestMetadata("stringTemplateBracesInner.kt") + public void testStringTemplateBracesInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt"); + } + + @Test + @TestMetadata("stringTemplateVar.kt") + public void testStringTemplateVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt"); + } + + @Test + @TestMetadata("superExpression.kt") + public void testSuperExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt"); + } + + @Test + @TestMetadata("superExpressionArg.kt") + public void testSuperExpressionArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt"); + } + + @Test + @TestMetadata("superExpressionSuper.kt") + public void testSuperExpressionSuper() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt"); + } + + @Test + @TestMetadata("throw.kt") + public void testThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt"); + } + + @Test + @TestMetadata("throwStmt.kt") + public void testThrowStmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt"); + } + + @Test + @TestMetadata("throw_if_branch.kt") + public void testThrow_if_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt"); + } + + @Test + @TestMetadata("toplevelDecl.kt") + public void testToplevelDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCall.kt") + public void testToplevelFunctionCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCallReference.kt") + public void testToplevelFunctionCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCall.kt") + public void testToplevelFunctionReferenceCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallArg.kt") + public void testToplevelFunctionReferenceCallArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReceiver.kt") + public void testToplevelFunctionReferenceCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReference.kt") + public void testToplevelFunctionReferenceCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambda.kt") + public void testTrailingAnnotatedLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaAnnotatedExpr.kt") + public void testTrailingAnnotatedLambdaAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlock.kt") + public void testTrailingAnnotatedLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlockInner.kt") + public void testTrailingAnnotatedLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaFun.kt") + public void testTrailingAnnotatedLambdaFun() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt"); + } + + @Test + @TestMetadata("try.kt") + public void testTry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt"); + } + + @Test + @TestMetadata("tryBlockBlock.kt") + public void testTryBlockBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt"); + } + + @Test + @TestMetadata("tryBlockBlockUsed.kt") + public void testTryBlockBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt"); + } + + @Test + @TestMetadata("tryBlockInner.kt") + public void testTryBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt"); + } + + @Test + @TestMetadata("tryBlockInnerUsed.kt") + public void testTryBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchArg.kt") + public void testTryCatchArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt"); + } + + @Test + @TestMetadata("tryCatchArgUsed.kt") + public void testTryCatchArgUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlock.kt") + public void testTryCatchBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInner.kt") + public void testTryCatchBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInnerUsed.kt") + public void testTryCatchBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlockUsed.kt") + public void testTryCatchBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlock.kt") + public void testTryFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInner.kt") + public void testTryFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInnerUsed.kt") + public void testTryFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockUsed.kt") + public void testTryFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlock.kt") + public void testTryOnlyFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInner.kt") + public void testTryOnlyFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInnerUsed.kt") + public void testTryOnlyFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockUsed.kt") + public void testTryOnlyFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInner.kt") + public void testTryThrowsToFinallyInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInnerUsed.kt") + public void testTryThrowsToFinallyInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt"); + } + + @Test + @TestMetadata("tryUsed.kt") + public void testTryUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt"); + } + + @Test + @TestMetadata("try_catch_binop.kt") + public void testTry_catch_binop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt"); + } + + @Test + @TestMetadata("typeAlias.kt") + public void testTypeAlias() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt"); + } + + @Test + @TestMetadata("typeAliasLocal.kt") + public void testTypeAliasLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt"); + } + + @Test + @TestMetadata("typeAliasParameter.kt") + public void testTypeAliasParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBound.kt") + public void testTypeAliasParameterBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBoundVariance.kt") + public void testTypeAliasParameterBoundVariance() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt"); + } + + @Test + @TestMetadata("typeAliasParameterWithBounds.kt") + public void testTypeAliasParameterWithBounds() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt"); + } + + @Test + @TestMetadata("typeAliasRHS.kt") + public void testTypeAliasRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt"); + } + + @Test + @TestMetadata("typeAliasRHSTypeParameter.kt") + public void testTypeAliasRHSTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt"); + } + + @Test + @TestMetadata("unit_lambda.kt") + public void testUnit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt"); + } + + @Test + @TestMetadata("unit_lambda_nonunit_function.kt") + public void testUnit_lambda_nonunit_function() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt"); + } + + @Test + @TestMetadata("value_initializer.kt") + public void testValue_initializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt"); + } + + @Test + @TestMetadata("var_reassignment_if.kt") + public void testVar_reassignment_if() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt"); + } + + @Test + @TestMetadata("variableDeclarationDecl.kt") + public void testVariableDeclarationDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt"); + } + + @Test + @TestMetadata("variableDeclarationLHSType.kt") + public void testVariableDeclarationLHSType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt"); + } + + @Test + @TestMetadata("variableDeclarationRHS.kt") + public void testVariableDeclarationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt"); + } + + @Test + @TestMetadata("when.kt") + public void testWhen() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt"); + } + + @Test + @TestMetadata("when2.kt") + public void testWhen2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt"); + } + + @Test + @TestMetadata("whenIsBranchMultiple.kt") + public void testWhenIsBranchMultiple() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt"); + } + + @Test + @TestMetadata("whenIsBranchType.kt") + public void testWhenIsBranchType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt"); + } + + @Test + @TestMetadata("whenUsed.kt") + public void testWhenUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt"); + } + + @Test + @TestMetadata("whenWithVal.kt") + public void testWhenWithVal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt"); + } + + @Test + @TestMetadata("whenWithValRHS.kt") + public void testWhenWithValRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt"); + } + + @Test + @TestMetadata("when_branch.kt") + public void testWhen_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt"); + } + + @Test + @TestMetadata("when_branchUsed.kt") + public void testWhen_branchUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt"); + } + + @Test + @TestMetadata("when_condition.kt") + public void testWhen_condition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt"); + } + + @Test + @TestMetadata("when_condition_unreachable.kt") + public void testWhen_condition_unreachable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt"); + } + + @Test + @TestMetadata("when_subject.kt") + public void testWhen_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt"); + } + + @Test + @TestMetadata("when_subject_with_branches.kt") + public void testWhen_subject_with_branches() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt"); + } + + @Test + @TestMetadata("when_syntaxerror.kt") + public void testWhen_syntaxerror() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt"); + } + + @Test + @TestMetadata("whileExpr.kt") + public void testWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt"); + } + + @Test + @TestMetadata("whileLoop.kt") + public void testWhileLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt"); + } + + @Test + @TestMetadata("whileLoopBlock.kt") + public void testWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt"); + } + + @Test + @TestMetadata("whileLoopBody.kt") + public void testWhileLoopBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt"); + } + + @Test + @TestMetadata("whileLoopCondition.kt") + public void testWhileLoopCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt"); + } + + @Test + @TestMetadata("whileLoopConditionLHS.kt") + public void testWhileLoopConditionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt"); + } + + @Test + @TestMetadata("whileLoopConditionRHS.kt") + public void testWhileLoopConditionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt"); + } +} diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionTypeProvider/Fe10IdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionTypeProvider/Fe10IdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java index 5e0edac3243..14251d9986a 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionTypeProvider/Fe10IdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionTypeProvider/Fe10IdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java @@ -184,6 +184,12 @@ public class Fe10IdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated exte runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/returnExpression.kt"); } + @Test + @TestMetadata("singleExpressionLambdaBody.kt") + public void testSingleExpressionLambdaBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt"); + } + @Test @TestMetadata("smartcast_asCallArg.kt") public void testSmartcast_asCallArg() throws Exception { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt index d5555f541c8..de05b88e3d3 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt @@ -5,18 +5,24 @@ package org.jetbrains.kotlin.analysis.api.fir.components +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.analysis.api.KtAnalysisSession +import org.jetbrains.kotlin.analysis.api.analyze +import org.jetbrains.kotlin.analysis.api.calls.KtSimpleVariableAccessCall +import org.jetbrains.kotlin.analysis.api.calls.KtSuccessCallInfo import org.jetbrains.kotlin.analysis.api.components.KtExpressionInfoProvider import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession -import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken +import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirSafe import org.jetbrains.kotlin.diagnostics.WhenMissingCase import org.jetbrains.kotlin.fir.declarations.FirErrorFunction import org.jetbrains.kotlin.fir.expressions.FirReturnExpression import org.jetbrains.kotlin.fir.expressions.FirWhenExpression import org.jetbrains.kotlin.fir.resolve.transformers.FirWhenExhaustivenessTransformer -import org.jetbrains.kotlin.psi.KtReturnExpression -import org.jetbrains.kotlin.psi.KtWhenExpression +import org.jetbrains.kotlin.idea.references.mainReference +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.unwrapParenthesesLabelsAndAnnotations internal class KtFirExpressionInfoProvider( override val analysisSession: KtFirAnalysisSession, @@ -33,4 +39,398 @@ internal class KtFirExpressionInfoProvider( val firWhenExpression = whenExpression.getOrBuildFirSafe(analysisSession.firResolveSession) ?: return emptyList() return FirWhenExhaustivenessTransformer.computeAllMissingCases(analysisSession.firResolveSession.useSiteFirSession, firWhenExpression) } + + override fun isUsedAsExpression(expression: KtExpression): Boolean = + isUsed(expression) + + /** + * [isUsed] and [doesParentUseChild] are defined in mutual recursion, + * climbing up the syntax tree, passing control back and forth between the + * two. + * + * Whether an expression is used is defined by the context in which it + * appears. E.g. a "statement" in a block is considered used if it is the + * last expression in that block AND the block itself is used -- a + * recursive call to `isUsed`, one level higher in the syntax tree. + * + * The methods are _conservative_, erring on the side of answering `true`. + */ + private fun isUsed(psiElement: PsiElement): Boolean { + return when (psiElement) { + /** + * DECLARATIONS + */ + // Inner PSI of KtLambdaExpressions. Used if the containing KtLambdaExpression is. + is KtFunctionLiteral -> + doesParentUseChild(psiElement.parent, psiElement) + + // KtNamedFunction includes `fun() { ... }` lambda syntax. No other + // "named" functions can be expressions. + is KtNamedFunction -> + doesParentUseChild(psiElement.parent, psiElement) + + // No other declarations are considered expressions + is KtDeclaration -> + false + + /** + * EXPRESSIONS + */ + // A handful of expression are never considered used: + + // - Everything of type `Nothing` + is KtThrowExpression -> + false + is KtReturnExpression -> + false + is KtBreakExpression -> + false + is KtContinueExpression -> + false + + // - Loops + is KtLoopExpression -> + false + + // - The `this` in `constructor(x: Int) : this(x)` + is KtConstructorDelegationReferenceExpression -> + false + + // - Administrative node for EnumEntries. Never used as expression. + is KtEnumEntrySuperclassReferenceExpression -> + false + + // - The "reference" in a constructor call. E.g. `C` in `C()` + is KtConstructorCalleeExpression -> + false + + // - Labels themselves: `@label` in return`@label` or `label@`while... + is KtLabelReferenceExpression -> + false + + // - The operation symbol itself in binary and unary operations: `!!`, `+`... + is KtOperationReferenceExpression -> + false + + // All other expressions are used if their parent expression uses them. + else -> + doesParentUseChild(psiElement.parent, psiElement) + } + } + + private fun doesParentUseChild(parent: PsiElement, child: PsiElement): Boolean { + return when (parent) { + /** + * NON-EXPRESSION PARENTS + */ + // KtValueArguments are a container for call-sites, and use exactly the + // argument expression they wrap. + is KtValueArgument -> + parent.getArgumentExpression() == child + + // KtContainerNode are containers used in `KtIfExpressions`, and should be regarded + // as parentheses for the purpose of this analysis. + is KtContainerNode -> + // !!!!CAUTION!!!! Not `parentUse(parent.parent, _parent_)` + // Here we assume the parent (e.g. If condition) statement + // ignores the ContainerNode when accessing child + doesParentUseChild(parent.parent, child) + + // KtWhenEntry/WhenCondition are containers used in KtWhenExpressions, ard + // should be regarded as parentheses. + is KtWhenEntry -> + (parent.expression == child && isUsed(parent.parent)) || child in parent.conditions + + is KtWhenCondition -> + doesParentUseChild(parent.parent, parent) + + // Type parameters, return types and other annotations are all contained in KtUserType, + // and are never considered used as expressions + is KtUserType -> + false + + // Only top-level named declarations have KtFile/KtScript Parents, and are never considered used + is KtFile -> + false + is KtScript -> + false + + // Only class members have KtClassBody parents, and are never considered used + is KtClassBody -> + false + + // $_ and ${_} contexts use their inner expression + is KtStringTemplateEntry -> + parent.expression == child + + // Catch blocks are used if the parent-try uses the catch block + is KtCatchClause -> + doesParentUseChild(parent.parent, parent) + + // Finally blocks are never used + is KtFinallySection -> + false + + !is KtExpression -> + error("Unhandled Non-KtExpression parent of KtExpression: ${parent::class}") + + /** + * EXPRESSIONS + */ + // Enum entries, type parameters, lamda expressions and script + // initializers never use any child expressions. + is KtEnumEntry -> + false + is KtTypeParameter -> + false + is KtLambdaExpression -> + false + is KtScriptInitializer -> + false + + // The last expression of a block is considered used iff the block itself is used. + is KtBlockExpression -> + parent.statements.lastOrNull() == child && isUsed(parent) + + // Destructuring declarations use their initializer. + is KtDestructuringDeclaration -> + parent.initializer == child + + // Backing field declarations use their initializer. + is KtBackingField -> + parent.initializer == child + + // Property accessors can use their bodies if not blocks. + is KtPropertyAccessor -> + parent.bodyExpression == child && doesPropertyAccessorUseBody(parent, child) + + // Lambdas do not use their expression-blocks if they are inferred + // to be of unit type + is KtFunctionLiteral -> + parent.bodyBlockExpression == child && !returnsUnit(parent) + + // Named functions do not use their bodies if the function itself returns unit + // UNLESS it's an expression body/lambda of type Unit. + /** See [doesNamedFunctionUseBody] */ + is KtNamedFunction -> + doesNamedFunctionUseBody(parent, child) + + // Function parameter declarations use their default value expressions. + is KtParameter -> + parent.defaultValue == child + + // Variable declarations use their initializer. + is KtVariableDeclaration -> + parent.initializer == child + + // Binary expressions always use both operands. + is KtBinaryExpression -> + parent.left == child || parent.right == child + + // Binary expressions with type RHS always use its operand. + is KtBinaryExpressionWithTypeRHS -> + parent.left == child + + // Is expressions always use their LHS. + is KtIsExpression -> + parent.leftHandSide == child + + // Unary expressions always use its operand. + is KtUnaryExpression -> + parent.baseExpression == child + + // Qualified expressions always use its receiver. The selector is + // used iff the qualified expression is. + is KtQualifiedExpression -> + parent.receiverExpression == child || (parent.selectorExpression == child && isUsed(parent)) + + // Array accesses use both receiver and index. + is KtArrayAccessExpression -> + child in parent.indexExpressions || parent.arrayExpression == child + + // Calls use only the callee directly -- arguments are wrapped in a + // KtValueArgument container + is KtCallExpression -> + parent.calleeExpression == child && doesCallExpressionUseCallee(child) + + // Collection literals use each of its constituent expressions. + is KtCollectionLiteralExpression -> + child in parent.getInnerExpressions() + + // Annotations are regarded as parentheses. The annotation itself is never used. + is KtAnnotatedExpression -> + parent.baseExpression == child && isUsed(parent) + + /** See [doesDoubleColonUseLHS] */ + is KtDoubleColonExpression -> + parent.lhs == child && doesDoubleColonUseLHS(child) + + // Parentheses are ignored for this analysis. + is KtParenthesizedExpression -> + doesParentUseChild(parent.parent, parent) + + // When expressions use the subject expression _unless_ the first branch in the + // when is an `else`. + is KtWhenExpression -> + parent.subjectExpression == child && parent.entries.firstOrNull()?.isElse == false + + // Throw expressions use the expression thrown. + is KtThrowExpression -> + parent.thrownExpression == child + + // Body and catch blocks of try-catch expressions are used if the try-catch itself + // is used. + is KtTryExpression -> + (parent.tryBlock == child || child in parent.catchClauses) && isUsed(parent) + + // If expressions always use their condition, and the branches are used if the + // If itself is used as an expression. + is KtIfExpression -> + parent.condition == child || + ((parent.then == child || + parent.`else` == child) && isUsed(parent)) + + // For expressions use their loop range expression. + is KtForExpression -> + parent.loopRange == child + + // While, DoWhile loops use their conditions, not their bodies + is KtWhileExpressionBase -> + parent.condition == child + + // Return expressions use the return value + is KtReturnExpression -> + parent.returnedExpression == child + + // Labels are regarded as parentheses for this analysis. The label itself is never used. + is KtLabeledExpression -> + parent.baseExpression == child && isUsed(parent) + + // No children. + is KtConstantExpression -> + false + + // no children of class and script initializers are used + is KtAnonymousInitializer -> + false + + // no child expressions of primary constructors. + is KtPrimaryConstructor -> + false // error? + // no children of secondary constructs are used. + is KtSecondaryConstructor -> + false + + // KtClass, KtObjectDeclaration, KtTypeAlias has no expression children + is KtClassLikeDeclaration -> + false // has no expression children + + // Simple names do not have expression children + // Labels, operations, references by name + is KtSimpleNameExpression -> + false + + // this/super in constructor delegations. No expression children + is KtConstructorDelegationReferenceExpression -> + false + + // Object Literal expressions use none of its children. + is KtObjectLiteralExpression -> + false + + // break, continue, super, this do not have children + is KtBreakExpression -> + false + is KtContinueExpression -> + false + is KtSuperExpression -> + false + is KtThisExpression -> + false + + // No direct expression children + is KtStringTemplateExpression -> + false + + else -> + error("Unhandled KtElement subtype: ${parent::class}") + } + } +} + +/** + * The left hand side of a `::` is regarded as used unless it refers to a type. + * We decide that the LHS is a type reference by checking if the left hand + * side is a (qualified) name, and, in case it _is_, resolving that name. + * + * If it resolves to a non-class declaration, it does _not_ refer to a type. + */ +private fun doesDoubleColonUseLHS(lhs: PsiElement): Boolean { + val reference = when (val inner = lhs.unwrapParenthesesLabelsAndAnnotations()) { + is KtReferenceExpression -> + inner.mainReference + is KtDotQualifiedExpression -> + (inner.selectorExpression as? KtReferenceExpression)?.mainReference ?: return true + else -> + return true + } + val resolution = reference.resolve() + return resolution != null && resolution !is KtClass +} + +/** + * Invocations of _statically named_ callables is not considered a use. E.g. + * consider + * + * 1) fun f() { 54 }; f() + * 2) val f = { 54 }; f() + * + * in which the `f` in 2) is regarded as used and `f` in 1) is not. + */ +private fun doesCallExpressionUseCallee(callee: PsiElement): Boolean { + return callee !is KtReferenceExpression || + analyze(callee) { + isSimpleVariableAccessCall(callee) + } +} + +/** + * The body of setters are always used. The body of getters are only used if they are expression bodies. + */ +private fun doesPropertyAccessorUseBody(propertyAccessor: KtPropertyAccessor, body: PsiElement): Boolean { + return propertyAccessor.isSetter || (propertyAccessor.isGetter && body !is KtBlockExpression) +} + +/** + * Named functions do not consider their bodies used if the function itself + * returns Unit UNLESS the function body is an expression body and the body is + * of type Unit. + */ +private fun doesNamedFunctionUseBody(namedFunction: KtNamedFunction, body: PsiElement): Boolean = + when { + !returnsUnit(namedFunction) -> + true + namedFunction.bodyBlockExpression == body -> + false + namedFunction.bodyExpression == body -> + analyze(namedFunction) { + (body as KtExpression).getKtType()?.isUnit == true + } + else -> + false + } + + +private fun KtAnalysisSession.isSimpleVariableAccessCall(reference: KtReferenceExpression): Boolean = + when (val resolution = reference.resolveCall()) { + is KtSuccessCallInfo -> + resolution.call is KtSimpleVariableAccessCall + else -> + false + } + +private fun returnsUnit(declaration: KtDeclaration): Boolean { + return analyze(declaration) { + declaration.getReturnKtType().isUnit + } } \ No newline at end of file diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt index f18b1ac90ec..44a1707d525 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt @@ -96,7 +96,12 @@ internal class KtFirExpressionTypeProvider( } override fun getReturnTypeForKtDeclaration(declaration: KtDeclaration): KtType { - val firDeclaration = declaration.getOrBuildFirOfType(firResolveSession) + val firDeclaration = when { + declaration is KtNamedFunction && declaration.name == null -> + declaration.getOrBuildFirOfType(firResolveSession).anonymousFunction + else -> + declaration.getOrBuildFirOfType(firResolveSession) + } return firDeclaration.returnTypeRef.coneType.asKtType() } diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java new file mode 100644 index 00000000000..2f1ed276fd9 --- /dev/null +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -0,0 +1,2004 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.analysis.api.fir.test.cases.generated.cases.components.expressionInfoProvider; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider.AbstractIsUsedAsExpressionTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression") +@TestDataPath("$PROJECT_ROOT") +public class FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated extends AbstractIsUsedAsExpressionTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Dependent, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInIsUsedAsExpression() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("annotatedExpr.kt") + public void testAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt"); + } + + @Test + @TestMetadata("annotatedExprAnnotation.kt") + public void testAnnotatedExprAnnotation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt"); + } + + @Test + @TestMetadata("annotatedExprBody.kt") + public void testAnnotatedExprBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt"); + } + + @Test + @TestMetadata("annotatedExprBodyUnused.kt") + public void testAnnotatedExprBodyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt"); + } + + @Test + @TestMetadata("annotationArg.kt") + public void testAnnotationArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteral.kt") + public void testAnnotationCollectionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteralEntry.kt") + public void testAnnotationCollectionLiteralEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt"); + } + + @Test + @TestMetadata("annotationName.kt") + public void testAnnotationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt"); + } + + @Test + @TestMetadata("argument.kt") + public void testArgument() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt"); + } + + @Test + @TestMetadata("arrayAccess.kt") + public void testArrayAccess() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndex.kt") + public void testArrayAccessComputedIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndexIndex.kt") + public void testArrayAccessComputedIndexIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessIndex.kt") + public void testArrayAccessIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessLHS.kt") + public void testArrayAccessLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiver.kt") + public void testArrayAccessModificationComputedReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiver.kt") + public void testArrayAccessModificationComputedReceiverReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiverInner.kt") + public void testArrayAccessModificationComputedReceiverReceiverInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationReceiver.kt") + public void testArrayAccessModificationReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessUnused.kt") + public void testArrayAccessUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt"); + } + + @Test + @TestMetadata("asExpression.kt") + public void testAsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCall.kt") + public void testAsExpressionElvisCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallLHS.kt") + public void testAsExpressionElvisCallLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHS.kt") + public void testAsExpressionElvisCallRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHSUsed.kt") + public void testAsExpressionElvisCallRHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallUsed.kt") + public void testAsExpressionElvisCallUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt"); + } + + @Test + @TestMetadata("asExpressionInner.kt") + public void testAsExpressionInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt"); + } + + @Test + @TestMetadata("asExpressionLHS.kt") + public void testAsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt"); + } + + @Test + @TestMetadata("asExpressionNullable.kt") + public void testAsExpressionNullable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt"); + } + + @Test + @TestMetadata("asExpressionNullableInner.kt") + public void testAsExpressionNullableInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLet.kt") + public void testAsExpressionNullableLet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlock.kt") + public void testAsExpressionNullableLetBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlockUsed.kt") + public void testAsExpressionNullableLetBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetExplicitIt.kt") + public void testAsExpressionNullableLetExplicitIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetIt.kt") + public void testAsExpressionNullableLetIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetName.kt") + public void testAsExpressionNullableLetName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetUsed.kt") + public void testAsExpressionNullableLetUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt"); + } + + @Test + @TestMetadata("asExpressionRHS.kt") + public void testAsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt"); + } + + @Test + @TestMetadata("asExpressionUsed.kt") + public void testAsExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt"); + } + + @Test + @TestMetadata("backingField.kt") + public void testBackingField() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt"); + } + + @Test + @TestMetadata("backingFieldDecl.kt") + public void testBackingFieldDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt"); + } + + @Test + @TestMetadata("backingFieldInitializer.kt") + public void testBackingFieldInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt"); + } + + @Test + @TestMetadata("break.kt") + public void testBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt"); + } + + @Test + @TestMetadata("callReceiver.kt") + public void testCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt"); + } + + @Test + @TestMetadata("callReceiverInParens.kt") + public void testCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt"); + } + + @Test + @TestMetadata("callReceiverParens.kt") + public void testCallReceiverParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt"); + } + + @Test + @TestMetadata("callableReference.kt") + public void testCallableReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt"); + } + + @Test + @TestMetadata("callableReferenceDirectCall.kt") + public void testCallableReferenceDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceIndirectCall.kt") + public void testCallableReferenceIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceLHS.kt") + public void testCallableReferenceLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHS.kt") + public void testCallableReferenceRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHSUnused.kt") + public void testCallableReferenceRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHS.kt") + public void testCallableReferenceStaticLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSDirectCall.kt") + public void testCallableReferenceStaticLHSDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSIndirectCall.kt") + public void testCallableReferenceStaticLHSIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSLHS.kt") + public void testCallableReferenceStaticLHSLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHS.kt") + public void testCallableReferenceStaticLHSRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHSUnused.kt") + public void testCallableReferenceStaticLHSRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceUnused.kt") + public void testCallableReferenceUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt"); + } + + @Test + @TestMetadata("classConstructorInvocation.kt") + public void testClassConstructorInvocation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt"); + } + + @Test + @TestMetadata("classConstructorInvocationName.kt") + public void testClassConstructorInvocationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt"); + } + + @Test + @TestMetadata("classDecl.kt") + public void testClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt"); + } + + @Test + @TestMetadata("classDeclImplementsInterface.kt") + public void testClassDeclImplementsInterface() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt"); + } + + @Test + @TestMetadata("classDeclImplementsTypeParameter.kt") + public void testClassDeclImplementsTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt"); + } + + @Test + @TestMetadata("classDeclTypeParam.kt") + public void testClassDeclTypeParam() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt"); + } + + @Test + @TestMetadata("classInitBlock.kt") + public void testClassInitBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt"); + } + + @Test + @TestMetadata("classInitExpr.kt") + public void testClassInitExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt"); + } + + @Test + @TestMetadata("classInitializer.kt") + public void testClassInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVar.kt") + public void testClassLiteralExpressionComputedVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarParenthesized.kt") + public void testClassLiteralExpressionComputedVarParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnused.kt") + public void testClassLiteralExpressionComputedVarUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnusedWholeExpression.kt") + public void testClassLiteralExpressionComputedVarUnusedWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSParenthesizedUsed.kt") + public void testClassLiteralExpressionLHSParenthesizedUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSUsed.kt") + public void testClassLiteralExpressionLHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnused.kt") + public void testClassLiteralExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnusedLHS.kt") + public void testClassLiteralExpressionUnusedLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUsed.kt") + public void testClassLiteralExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUnused.kt") + public void testCollectionLiteralInvalidUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUsed.kt") + public void testCollectionLiteralInvalidUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt"); + } + + @Test + @TestMetadata("companionObjectDecl.kt") + public void testCompanionObjectDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt"); + } + + @Test + @TestMetadata("compoundAssignRHS.kt") + public void testCompoundAssignRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentException.kt") + public void testCompoundAssignmentException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt"); + } + + @Test + @TestMetadata("compoundAssignmentExceptionCustom.kt") + public void testCompoundAssignmentExceptionCustom() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToProperty.kt") + public void testCompoundAssignmentToProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyLHS.kt") + public void testCompoundAssignmentToPropertyLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyRHS.kt") + public void testCompoundAssignmentToPropertyRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReceiver.kt") + public void testCompoundAssignmentToPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReference.kt") + public void testCompoundAssignmentToPropertyReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt"); + } + + @Test + @TestMetadata("computedClassExpression.kt") + public void testComputedClassExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt"); + } + + @Test + @TestMetadata("computedClassExpressionLHS.kt") + public void testComputedClassExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt"); + } + + @Test + @TestMetadata("constructorCallee.kt") + public void testConstructorCallee() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt"); + } + + @Test + @TestMetadata("constructorCalleeUsed.kt") + public void testConstructorCalleeUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt"); + } + + @Test + @TestMetadata("constructorInvocationAsPropertyReceiver.kt") + public void testConstructorInvocationAsPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt"); + } + + @Test + @TestMetadata("constructorPrimarySuperCall.kt") + public void testConstructorPrimarySuperCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt"); + } + + @Test + @TestMetadata("constructorSecondary.kt") + public void testConstructorSecondary() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlock.kt") + public void testConstructorSecondaryBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlockBody.kt") + public void testConstructorSecondaryBlockBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt"); + } + + @Test + @TestMetadata("constructorSecondaryDefaultArg.kt") + public void testConstructorSecondaryDefaultArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt"); + } + + @Test + @TestMetadata("constructorSuperReference.kt") + public void testConstructorSuperReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt"); + } + + @Test + @TestMetadata("constructorSuperReferenceArg.kt") + public void testConstructorSuperReferenceArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt"); + } + + @Test + @TestMetadata("continue.kt") + public void testContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambda.kt") + public void testDefaultExtensionLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyAccessOnThis.kt") + public void testDefaultExtensionLambdaPropertyAccessOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyOnThis.kt") + public void testDefaultExtensionLambdaPropertyOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaThis.kt") + public void testDefaultExtensionLambdaThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt"); + } + + @Test + @TestMetadata("default_parameter.kt") + public void testDefault_parameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); + } + + @Test + @TestMetadata("destructuringDecl.kt") + public void testDestructuringDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoop.kt") + public void testDestructuringDeclInForLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopRHS.kt") + public void testDestructuringDeclInForLoopRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopVariable.kt") + public void testDestructuringDeclInForLoopVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt"); + } + + @Test + @TestMetadata("destructuringDeclLHSVar.kt") + public void testDestructuringDeclLHSVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt"); + } + + @Test + @TestMetadata("destructuringDeclRHS.kt") + public void testDestructuringDeclRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclType.kt") + public void testDestructuringDeclType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt"); + } + + @Test + @TestMetadata("doWhileCondition.kt") + public void testDoWhileCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt"); + } + + @Test + @TestMetadata("doWhileExpr.kt") + public void testDoWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt"); + } + + @Test + @TestMetadata("doWhileLoopBlock.kt") + public void testDoWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt"); + } + + @Test + @TestMetadata("doubleColonClassLHS.kt") + public void testDoubleColonClassLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt"); + } + + @Test + @TestMetadata("doubleColonCompanionLHS.kt") + public void testDoubleColonCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonLHS.kt") + public void testDoubleColonLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHS.kt") + public void testDoubleColonUnqualifiedCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHSParenthesized.kt") + public void testDoubleColonUnqualifiedCompanionLHSParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt"); + } + + @Test + @TestMetadata("elvisWithBreak.kt") + public void testElvisWithBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt"); + } + + @Test + @TestMetadata("elvisWithContinue.kt") + public void testElvisWithContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt"); + } + + @Test + @TestMetadata("elvisWithReturn.kt") + public void testElvisWithReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt"); + } + + @Test + @TestMetadata("elvisWithThrow.kt") + public void testElvisWithThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt"); + } + + @Test + @TestMetadata("enumDecl.kt") + public void testEnumDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt"); + } + + @Test + @TestMetadata("enumDeclArg.kt") + public void testEnumDeclArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructor.kt") + public void testEnumDeclConstructor() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorArg.kt") + public void testEnumDeclConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorThis.kt") + public void testEnumDeclConstructorThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArg.kt") + public void testEnumDeclPrimaryConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArgList.kt") + public void testEnumDeclPrimaryConstructorArgList() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt"); + } + + @Test + @TestMetadata("expressionBodyLambdaReturningInt.kt") + public void testExpressionBodyLambdaReturningInt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt"); + } + + @Test + @TestMetadata("expressionBodyUnitLambda.kt") + public void testExpressionBodyUnitLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymous.kt") + public void testExtensionFunctionAnonymous() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymousReceiver.kt") + public void testExtensionFunctionAnonymousReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt"); + } + + @Test + @TestMetadata("forExpr.kt") + public void testForExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt"); + } + + @Test + @TestMetadata("forExprBlock.kt") + public void testForExprBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt"); + } + + @Test + @TestMetadata("forExprInvalid.kt") + public void testForExprInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt"); + } + + @Test + @TestMetadata("forExprLoopVar.kt") + public void testForExprLoopVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt"); + } + + @Test + @TestMetadata("forExprRangeExpr.kt") + public void testForExprRangeExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt"); + } + + @Test + @TestMetadata("forExprRangeExprUpperBound.kt") + public void testForExprRangeExprUpperBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt"); + } + + @Test + @TestMetadata("forLoopInvalid.kt") + public void testForLoopInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt"); + } + + @Test + @TestMetadata("functionLiteral.kt") + public void testFunctionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBody.kt") + public void testFunctionLiteralExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyBody.kt") + public void testFunctionLiteralExpressionBodyBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambda.kt") + public void testFunctionLiteralExpressionBodyLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlock.kt") + public void testFunctionLiteralExpressionBodyLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInner.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInnerUnit.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInnerUnit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExtensionReceiverType.kt") + public void testFunctionLiteralExtensionReceiverType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt"); + } + + @Test + @TestMetadata("ifBranches_unused.kt") + public void testIfBranches_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt"); + } + + @Test + @TestMetadata("ifBranches_used.kt") + public void testIfBranches_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt"); + } + + @Test + @TestMetadata("ifConditionParens.kt") + public void testIfConditionParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt"); + } + + @Test + @TestMetadata("if_subject.kt") + public void testIf_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt"); + } + + @Test + @TestMetadata("implicitNullBlock.kt") + public void testImplicitNullBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt"); + } + + @Test + @TestMetadata("implicitNullBlock2.kt") + public void testImplicitNullBlock2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt"); + } + + @Test + @TestMetadata("implicitNullBlockMultiStatements.kt") + public void testImplicitNullBlockMultiStatements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt"); + } + + @Test + @TestMetadata("initializer_when_branch.kt") + public void testInitializer_when_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block.kt") + public void testInitializer_when_branch_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block_stmt.kt") + public void testInitializer_when_branch_block_stmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt"); + } + + @Test + @TestMetadata("innerClassDecl.kt") + public void testInnerClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt"); + } + + @Test + @TestMetadata("interfaceMemberDecl.kt") + public void testInterfaceMemberDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt"); + } + + @Test + @TestMetadata("invokedLocalVariable.kt") + public void testInvokedLocalVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt"); + } + + @Test + @TestMetadata("isExpression.kt") + public void testIsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt"); + } + + @Test + @TestMetadata("isExpressionLHS.kt") + public void testIsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt"); + } + + @Test + @TestMetadata("isExpressionLHSInsideParens.kt") + public void testIsExpressionLHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionLHSParens.kt") + public void testIsExpressionLHSParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt"); + } + + @Test + @TestMetadata("isExpressionOperator.kt") + public void testIsExpressionOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt"); + } + + @Test + @TestMetadata("isExpressionRHS.kt") + public void testIsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt"); + } + + @Test + @TestMetadata("isExpressionRHSInsideParens.kt") + public void testIsExpressionRHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionUnused.kt") + public void testIsExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt"); + } + + @Test + @TestMetadata("labelledReturn.kt") + public void testLabelledReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt"); + } + + @Test + @TestMetadata("labelledReturnLabel.kt") + public void testLabelledReturnLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt"); + } + + @Test + @TestMetadata("labelledReturnValue.kt") + public void testLabelledReturnValue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt"); + } + + @Test + @TestMetadata("labelledThis.kt") + public void testLabelledThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt"); + } + + @Test + @TestMetadata("labelledThisLabel.kt") + public void testLabelledThisLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt"); + } + + @Test + @TestMetadata("lambdaWithArgs.kt") + public void testLambdaWithArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsArgs.kt") + public void testLambdaWithArgsArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsBody.kt") + public void testLambdaWithArgsBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt"); + } + + @Test + @TestMetadata("lambda_unused.kt") + public void testLambda_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt"); + } + + @Test + @TestMetadata("lambda_unused_invoke.kt") + public void testLambda_unused_invoke() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt"); + } + + @Test + @TestMetadata("localFunctionDecl.kt") + public void testLocalFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt"); + } + + @Test + @TestMetadata("loopLabel.kt") + public void testLoopLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreak.kt") + public void testLoopLabelBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt"); + } + + @Test + @TestMetadata("loopLabelBreakLabel.kt") + public void testLoopLabelBreakLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreakUsed.kt") + public void testLoopLabelBreakUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt"); + } + + @Test + @TestMetadata("memberFunctionDecl.kt") + public void testMemberFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt"); + } + + @Test + @TestMetadata("nonunit_lambda.kt") + public void testNonunit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt"); + } + + @Test + @TestMetadata("nonunit_lambda_multiple_statements.kt") + public void testNonunit_lambda_multiple_statements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt"); + } + + @Test + @TestMetadata("objectDeclaration.kt") + public void testObjectDeclaration() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt"); + } + + @Test + @TestMetadata("objectDeclarationProperty.kt") + public void testObjectDeclarationProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt"); + } + + @Test + @TestMetadata("objectLiteral.kt") + public void testObjectLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt"); + } + + @Test + @TestMetadata("objectLiteralMember.kt") + public void testObjectLiteralMember() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt"); + } + + @Test + @TestMetadata("object_unused.kt") + public void testObject_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt"); + } + + @Test + @TestMetadata("object_used.kt") + public void testObject_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt"); + } + + @Test + @TestMetadata("parameterDecl.kt") + public void testParameterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt"); + } + + @Test + @TestMetadata("parameterType.kt") + public void testParameterType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnused.kt") + public void testPostfixBangBangUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedArg.kt") + public void testPostfixBangBangUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedOp.kt") + public void testPostfixBangBangUnusedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsed.kt") + public void testPostfixBangBangUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsedOp.kt") + public void testPostfixBangBangUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt"); + } + + @Test + @TestMetadata("postfixDecrementException.kt") + public void testPostfixDecrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt"); + } + + @Test + @TestMetadata("postfixIncrementException.kt") + public void testPostfixIncrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt"); + } + + @Test + @TestMetadata("postfixOperatorTechnicallyUnused.kt") + public void testPostfixOperatorTechnicallyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsed.kt") + public void testPostfixOperatorUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedArg.kt") + public void testPostfixOperatorUsedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedOp.kt") + public void testPostfixOperatorUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt"); + } + + @Test + @TestMetadata("prefixOperator.kt") + public void testPrefixOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorArg.kt") + public void testPrefixOperatorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt"); + } + + @Test + @TestMetadata("prefixOperatorArgInParens.kt") + public void testPrefixOperatorArgInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorInParens.kt") + public void testPrefixOperatorInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorOperator.kt") + public void testPrefixOperatorOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnused.kt") + public void testPrefixOperatorUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnusedArg.kt") + public void testPrefixOperatorUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt"); + } + + @Test + @TestMetadata("propertyAsCallReceiverInParens.kt") + public void testPropertyAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyCall.kt") + public void testPropertyCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt"); + } + + @Test + @TestMetadata("propertyDecl.kt") + public void testPropertyDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterBody.kt") + public void testPropertyGetterBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt"); + } + + @Test + @TestMetadata("propertyGetterDecl.kt") + public void testPropertyGetterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterExpressionBody.kt") + public void testPropertyGetterExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt"); + } + + @Test + @TestMetadata("propertyGetterFieldRef.kt") + public void testPropertyGetterFieldRef() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt"); + } + + @Test + @TestMetadata("propertyName.kt") + public void testPropertyName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGet.kt") + public void testPropertyNameFieldGet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGetUnused.kt") + public void testPropertyNameFieldGetUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt"); + } + + @Test + @TestMetadata("propertyReceiver.kt") + public void testPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt"); + } + + @Test + @TestMetadata("propertyReferenceAsCallReceiverInParens.kt") + public void testPropertyReferenceAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyReferenceProperty.kt") + public void testPropertyReferenceProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt"); + } + + @Test + @TestMetadata("propertyReferenceReceiver.kt") + public void testPropertyReferenceReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt"); + } + + @Test + @TestMetadata("propertySetterArg.kt") + public void testPropertySetterArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt"); + } + + @Test + @TestMetadata("propertySetterCompoundAssign.kt") + public void testPropertySetterCompoundAssign() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt"); + } + + @Test + @TestMetadata("propertySetterFieldWrite.kt") + public void testPropertySetterFieldWrite() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt"); + } + + @Test + @TestMetadata("redundantLabel.kt") + public void testRedundantLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt"); + } + + @Test + @TestMetadata("redundantLabelParens.kt") + public void testRedundantLabelParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt"); + } + + @Test + @TestMetadata("redundantLabelParensWholeExpression.kt") + public void testRedundantLabelParensWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt"); + } + + @Test + @TestMetadata("redundantLabelParenthesized.kt") + public void testRedundantLabelParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt"); + } + + @Test + @TestMetadata("redundantLabelUsed.kt") + public void testRedundantLabelUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt"); + } + + @Test + @TestMetadata("redundantLabelledExpr.kt") + public void testRedundantLabelledExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt"); + } + + @Test + @TestMetadata("return.kt") + public void testReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt"); + } + + @Test + @TestMetadata("returnType.kt") + public void testReturnType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt"); + } + + @Test + @TestMetadata("return_explicit_unit.kt") + public void testReturn_explicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt"); + } + + @Test + @TestMetadata("return_implicit_unit.kt") + public void testReturn_implicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt"); + } + + @Test + @TestMetadata("return_value.kt") + public void testReturn_value() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt"); + } + + @Test + @TestMetadata("run_block.kt") + public void testRun_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt"); + } + + @Test + @TestMetadata("stringTemplate.kt") + public void testStringTemplate() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt"); + } + + @Test + @TestMetadata("stringTemplateBracesInner.kt") + public void testStringTemplateBracesInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt"); + } + + @Test + @TestMetadata("stringTemplateVar.kt") + public void testStringTemplateVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt"); + } + + @Test + @TestMetadata("superExpression.kt") + public void testSuperExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt"); + } + + @Test + @TestMetadata("superExpressionArg.kt") + public void testSuperExpressionArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt"); + } + + @Test + @TestMetadata("superExpressionSuper.kt") + public void testSuperExpressionSuper() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt"); + } + + @Test + @TestMetadata("throw.kt") + public void testThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt"); + } + + @Test + @TestMetadata("throwStmt.kt") + public void testThrowStmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt"); + } + + @Test + @TestMetadata("throw_if_branch.kt") + public void testThrow_if_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt"); + } + + @Test + @TestMetadata("toplevelDecl.kt") + public void testToplevelDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCall.kt") + public void testToplevelFunctionCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCallReference.kt") + public void testToplevelFunctionCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCall.kt") + public void testToplevelFunctionReferenceCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallArg.kt") + public void testToplevelFunctionReferenceCallArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReceiver.kt") + public void testToplevelFunctionReferenceCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReference.kt") + public void testToplevelFunctionReferenceCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambda.kt") + public void testTrailingAnnotatedLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaAnnotatedExpr.kt") + public void testTrailingAnnotatedLambdaAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlock.kt") + public void testTrailingAnnotatedLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlockInner.kt") + public void testTrailingAnnotatedLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaFun.kt") + public void testTrailingAnnotatedLambdaFun() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt"); + } + + @Test + @TestMetadata("try.kt") + public void testTry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt"); + } + + @Test + @TestMetadata("tryBlockBlock.kt") + public void testTryBlockBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt"); + } + + @Test + @TestMetadata("tryBlockBlockUsed.kt") + public void testTryBlockBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt"); + } + + @Test + @TestMetadata("tryBlockInner.kt") + public void testTryBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt"); + } + + @Test + @TestMetadata("tryBlockInnerUsed.kt") + public void testTryBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchArg.kt") + public void testTryCatchArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt"); + } + + @Test + @TestMetadata("tryCatchArgUsed.kt") + public void testTryCatchArgUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlock.kt") + public void testTryCatchBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInner.kt") + public void testTryCatchBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInnerUsed.kt") + public void testTryCatchBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlockUsed.kt") + public void testTryCatchBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlock.kt") + public void testTryFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInner.kt") + public void testTryFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInnerUsed.kt") + public void testTryFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockUsed.kt") + public void testTryFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlock.kt") + public void testTryOnlyFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInner.kt") + public void testTryOnlyFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInnerUsed.kt") + public void testTryOnlyFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockUsed.kt") + public void testTryOnlyFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInner.kt") + public void testTryThrowsToFinallyInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInnerUsed.kt") + public void testTryThrowsToFinallyInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt"); + } + + @Test + @TestMetadata("tryUsed.kt") + public void testTryUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt"); + } + + @Test + @TestMetadata("try_catch_binop.kt") + public void testTry_catch_binop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt"); + } + + @Test + @TestMetadata("typeAlias.kt") + public void testTypeAlias() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt"); + } + + @Test + @TestMetadata("typeAliasLocal.kt") + public void testTypeAliasLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt"); + } + + @Test + @TestMetadata("typeAliasParameter.kt") + public void testTypeAliasParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBound.kt") + public void testTypeAliasParameterBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBoundVariance.kt") + public void testTypeAliasParameterBoundVariance() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt"); + } + + @Test + @TestMetadata("typeAliasParameterWithBounds.kt") + public void testTypeAliasParameterWithBounds() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt"); + } + + @Test + @TestMetadata("typeAliasRHS.kt") + public void testTypeAliasRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt"); + } + + @Test + @TestMetadata("typeAliasRHSTypeParameter.kt") + public void testTypeAliasRHSTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt"); + } + + @Test + @TestMetadata("unit_lambda.kt") + public void testUnit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt"); + } + + @Test + @TestMetadata("unit_lambda_nonunit_function.kt") + public void testUnit_lambda_nonunit_function() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt"); + } + + @Test + @TestMetadata("value_initializer.kt") + public void testValue_initializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt"); + } + + @Test + @TestMetadata("var_reassignment_if.kt") + public void testVar_reassignment_if() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt"); + } + + @Test + @TestMetadata("variableDeclarationDecl.kt") + public void testVariableDeclarationDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt"); + } + + @Test + @TestMetadata("variableDeclarationLHSType.kt") + public void testVariableDeclarationLHSType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt"); + } + + @Test + @TestMetadata("variableDeclarationRHS.kt") + public void testVariableDeclarationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt"); + } + + @Test + @TestMetadata("when.kt") + public void testWhen() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt"); + } + + @Test + @TestMetadata("when2.kt") + public void testWhen2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt"); + } + + @Test + @TestMetadata("whenIsBranchMultiple.kt") + public void testWhenIsBranchMultiple() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt"); + } + + @Test + @TestMetadata("whenIsBranchType.kt") + public void testWhenIsBranchType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt"); + } + + @Test + @TestMetadata("whenUsed.kt") + public void testWhenUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt"); + } + + @Test + @TestMetadata("whenWithVal.kt") + public void testWhenWithVal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt"); + } + + @Test + @TestMetadata("whenWithValRHS.kt") + public void testWhenWithValRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt"); + } + + @Test + @TestMetadata("when_branch.kt") + public void testWhen_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt"); + } + + @Test + @TestMetadata("when_branchUsed.kt") + public void testWhen_branchUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt"); + } + + @Test + @TestMetadata("when_condition.kt") + public void testWhen_condition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt"); + } + + @Test + @TestMetadata("when_condition_unreachable.kt") + public void testWhen_condition_unreachable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt"); + } + + @Test + @TestMetadata("when_subject.kt") + public void testWhen_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt"); + } + + @Test + @TestMetadata("when_subject_with_branches.kt") + public void testWhen_subject_with_branches() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt"); + } + + @Test + @TestMetadata("when_syntaxerror.kt") + public void testWhen_syntaxerror() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt"); + } + + @Test + @TestMetadata("whileExpr.kt") + public void testWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt"); + } + + @Test + @TestMetadata("whileLoop.kt") + public void testWhileLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt"); + } + + @Test + @TestMetadata("whileLoopBlock.kt") + public void testWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt"); + } + + @Test + @TestMetadata("whileLoopBody.kt") + public void testWhileLoopBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt"); + } + + @Test + @TestMetadata("whileLoopCondition.kt") + public void testWhileLoopCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt"); + } + + @Test + @TestMetadata("whileLoopConditionLHS.kt") + public void testWhileLoopConditionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt"); + } + + @Test + @TestMetadata("whileLoopConditionRHS.kt") + public void testWhileLoopConditionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt"); + } +} diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java new file mode 100644 index 00000000000..936af657b40 --- /dev/null +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -0,0 +1,2004 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.analysis.api.fir.test.cases.generated.cases.components.expressionInfoProvider; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider.AbstractIsUsedAsExpressionTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression") +@TestDataPath("$PROJECT_ROOT") +public class FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated extends AbstractIsUsedAsExpressionTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInIsUsedAsExpression() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("annotatedExpr.kt") + public void testAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt"); + } + + @Test + @TestMetadata("annotatedExprAnnotation.kt") + public void testAnnotatedExprAnnotation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt"); + } + + @Test + @TestMetadata("annotatedExprBody.kt") + public void testAnnotatedExprBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt"); + } + + @Test + @TestMetadata("annotatedExprBodyUnused.kt") + public void testAnnotatedExprBodyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt"); + } + + @Test + @TestMetadata("annotationArg.kt") + public void testAnnotationArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteral.kt") + public void testAnnotationCollectionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteralEntry.kt") + public void testAnnotationCollectionLiteralEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt"); + } + + @Test + @TestMetadata("annotationName.kt") + public void testAnnotationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt"); + } + + @Test + @TestMetadata("argument.kt") + public void testArgument() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt"); + } + + @Test + @TestMetadata("arrayAccess.kt") + public void testArrayAccess() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndex.kt") + public void testArrayAccessComputedIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndexIndex.kt") + public void testArrayAccessComputedIndexIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessIndex.kt") + public void testArrayAccessIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessLHS.kt") + public void testArrayAccessLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiver.kt") + public void testArrayAccessModificationComputedReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiver.kt") + public void testArrayAccessModificationComputedReceiverReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiverInner.kt") + public void testArrayAccessModificationComputedReceiverReceiverInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationReceiver.kt") + public void testArrayAccessModificationReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessUnused.kt") + public void testArrayAccessUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt"); + } + + @Test + @TestMetadata("asExpression.kt") + public void testAsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCall.kt") + public void testAsExpressionElvisCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallLHS.kt") + public void testAsExpressionElvisCallLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHS.kt") + public void testAsExpressionElvisCallRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHSUsed.kt") + public void testAsExpressionElvisCallRHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallUsed.kt") + public void testAsExpressionElvisCallUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt"); + } + + @Test + @TestMetadata("asExpressionInner.kt") + public void testAsExpressionInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt"); + } + + @Test + @TestMetadata("asExpressionLHS.kt") + public void testAsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt"); + } + + @Test + @TestMetadata("asExpressionNullable.kt") + public void testAsExpressionNullable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt"); + } + + @Test + @TestMetadata("asExpressionNullableInner.kt") + public void testAsExpressionNullableInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLet.kt") + public void testAsExpressionNullableLet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlock.kt") + public void testAsExpressionNullableLetBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlockUsed.kt") + public void testAsExpressionNullableLetBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetExplicitIt.kt") + public void testAsExpressionNullableLetExplicitIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetIt.kt") + public void testAsExpressionNullableLetIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetName.kt") + public void testAsExpressionNullableLetName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetUsed.kt") + public void testAsExpressionNullableLetUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt"); + } + + @Test + @TestMetadata("asExpressionRHS.kt") + public void testAsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt"); + } + + @Test + @TestMetadata("asExpressionUsed.kt") + public void testAsExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt"); + } + + @Test + @TestMetadata("backingField.kt") + public void testBackingField() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt"); + } + + @Test + @TestMetadata("backingFieldDecl.kt") + public void testBackingFieldDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt"); + } + + @Test + @TestMetadata("backingFieldInitializer.kt") + public void testBackingFieldInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt"); + } + + @Test + @TestMetadata("break.kt") + public void testBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt"); + } + + @Test + @TestMetadata("callReceiver.kt") + public void testCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt"); + } + + @Test + @TestMetadata("callReceiverInParens.kt") + public void testCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt"); + } + + @Test + @TestMetadata("callReceiverParens.kt") + public void testCallReceiverParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt"); + } + + @Test + @TestMetadata("callableReference.kt") + public void testCallableReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt"); + } + + @Test + @TestMetadata("callableReferenceDirectCall.kt") + public void testCallableReferenceDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceIndirectCall.kt") + public void testCallableReferenceIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceLHS.kt") + public void testCallableReferenceLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHS.kt") + public void testCallableReferenceRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHSUnused.kt") + public void testCallableReferenceRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHS.kt") + public void testCallableReferenceStaticLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSDirectCall.kt") + public void testCallableReferenceStaticLHSDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSIndirectCall.kt") + public void testCallableReferenceStaticLHSIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSLHS.kt") + public void testCallableReferenceStaticLHSLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHS.kt") + public void testCallableReferenceStaticLHSRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHSUnused.kt") + public void testCallableReferenceStaticLHSRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceUnused.kt") + public void testCallableReferenceUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt"); + } + + @Test + @TestMetadata("classConstructorInvocation.kt") + public void testClassConstructorInvocation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt"); + } + + @Test + @TestMetadata("classConstructorInvocationName.kt") + public void testClassConstructorInvocationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt"); + } + + @Test + @TestMetadata("classDecl.kt") + public void testClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt"); + } + + @Test + @TestMetadata("classDeclImplementsInterface.kt") + public void testClassDeclImplementsInterface() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt"); + } + + @Test + @TestMetadata("classDeclImplementsTypeParameter.kt") + public void testClassDeclImplementsTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt"); + } + + @Test + @TestMetadata("classDeclTypeParam.kt") + public void testClassDeclTypeParam() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt"); + } + + @Test + @TestMetadata("classInitBlock.kt") + public void testClassInitBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt"); + } + + @Test + @TestMetadata("classInitExpr.kt") + public void testClassInitExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt"); + } + + @Test + @TestMetadata("classInitializer.kt") + public void testClassInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVar.kt") + public void testClassLiteralExpressionComputedVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarParenthesized.kt") + public void testClassLiteralExpressionComputedVarParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnused.kt") + public void testClassLiteralExpressionComputedVarUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnusedWholeExpression.kt") + public void testClassLiteralExpressionComputedVarUnusedWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSParenthesizedUsed.kt") + public void testClassLiteralExpressionLHSParenthesizedUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSUsed.kt") + public void testClassLiteralExpressionLHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnused.kt") + public void testClassLiteralExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnusedLHS.kt") + public void testClassLiteralExpressionUnusedLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUsed.kt") + public void testClassLiteralExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUnused.kt") + public void testCollectionLiteralInvalidUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUsed.kt") + public void testCollectionLiteralInvalidUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt"); + } + + @Test + @TestMetadata("companionObjectDecl.kt") + public void testCompanionObjectDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt"); + } + + @Test + @TestMetadata("compoundAssignRHS.kt") + public void testCompoundAssignRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentException.kt") + public void testCompoundAssignmentException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt"); + } + + @Test + @TestMetadata("compoundAssignmentExceptionCustom.kt") + public void testCompoundAssignmentExceptionCustom() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToProperty.kt") + public void testCompoundAssignmentToProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyLHS.kt") + public void testCompoundAssignmentToPropertyLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyRHS.kt") + public void testCompoundAssignmentToPropertyRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReceiver.kt") + public void testCompoundAssignmentToPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReference.kt") + public void testCompoundAssignmentToPropertyReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt"); + } + + @Test + @TestMetadata("computedClassExpression.kt") + public void testComputedClassExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt"); + } + + @Test + @TestMetadata("computedClassExpressionLHS.kt") + public void testComputedClassExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt"); + } + + @Test + @TestMetadata("constructorCallee.kt") + public void testConstructorCallee() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt"); + } + + @Test + @TestMetadata("constructorCalleeUsed.kt") + public void testConstructorCalleeUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt"); + } + + @Test + @TestMetadata("constructorInvocationAsPropertyReceiver.kt") + public void testConstructorInvocationAsPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt"); + } + + @Test + @TestMetadata("constructorPrimarySuperCall.kt") + public void testConstructorPrimarySuperCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt"); + } + + @Test + @TestMetadata("constructorSecondary.kt") + public void testConstructorSecondary() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlock.kt") + public void testConstructorSecondaryBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlockBody.kt") + public void testConstructorSecondaryBlockBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt"); + } + + @Test + @TestMetadata("constructorSecondaryDefaultArg.kt") + public void testConstructorSecondaryDefaultArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt"); + } + + @Test + @TestMetadata("constructorSuperReference.kt") + public void testConstructorSuperReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt"); + } + + @Test + @TestMetadata("constructorSuperReferenceArg.kt") + public void testConstructorSuperReferenceArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt"); + } + + @Test + @TestMetadata("continue.kt") + public void testContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambda.kt") + public void testDefaultExtensionLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyAccessOnThis.kt") + public void testDefaultExtensionLambdaPropertyAccessOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyOnThis.kt") + public void testDefaultExtensionLambdaPropertyOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaThis.kt") + public void testDefaultExtensionLambdaThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt"); + } + + @Test + @TestMetadata("default_parameter.kt") + public void testDefault_parameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); + } + + @Test + @TestMetadata("destructuringDecl.kt") + public void testDestructuringDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoop.kt") + public void testDestructuringDeclInForLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopRHS.kt") + public void testDestructuringDeclInForLoopRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopVariable.kt") + public void testDestructuringDeclInForLoopVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt"); + } + + @Test + @TestMetadata("destructuringDeclLHSVar.kt") + public void testDestructuringDeclLHSVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt"); + } + + @Test + @TestMetadata("destructuringDeclRHS.kt") + public void testDestructuringDeclRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclType.kt") + public void testDestructuringDeclType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt"); + } + + @Test + @TestMetadata("doWhileCondition.kt") + public void testDoWhileCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt"); + } + + @Test + @TestMetadata("doWhileExpr.kt") + public void testDoWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt"); + } + + @Test + @TestMetadata("doWhileLoopBlock.kt") + public void testDoWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt"); + } + + @Test + @TestMetadata("doubleColonClassLHS.kt") + public void testDoubleColonClassLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt"); + } + + @Test + @TestMetadata("doubleColonCompanionLHS.kt") + public void testDoubleColonCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonLHS.kt") + public void testDoubleColonLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHS.kt") + public void testDoubleColonUnqualifiedCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHSParenthesized.kt") + public void testDoubleColonUnqualifiedCompanionLHSParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt"); + } + + @Test + @TestMetadata("elvisWithBreak.kt") + public void testElvisWithBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt"); + } + + @Test + @TestMetadata("elvisWithContinue.kt") + public void testElvisWithContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt"); + } + + @Test + @TestMetadata("elvisWithReturn.kt") + public void testElvisWithReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt"); + } + + @Test + @TestMetadata("elvisWithThrow.kt") + public void testElvisWithThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt"); + } + + @Test + @TestMetadata("enumDecl.kt") + public void testEnumDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt"); + } + + @Test + @TestMetadata("enumDeclArg.kt") + public void testEnumDeclArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructor.kt") + public void testEnumDeclConstructor() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorArg.kt") + public void testEnumDeclConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorThis.kt") + public void testEnumDeclConstructorThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArg.kt") + public void testEnumDeclPrimaryConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArgList.kt") + public void testEnumDeclPrimaryConstructorArgList() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt"); + } + + @Test + @TestMetadata("expressionBodyLambdaReturningInt.kt") + public void testExpressionBodyLambdaReturningInt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt"); + } + + @Test + @TestMetadata("expressionBodyUnitLambda.kt") + public void testExpressionBodyUnitLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymous.kt") + public void testExtensionFunctionAnonymous() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymousReceiver.kt") + public void testExtensionFunctionAnonymousReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt"); + } + + @Test + @TestMetadata("forExpr.kt") + public void testForExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt"); + } + + @Test + @TestMetadata("forExprBlock.kt") + public void testForExprBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt"); + } + + @Test + @TestMetadata("forExprInvalid.kt") + public void testForExprInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt"); + } + + @Test + @TestMetadata("forExprLoopVar.kt") + public void testForExprLoopVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt"); + } + + @Test + @TestMetadata("forExprRangeExpr.kt") + public void testForExprRangeExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt"); + } + + @Test + @TestMetadata("forExprRangeExprUpperBound.kt") + public void testForExprRangeExprUpperBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt"); + } + + @Test + @TestMetadata("forLoopInvalid.kt") + public void testForLoopInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt"); + } + + @Test + @TestMetadata("functionLiteral.kt") + public void testFunctionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBody.kt") + public void testFunctionLiteralExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyBody.kt") + public void testFunctionLiteralExpressionBodyBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambda.kt") + public void testFunctionLiteralExpressionBodyLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlock.kt") + public void testFunctionLiteralExpressionBodyLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInner.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInnerUnit.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInnerUnit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExtensionReceiverType.kt") + public void testFunctionLiteralExtensionReceiverType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt"); + } + + @Test + @TestMetadata("ifBranches_unused.kt") + public void testIfBranches_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt"); + } + + @Test + @TestMetadata("ifBranches_used.kt") + public void testIfBranches_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt"); + } + + @Test + @TestMetadata("ifConditionParens.kt") + public void testIfConditionParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt"); + } + + @Test + @TestMetadata("if_subject.kt") + public void testIf_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt"); + } + + @Test + @TestMetadata("implicitNullBlock.kt") + public void testImplicitNullBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt"); + } + + @Test + @TestMetadata("implicitNullBlock2.kt") + public void testImplicitNullBlock2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt"); + } + + @Test + @TestMetadata("implicitNullBlockMultiStatements.kt") + public void testImplicitNullBlockMultiStatements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt"); + } + + @Test + @TestMetadata("initializer_when_branch.kt") + public void testInitializer_when_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block.kt") + public void testInitializer_when_branch_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block_stmt.kt") + public void testInitializer_when_branch_block_stmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt"); + } + + @Test + @TestMetadata("innerClassDecl.kt") + public void testInnerClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt"); + } + + @Test + @TestMetadata("interfaceMemberDecl.kt") + public void testInterfaceMemberDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt"); + } + + @Test + @TestMetadata("invokedLocalVariable.kt") + public void testInvokedLocalVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt"); + } + + @Test + @TestMetadata("isExpression.kt") + public void testIsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt"); + } + + @Test + @TestMetadata("isExpressionLHS.kt") + public void testIsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt"); + } + + @Test + @TestMetadata("isExpressionLHSInsideParens.kt") + public void testIsExpressionLHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionLHSParens.kt") + public void testIsExpressionLHSParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt"); + } + + @Test + @TestMetadata("isExpressionOperator.kt") + public void testIsExpressionOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt"); + } + + @Test + @TestMetadata("isExpressionRHS.kt") + public void testIsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt"); + } + + @Test + @TestMetadata("isExpressionRHSInsideParens.kt") + public void testIsExpressionRHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionUnused.kt") + public void testIsExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt"); + } + + @Test + @TestMetadata("labelledReturn.kt") + public void testLabelledReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt"); + } + + @Test + @TestMetadata("labelledReturnLabel.kt") + public void testLabelledReturnLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt"); + } + + @Test + @TestMetadata("labelledReturnValue.kt") + public void testLabelledReturnValue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt"); + } + + @Test + @TestMetadata("labelledThis.kt") + public void testLabelledThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt"); + } + + @Test + @TestMetadata("labelledThisLabel.kt") + public void testLabelledThisLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt"); + } + + @Test + @TestMetadata("lambdaWithArgs.kt") + public void testLambdaWithArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsArgs.kt") + public void testLambdaWithArgsArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsBody.kt") + public void testLambdaWithArgsBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt"); + } + + @Test + @TestMetadata("lambda_unused.kt") + public void testLambda_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt"); + } + + @Test + @TestMetadata("lambda_unused_invoke.kt") + public void testLambda_unused_invoke() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt"); + } + + @Test + @TestMetadata("localFunctionDecl.kt") + public void testLocalFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt"); + } + + @Test + @TestMetadata("loopLabel.kt") + public void testLoopLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreak.kt") + public void testLoopLabelBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt"); + } + + @Test + @TestMetadata("loopLabelBreakLabel.kt") + public void testLoopLabelBreakLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreakUsed.kt") + public void testLoopLabelBreakUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt"); + } + + @Test + @TestMetadata("memberFunctionDecl.kt") + public void testMemberFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt"); + } + + @Test + @TestMetadata("nonunit_lambda.kt") + public void testNonunit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt"); + } + + @Test + @TestMetadata("nonunit_lambda_multiple_statements.kt") + public void testNonunit_lambda_multiple_statements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt"); + } + + @Test + @TestMetadata("objectDeclaration.kt") + public void testObjectDeclaration() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt"); + } + + @Test + @TestMetadata("objectDeclarationProperty.kt") + public void testObjectDeclarationProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt"); + } + + @Test + @TestMetadata("objectLiteral.kt") + public void testObjectLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt"); + } + + @Test + @TestMetadata("objectLiteralMember.kt") + public void testObjectLiteralMember() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt"); + } + + @Test + @TestMetadata("object_unused.kt") + public void testObject_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt"); + } + + @Test + @TestMetadata("object_used.kt") + public void testObject_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt"); + } + + @Test + @TestMetadata("parameterDecl.kt") + public void testParameterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt"); + } + + @Test + @TestMetadata("parameterType.kt") + public void testParameterType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnused.kt") + public void testPostfixBangBangUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedArg.kt") + public void testPostfixBangBangUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedOp.kt") + public void testPostfixBangBangUnusedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsed.kt") + public void testPostfixBangBangUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsedOp.kt") + public void testPostfixBangBangUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt"); + } + + @Test + @TestMetadata("postfixDecrementException.kt") + public void testPostfixDecrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt"); + } + + @Test + @TestMetadata("postfixIncrementException.kt") + public void testPostfixIncrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt"); + } + + @Test + @TestMetadata("postfixOperatorTechnicallyUnused.kt") + public void testPostfixOperatorTechnicallyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsed.kt") + public void testPostfixOperatorUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedArg.kt") + public void testPostfixOperatorUsedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedOp.kt") + public void testPostfixOperatorUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt"); + } + + @Test + @TestMetadata("prefixOperator.kt") + public void testPrefixOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorArg.kt") + public void testPrefixOperatorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt"); + } + + @Test + @TestMetadata("prefixOperatorArgInParens.kt") + public void testPrefixOperatorArgInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorInParens.kt") + public void testPrefixOperatorInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorOperator.kt") + public void testPrefixOperatorOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnused.kt") + public void testPrefixOperatorUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnusedArg.kt") + public void testPrefixOperatorUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt"); + } + + @Test + @TestMetadata("propertyAsCallReceiverInParens.kt") + public void testPropertyAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyCall.kt") + public void testPropertyCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt"); + } + + @Test + @TestMetadata("propertyDecl.kt") + public void testPropertyDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterBody.kt") + public void testPropertyGetterBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt"); + } + + @Test + @TestMetadata("propertyGetterDecl.kt") + public void testPropertyGetterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterExpressionBody.kt") + public void testPropertyGetterExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt"); + } + + @Test + @TestMetadata("propertyGetterFieldRef.kt") + public void testPropertyGetterFieldRef() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt"); + } + + @Test + @TestMetadata("propertyName.kt") + public void testPropertyName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGet.kt") + public void testPropertyNameFieldGet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGetUnused.kt") + public void testPropertyNameFieldGetUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt"); + } + + @Test + @TestMetadata("propertyReceiver.kt") + public void testPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt"); + } + + @Test + @TestMetadata("propertyReferenceAsCallReceiverInParens.kt") + public void testPropertyReferenceAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyReferenceProperty.kt") + public void testPropertyReferenceProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt"); + } + + @Test + @TestMetadata("propertyReferenceReceiver.kt") + public void testPropertyReferenceReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt"); + } + + @Test + @TestMetadata("propertySetterArg.kt") + public void testPropertySetterArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt"); + } + + @Test + @TestMetadata("propertySetterCompoundAssign.kt") + public void testPropertySetterCompoundAssign() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt"); + } + + @Test + @TestMetadata("propertySetterFieldWrite.kt") + public void testPropertySetterFieldWrite() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt"); + } + + @Test + @TestMetadata("redundantLabel.kt") + public void testRedundantLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt"); + } + + @Test + @TestMetadata("redundantLabelParens.kt") + public void testRedundantLabelParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt"); + } + + @Test + @TestMetadata("redundantLabelParensWholeExpression.kt") + public void testRedundantLabelParensWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt"); + } + + @Test + @TestMetadata("redundantLabelParenthesized.kt") + public void testRedundantLabelParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt"); + } + + @Test + @TestMetadata("redundantLabelUsed.kt") + public void testRedundantLabelUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt"); + } + + @Test + @TestMetadata("redundantLabelledExpr.kt") + public void testRedundantLabelledExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt"); + } + + @Test + @TestMetadata("return.kt") + public void testReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt"); + } + + @Test + @TestMetadata("returnType.kt") + public void testReturnType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt"); + } + + @Test + @TestMetadata("return_explicit_unit.kt") + public void testReturn_explicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt"); + } + + @Test + @TestMetadata("return_implicit_unit.kt") + public void testReturn_implicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt"); + } + + @Test + @TestMetadata("return_value.kt") + public void testReturn_value() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt"); + } + + @Test + @TestMetadata("run_block.kt") + public void testRun_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt"); + } + + @Test + @TestMetadata("stringTemplate.kt") + public void testStringTemplate() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt"); + } + + @Test + @TestMetadata("stringTemplateBracesInner.kt") + public void testStringTemplateBracesInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt"); + } + + @Test + @TestMetadata("stringTemplateVar.kt") + public void testStringTemplateVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt"); + } + + @Test + @TestMetadata("superExpression.kt") + public void testSuperExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt"); + } + + @Test + @TestMetadata("superExpressionArg.kt") + public void testSuperExpressionArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt"); + } + + @Test + @TestMetadata("superExpressionSuper.kt") + public void testSuperExpressionSuper() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt"); + } + + @Test + @TestMetadata("throw.kt") + public void testThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt"); + } + + @Test + @TestMetadata("throwStmt.kt") + public void testThrowStmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt"); + } + + @Test + @TestMetadata("throw_if_branch.kt") + public void testThrow_if_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt"); + } + + @Test + @TestMetadata("toplevelDecl.kt") + public void testToplevelDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCall.kt") + public void testToplevelFunctionCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCallReference.kt") + public void testToplevelFunctionCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCall.kt") + public void testToplevelFunctionReferenceCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallArg.kt") + public void testToplevelFunctionReferenceCallArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReceiver.kt") + public void testToplevelFunctionReferenceCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReference.kt") + public void testToplevelFunctionReferenceCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambda.kt") + public void testTrailingAnnotatedLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaAnnotatedExpr.kt") + public void testTrailingAnnotatedLambdaAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlock.kt") + public void testTrailingAnnotatedLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlockInner.kt") + public void testTrailingAnnotatedLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaFun.kt") + public void testTrailingAnnotatedLambdaFun() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt"); + } + + @Test + @TestMetadata("try.kt") + public void testTry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt"); + } + + @Test + @TestMetadata("tryBlockBlock.kt") + public void testTryBlockBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt"); + } + + @Test + @TestMetadata("tryBlockBlockUsed.kt") + public void testTryBlockBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt"); + } + + @Test + @TestMetadata("tryBlockInner.kt") + public void testTryBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt"); + } + + @Test + @TestMetadata("tryBlockInnerUsed.kt") + public void testTryBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchArg.kt") + public void testTryCatchArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt"); + } + + @Test + @TestMetadata("tryCatchArgUsed.kt") + public void testTryCatchArgUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlock.kt") + public void testTryCatchBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInner.kt") + public void testTryCatchBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInnerUsed.kt") + public void testTryCatchBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlockUsed.kt") + public void testTryCatchBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlock.kt") + public void testTryFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInner.kt") + public void testTryFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInnerUsed.kt") + public void testTryFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockUsed.kt") + public void testTryFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlock.kt") + public void testTryOnlyFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInner.kt") + public void testTryOnlyFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInnerUsed.kt") + public void testTryOnlyFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockUsed.kt") + public void testTryOnlyFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInner.kt") + public void testTryThrowsToFinallyInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInnerUsed.kt") + public void testTryThrowsToFinallyInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt"); + } + + @Test + @TestMetadata("tryUsed.kt") + public void testTryUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt"); + } + + @Test + @TestMetadata("try_catch_binop.kt") + public void testTry_catch_binop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt"); + } + + @Test + @TestMetadata("typeAlias.kt") + public void testTypeAlias() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt"); + } + + @Test + @TestMetadata("typeAliasLocal.kt") + public void testTypeAliasLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt"); + } + + @Test + @TestMetadata("typeAliasParameter.kt") + public void testTypeAliasParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBound.kt") + public void testTypeAliasParameterBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBoundVariance.kt") + public void testTypeAliasParameterBoundVariance() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt"); + } + + @Test + @TestMetadata("typeAliasParameterWithBounds.kt") + public void testTypeAliasParameterWithBounds() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt"); + } + + @Test + @TestMetadata("typeAliasRHS.kt") + public void testTypeAliasRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt"); + } + + @Test + @TestMetadata("typeAliasRHSTypeParameter.kt") + public void testTypeAliasRHSTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt"); + } + + @Test + @TestMetadata("unit_lambda.kt") + public void testUnit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt"); + } + + @Test + @TestMetadata("unit_lambda_nonunit_function.kt") + public void testUnit_lambda_nonunit_function() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt"); + } + + @Test + @TestMetadata("value_initializer.kt") + public void testValue_initializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt"); + } + + @Test + @TestMetadata("var_reassignment_if.kt") + public void testVar_reassignment_if() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt"); + } + + @Test + @TestMetadata("variableDeclarationDecl.kt") + public void testVariableDeclarationDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt"); + } + + @Test + @TestMetadata("variableDeclarationLHSType.kt") + public void testVariableDeclarationLHSType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt"); + } + + @Test + @TestMetadata("variableDeclarationRHS.kt") + public void testVariableDeclarationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt"); + } + + @Test + @TestMetadata("when.kt") + public void testWhen() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt"); + } + + @Test + @TestMetadata("when2.kt") + public void testWhen2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt"); + } + + @Test + @TestMetadata("whenIsBranchMultiple.kt") + public void testWhenIsBranchMultiple() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt"); + } + + @Test + @TestMetadata("whenIsBranchType.kt") + public void testWhenIsBranchType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt"); + } + + @Test + @TestMetadata("whenUsed.kt") + public void testWhenUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt"); + } + + @Test + @TestMetadata("whenWithVal.kt") + public void testWhenWithVal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt"); + } + + @Test + @TestMetadata("whenWithValRHS.kt") + public void testWhenWithValRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt"); + } + + @Test + @TestMetadata("when_branch.kt") + public void testWhen_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt"); + } + + @Test + @TestMetadata("when_branchUsed.kt") + public void testWhen_branchUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt"); + } + + @Test + @TestMetadata("when_condition.kt") + public void testWhen_condition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt"); + } + + @Test + @TestMetadata("when_condition_unreachable.kt") + public void testWhen_condition_unreachable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt"); + } + + @Test + @TestMetadata("when_subject.kt") + public void testWhen_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt"); + } + + @Test + @TestMetadata("when_subject_with_branches.kt") + public void testWhen_subject_with_branches() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt"); + } + + @Test + @TestMetadata("when_syntaxerror.kt") + public void testWhen_syntaxerror() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt"); + } + + @Test + @TestMetadata("whileExpr.kt") + public void testWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt"); + } + + @Test + @TestMetadata("whileLoop.kt") + public void testWhileLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt"); + } + + @Test + @TestMetadata("whileLoopBlock.kt") + public void testWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt"); + } + + @Test + @TestMetadata("whileLoopBody.kt") + public void testWhileLoopBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt"); + } + + @Test + @TestMetadata("whileLoopCondition.kt") + public void testWhileLoopCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt"); + } + + @Test + @TestMetadata("whileLoopConditionLHS.kt") + public void testWhileLoopConditionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt"); + } + + @Test + @TestMetadata("whileLoopConditionRHS.kt") + public void testWhileLoopConditionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt"); + } +} diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeDependentAnalysisSourceModuleHLExpressionTypeTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeDependentAnalysisSourceModuleHLExpressionTypeTestGenerated.java index f6b3b05df0a..00cadc808ac 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeDependentAnalysisSourceModuleHLExpressionTypeTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeDependentAnalysisSourceModuleHLExpressionTypeTestGenerated.java @@ -184,6 +184,12 @@ public class FirIdeDependentAnalysisSourceModuleHLExpressionTypeTestGenerated ex runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/returnExpression.kt"); } + @Test + @TestMetadata("singleExpressionLambdaBody.kt") + public void testSingleExpressionLambdaBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt"); + } + @Test @TestMetadata("smartcast_asCallArg.kt") public void testSmartcast_asCallArg() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java index a18cafabf52..4fe8a5fa498 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionTypeProvider/FirIdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java @@ -184,6 +184,12 @@ public class FirIdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated exten runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/returnExpression.kt"); } + @Test + @TestMetadata("singleExpressionLambdaBody.kt") + public void testSingleExpressionLambdaBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt"); + } + @Test @TestMetadata("smartcast_asCallArg.kt") public void testSmartcast_asCallArg() throws Exception { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt new file mode 100644 index 00000000000..8e48aae37ae --- /dev/null +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider + +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.test.model.TestModule +import org.jetbrains.kotlin.test.services.TestServices +import org.jetbrains.kotlin.test.services.assertions + +abstract class AbstractIsUsedAsExpressionTest : AbstractAnalysisApiSingleFileTest() { + override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { + + val expression = testServices.expressionMarkerProvider.getSelectedElementOfType(ktFile).let { + if (it is KtBlockExpression && it.statements.size == 1 && it.textRange == it.statements.single().textRange) { + it.statements.single() + } else { + it + } + } + val actual = StringBuilder(); + + analyseForTest(expression) { + actual.appendLine("expression: $expression") + actual.appendLine("text: ${expression.text}") + actual.appendLine("isUsedAsExpression: ${expression.isUsedAsExpression()}") + } + + testServices.assertions.assertEqualsToTestDataFileSibling(actual.toString()) + } +} \ No newline at end of file diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt index f4db462f136..7d121e0c937 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.components.KtTypeRendererOptions import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction +import org.jetbrains.kotlin.psi.KtBlockExpression import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtValueArgument @@ -18,7 +19,13 @@ import org.jetbrains.kotlin.test.services.assertions abstract class AbstractHLExpressionTypeTest : AbstractAnalysisApiSingleFileTest() { override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val selected = testServices.expressionMarkerProvider.getSelectedElement(ktFile) + val selected = testServices.expressionMarkerProvider.getSelectedElement(ktFile).let { + if (it is KtBlockExpression && it.statements.size == 1 && it.textRange == it.statements.single().textRange) { + it.statements.single() + } else { + it + } + } val expression = when (selected) { is KtExpression -> selected is KtValueArgument -> selected.getArgumentExpression() diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java new file mode 100644 index 00000000000..1970b25700f --- /dev/null +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -0,0 +1,2004 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.generated.cases.components.expressionInfoProvider; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.standalone.fir.test.AnalysisApiFirStandaloneModeTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider.AbstractIsUsedAsExpressionTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression") +@TestDataPath("$PROJECT_ROOT") +public class FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated extends AbstractIsUsedAsExpressionTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirStandaloneModeTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Standalone + ) + ); + } + + @Test + public void testAllFilesPresentInIsUsedAsExpression() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("annotatedExpr.kt") + public void testAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt"); + } + + @Test + @TestMetadata("annotatedExprAnnotation.kt") + public void testAnnotatedExprAnnotation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt"); + } + + @Test + @TestMetadata("annotatedExprBody.kt") + public void testAnnotatedExprBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt"); + } + + @Test + @TestMetadata("annotatedExprBodyUnused.kt") + public void testAnnotatedExprBodyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt"); + } + + @Test + @TestMetadata("annotationArg.kt") + public void testAnnotationArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteral.kt") + public void testAnnotationCollectionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt"); + } + + @Test + @TestMetadata("annotationCollectionLiteralEntry.kt") + public void testAnnotationCollectionLiteralEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt"); + } + + @Test + @TestMetadata("annotationName.kt") + public void testAnnotationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt"); + } + + @Test + @TestMetadata("argument.kt") + public void testArgument() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt"); + } + + @Test + @TestMetadata("arrayAccess.kt") + public void testArrayAccess() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndex.kt") + public void testArrayAccessComputedIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessComputedIndexIndex.kt") + public void testArrayAccessComputedIndexIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessIndex.kt") + public void testArrayAccessIndex() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt"); + } + + @Test + @TestMetadata("arrayAccessLHS.kt") + public void testArrayAccessLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiver.kt") + public void testArrayAccessModificationComputedReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiver.kt") + public void testArrayAccessModificationComputedReceiverReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationComputedReceiverReceiverInner.kt") + public void testArrayAccessModificationComputedReceiverReceiverInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt"); + } + + @Test + @TestMetadata("arrayAccessModificationReceiver.kt") + public void testArrayAccessModificationReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt"); + } + + @Test + @TestMetadata("arrayAccessUnused.kt") + public void testArrayAccessUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt"); + } + + @Test + @TestMetadata("asExpression.kt") + public void testAsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCall.kt") + public void testAsExpressionElvisCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallLHS.kt") + public void testAsExpressionElvisCallLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHS.kt") + public void testAsExpressionElvisCallRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallRHSUsed.kt") + public void testAsExpressionElvisCallRHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt"); + } + + @Test + @TestMetadata("asExpressionElvisCallUsed.kt") + public void testAsExpressionElvisCallUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt"); + } + + @Test + @TestMetadata("asExpressionInner.kt") + public void testAsExpressionInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt"); + } + + @Test + @TestMetadata("asExpressionLHS.kt") + public void testAsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt"); + } + + @Test + @TestMetadata("asExpressionNullable.kt") + public void testAsExpressionNullable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt"); + } + + @Test + @TestMetadata("asExpressionNullableInner.kt") + public void testAsExpressionNullableInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLet.kt") + public void testAsExpressionNullableLet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlock.kt") + public void testAsExpressionNullableLetBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetBlockUsed.kt") + public void testAsExpressionNullableLetBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetExplicitIt.kt") + public void testAsExpressionNullableLetExplicitIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetIt.kt") + public void testAsExpressionNullableLetIt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetName.kt") + public void testAsExpressionNullableLetName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt"); + } + + @Test + @TestMetadata("asExpressionNullableLetUsed.kt") + public void testAsExpressionNullableLetUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt"); + } + + @Test + @TestMetadata("asExpressionRHS.kt") + public void testAsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt"); + } + + @Test + @TestMetadata("asExpressionUsed.kt") + public void testAsExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt"); + } + + @Test + @TestMetadata("backingField.kt") + public void testBackingField() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt"); + } + + @Test + @TestMetadata("backingFieldDecl.kt") + public void testBackingFieldDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt"); + } + + @Test + @TestMetadata("backingFieldInitializer.kt") + public void testBackingFieldInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt"); + } + + @Test + @TestMetadata("break.kt") + public void testBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt"); + } + + @Test + @TestMetadata("callReceiver.kt") + public void testCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt"); + } + + @Test + @TestMetadata("callReceiverInParens.kt") + public void testCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt"); + } + + @Test + @TestMetadata("callReceiverParens.kt") + public void testCallReceiverParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt"); + } + + @Test + @TestMetadata("callableReference.kt") + public void testCallableReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt"); + } + + @Test + @TestMetadata("callableReferenceDirectCall.kt") + public void testCallableReferenceDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceIndirectCall.kt") + public void testCallableReferenceIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceLHS.kt") + public void testCallableReferenceLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHS.kt") + public void testCallableReferenceRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceRHSUnused.kt") + public void testCallableReferenceRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHS.kt") + public void testCallableReferenceStaticLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSDirectCall.kt") + public void testCallableReferenceStaticLHSDirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSIndirectCall.kt") + public void testCallableReferenceStaticLHSIndirectCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSLHS.kt") + public void testCallableReferenceStaticLHSLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHS.kt") + public void testCallableReferenceStaticLHSRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt"); + } + + @Test + @TestMetadata("callableReferenceStaticLHSRHSUnused.kt") + public void testCallableReferenceStaticLHSRHSUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt"); + } + + @Test + @TestMetadata("callableReferenceUnused.kt") + public void testCallableReferenceUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt"); + } + + @Test + @TestMetadata("classConstructorInvocation.kt") + public void testClassConstructorInvocation() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt"); + } + + @Test + @TestMetadata("classConstructorInvocationName.kt") + public void testClassConstructorInvocationName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt"); + } + + @Test + @TestMetadata("classDecl.kt") + public void testClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt"); + } + + @Test + @TestMetadata("classDeclImplementsInterface.kt") + public void testClassDeclImplementsInterface() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt"); + } + + @Test + @TestMetadata("classDeclImplementsTypeParameter.kt") + public void testClassDeclImplementsTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt"); + } + + @Test + @TestMetadata("classDeclTypeParam.kt") + public void testClassDeclTypeParam() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt"); + } + + @Test + @TestMetadata("classInitBlock.kt") + public void testClassInitBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt"); + } + + @Test + @TestMetadata("classInitExpr.kt") + public void testClassInitExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt"); + } + + @Test + @TestMetadata("classInitializer.kt") + public void testClassInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVar.kt") + public void testClassLiteralExpressionComputedVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarParenthesized.kt") + public void testClassLiteralExpressionComputedVarParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnused.kt") + public void testClassLiteralExpressionComputedVarUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionComputedVarUnusedWholeExpression.kt") + public void testClassLiteralExpressionComputedVarUnusedWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSParenthesizedUsed.kt") + public void testClassLiteralExpressionLHSParenthesizedUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionLHSUsed.kt") + public void testClassLiteralExpressionLHSUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnused.kt") + public void testClassLiteralExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUnusedLHS.kt") + public void testClassLiteralExpressionUnusedLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt"); + } + + @Test + @TestMetadata("classLiteralExpressionUsed.kt") + public void testClassLiteralExpressionUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUnused.kt") + public void testCollectionLiteralInvalidUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt"); + } + + @Test + @TestMetadata("collectionLiteralInvalidUsed.kt") + public void testCollectionLiteralInvalidUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt"); + } + + @Test + @TestMetadata("companionObjectDecl.kt") + public void testCompanionObjectDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt"); + } + + @Test + @TestMetadata("compoundAssignRHS.kt") + public void testCompoundAssignRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentException.kt") + public void testCompoundAssignmentException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt"); + } + + @Test + @TestMetadata("compoundAssignmentExceptionCustom.kt") + public void testCompoundAssignmentExceptionCustom() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToProperty.kt") + public void testCompoundAssignmentToProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyLHS.kt") + public void testCompoundAssignmentToPropertyLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyRHS.kt") + public void testCompoundAssignmentToPropertyRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReceiver.kt") + public void testCompoundAssignmentToPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt"); + } + + @Test + @TestMetadata("compoundAssignmentToPropertyReference.kt") + public void testCompoundAssignmentToPropertyReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt"); + } + + @Test + @TestMetadata("computedClassExpression.kt") + public void testComputedClassExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt"); + } + + @Test + @TestMetadata("computedClassExpressionLHS.kt") + public void testComputedClassExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt"); + } + + @Test + @TestMetadata("constructorCallee.kt") + public void testConstructorCallee() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt"); + } + + @Test + @TestMetadata("constructorCalleeUsed.kt") + public void testConstructorCalleeUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt"); + } + + @Test + @TestMetadata("constructorInvocationAsPropertyReceiver.kt") + public void testConstructorInvocationAsPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt"); + } + + @Test + @TestMetadata("constructorPrimarySuperCall.kt") + public void testConstructorPrimarySuperCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt"); + } + + @Test + @TestMetadata("constructorSecondary.kt") + public void testConstructorSecondary() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlock.kt") + public void testConstructorSecondaryBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt"); + } + + @Test + @TestMetadata("constructorSecondaryBlockBody.kt") + public void testConstructorSecondaryBlockBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt"); + } + + @Test + @TestMetadata("constructorSecondaryDefaultArg.kt") + public void testConstructorSecondaryDefaultArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt"); + } + + @Test + @TestMetadata("constructorSuperReference.kt") + public void testConstructorSuperReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt"); + } + + @Test + @TestMetadata("constructorSuperReferenceArg.kt") + public void testConstructorSuperReferenceArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt"); + } + + @Test + @TestMetadata("continue.kt") + public void testContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambda.kt") + public void testDefaultExtensionLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyAccessOnThis.kt") + public void testDefaultExtensionLambdaPropertyAccessOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaPropertyOnThis.kt") + public void testDefaultExtensionLambdaPropertyOnThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt"); + } + + @Test + @TestMetadata("defaultExtensionLambdaThis.kt") + public void testDefaultExtensionLambdaThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt"); + } + + @Test + @TestMetadata("default_parameter.kt") + public void testDefault_parameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); + } + + @Test + @TestMetadata("destructuringDecl.kt") + public void testDestructuringDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoop.kt") + public void testDestructuringDeclInForLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopRHS.kt") + public void testDestructuringDeclInForLoopRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclInForLoopVariable.kt") + public void testDestructuringDeclInForLoopVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt"); + } + + @Test + @TestMetadata("destructuringDeclLHSVar.kt") + public void testDestructuringDeclLHSVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt"); + } + + @Test + @TestMetadata("destructuringDeclRHS.kt") + public void testDestructuringDeclRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt"); + } + + @Test + @TestMetadata("destructuringDeclType.kt") + public void testDestructuringDeclType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt"); + } + + @Test + @TestMetadata("doWhileCondition.kt") + public void testDoWhileCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt"); + } + + @Test + @TestMetadata("doWhileExpr.kt") + public void testDoWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt"); + } + + @Test + @TestMetadata("doWhileLoopBlock.kt") + public void testDoWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt"); + } + + @Test + @TestMetadata("doubleColonClassLHS.kt") + public void testDoubleColonClassLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt"); + } + + @Test + @TestMetadata("doubleColonCompanionLHS.kt") + public void testDoubleColonCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonLHS.kt") + public void testDoubleColonLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHS.kt") + public void testDoubleColonUnqualifiedCompanionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt"); + } + + @Test + @TestMetadata("doubleColonUnqualifiedCompanionLHSParenthesized.kt") + public void testDoubleColonUnqualifiedCompanionLHSParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt"); + } + + @Test + @TestMetadata("elvisWithBreak.kt") + public void testElvisWithBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt"); + } + + @Test + @TestMetadata("elvisWithContinue.kt") + public void testElvisWithContinue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt"); + } + + @Test + @TestMetadata("elvisWithReturn.kt") + public void testElvisWithReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt"); + } + + @Test + @TestMetadata("elvisWithThrow.kt") + public void testElvisWithThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt"); + } + + @Test + @TestMetadata("enumDecl.kt") + public void testEnumDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt"); + } + + @Test + @TestMetadata("enumDeclArg.kt") + public void testEnumDeclArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructor.kt") + public void testEnumDeclConstructor() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorArg.kt") + public void testEnumDeclConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclConstructorThis.kt") + public void testEnumDeclConstructorThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArg.kt") + public void testEnumDeclPrimaryConstructorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt"); + } + + @Test + @TestMetadata("enumDeclPrimaryConstructorArgList.kt") + public void testEnumDeclPrimaryConstructorArgList() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt"); + } + + @Test + @TestMetadata("expressionBodyLambdaReturningInt.kt") + public void testExpressionBodyLambdaReturningInt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt"); + } + + @Test + @TestMetadata("expressionBodyUnitLambda.kt") + public void testExpressionBodyUnitLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymous.kt") + public void testExtensionFunctionAnonymous() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt"); + } + + @Test + @TestMetadata("extensionFunctionAnonymousReceiver.kt") + public void testExtensionFunctionAnonymousReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt"); + } + + @Test + @TestMetadata("forExpr.kt") + public void testForExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt"); + } + + @Test + @TestMetadata("forExprBlock.kt") + public void testForExprBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt"); + } + + @Test + @TestMetadata("forExprInvalid.kt") + public void testForExprInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt"); + } + + @Test + @TestMetadata("forExprLoopVar.kt") + public void testForExprLoopVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt"); + } + + @Test + @TestMetadata("forExprRangeExpr.kt") + public void testForExprRangeExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt"); + } + + @Test + @TestMetadata("forExprRangeExprUpperBound.kt") + public void testForExprRangeExprUpperBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt"); + } + + @Test + @TestMetadata("forLoopInvalid.kt") + public void testForLoopInvalid() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt"); + } + + @Test + @TestMetadata("functionLiteral.kt") + public void testFunctionLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBody.kt") + public void testFunctionLiteralExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyBody.kt") + public void testFunctionLiteralExpressionBodyBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambda.kt") + public void testFunctionLiteralExpressionBodyLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlock.kt") + public void testFunctionLiteralExpressionBodyLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInner.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaBlockInnerUnit.kt") + public void testFunctionLiteralExpressionBodyLambdaBlockInnerUnit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt") + public void testFunctionLiteralExpressionBodyLambdaTypeAnnotationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt"); + } + + @Test + @TestMetadata("functionLiteralExtensionReceiverType.kt") + public void testFunctionLiteralExtensionReceiverType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt"); + } + + @Test + @TestMetadata("ifBranches_unused.kt") + public void testIfBranches_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt"); + } + + @Test + @TestMetadata("ifBranches_used.kt") + public void testIfBranches_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt"); + } + + @Test + @TestMetadata("ifConditionParens.kt") + public void testIfConditionParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt"); + } + + @Test + @TestMetadata("if_subject.kt") + public void testIf_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt"); + } + + @Test + @TestMetadata("implicitNullBlock.kt") + public void testImplicitNullBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt"); + } + + @Test + @TestMetadata("implicitNullBlock2.kt") + public void testImplicitNullBlock2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt"); + } + + @Test + @TestMetadata("implicitNullBlockMultiStatements.kt") + public void testImplicitNullBlockMultiStatements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt"); + } + + @Test + @TestMetadata("initializer_when_branch.kt") + public void testInitializer_when_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block.kt") + public void testInitializer_when_branch_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt"); + } + + @Test + @TestMetadata("initializer_when_branch_block_stmt.kt") + public void testInitializer_when_branch_block_stmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt"); + } + + @Test + @TestMetadata("innerClassDecl.kt") + public void testInnerClassDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt"); + } + + @Test + @TestMetadata("interfaceMemberDecl.kt") + public void testInterfaceMemberDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt"); + } + + @Test + @TestMetadata("invokedLocalVariable.kt") + public void testInvokedLocalVariable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt"); + } + + @Test + @TestMetadata("isExpression.kt") + public void testIsExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt"); + } + + @Test + @TestMetadata("isExpressionLHS.kt") + public void testIsExpressionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt"); + } + + @Test + @TestMetadata("isExpressionLHSInsideParens.kt") + public void testIsExpressionLHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionLHSParens.kt") + public void testIsExpressionLHSParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt"); + } + + @Test + @TestMetadata("isExpressionOperator.kt") + public void testIsExpressionOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt"); + } + + @Test + @TestMetadata("isExpressionRHS.kt") + public void testIsExpressionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt"); + } + + @Test + @TestMetadata("isExpressionRHSInsideParens.kt") + public void testIsExpressionRHSInsideParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt"); + } + + @Test + @TestMetadata("isExpressionUnused.kt") + public void testIsExpressionUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt"); + } + + @Test + @TestMetadata("labelledReturn.kt") + public void testLabelledReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt"); + } + + @Test + @TestMetadata("labelledReturnLabel.kt") + public void testLabelledReturnLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt"); + } + + @Test + @TestMetadata("labelledReturnValue.kt") + public void testLabelledReturnValue() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt"); + } + + @Test + @TestMetadata("labelledThis.kt") + public void testLabelledThis() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt"); + } + + @Test + @TestMetadata("labelledThisLabel.kt") + public void testLabelledThisLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt"); + } + + @Test + @TestMetadata("lambdaWithArgs.kt") + public void testLambdaWithArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsArgs.kt") + public void testLambdaWithArgsArgs() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt"); + } + + @Test + @TestMetadata("lambdaWithArgsBody.kt") + public void testLambdaWithArgsBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt"); + } + + @Test + @TestMetadata("lambda_unused.kt") + public void testLambda_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt"); + } + + @Test + @TestMetadata("lambda_unused_invoke.kt") + public void testLambda_unused_invoke() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt"); + } + + @Test + @TestMetadata("localFunctionDecl.kt") + public void testLocalFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt"); + } + + @Test + @TestMetadata("loopLabel.kt") + public void testLoopLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreak.kt") + public void testLoopLabelBreak() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt"); + } + + @Test + @TestMetadata("loopLabelBreakLabel.kt") + public void testLoopLabelBreakLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt"); + } + + @Test + @TestMetadata("loopLabelBreakUsed.kt") + public void testLoopLabelBreakUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt"); + } + + @Test + @TestMetadata("memberFunctionDecl.kt") + public void testMemberFunctionDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt"); + } + + @Test + @TestMetadata("nonunit_lambda.kt") + public void testNonunit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt"); + } + + @Test + @TestMetadata("nonunit_lambda_multiple_statements.kt") + public void testNonunit_lambda_multiple_statements() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt"); + } + + @Test + @TestMetadata("objectDeclaration.kt") + public void testObjectDeclaration() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt"); + } + + @Test + @TestMetadata("objectDeclarationProperty.kt") + public void testObjectDeclarationProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt"); + } + + @Test + @TestMetadata("objectLiteral.kt") + public void testObjectLiteral() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt"); + } + + @Test + @TestMetadata("objectLiteralMember.kt") + public void testObjectLiteralMember() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt"); + } + + @Test + @TestMetadata("object_unused.kt") + public void testObject_unused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt"); + } + + @Test + @TestMetadata("object_used.kt") + public void testObject_used() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt"); + } + + @Test + @TestMetadata("parameterDecl.kt") + public void testParameterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt"); + } + + @Test + @TestMetadata("parameterType.kt") + public void testParameterType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnused.kt") + public void testPostfixBangBangUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedArg.kt") + public void testPostfixBangBangUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt"); + } + + @Test + @TestMetadata("postfixBangBangUnusedOp.kt") + public void testPostfixBangBangUnusedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsed.kt") + public void testPostfixBangBangUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt"); + } + + @Test + @TestMetadata("postfixBangBangUsedOp.kt") + public void testPostfixBangBangUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt"); + } + + @Test + @TestMetadata("postfixDecrementException.kt") + public void testPostfixDecrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt"); + } + + @Test + @TestMetadata("postfixIncrementException.kt") + public void testPostfixIncrementException() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt"); + } + + @Test + @TestMetadata("postfixOperatorTechnicallyUnused.kt") + public void testPostfixOperatorTechnicallyUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsed.kt") + public void testPostfixOperatorUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedArg.kt") + public void testPostfixOperatorUsedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt"); + } + + @Test + @TestMetadata("postfixOperatorUsedOp.kt") + public void testPostfixOperatorUsedOp() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt"); + } + + @Test + @TestMetadata("prefixOperator.kt") + public void testPrefixOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorArg.kt") + public void testPrefixOperatorArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt"); + } + + @Test + @TestMetadata("prefixOperatorArgInParens.kt") + public void testPrefixOperatorArgInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorInParens.kt") + public void testPrefixOperatorInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt"); + } + + @Test + @TestMetadata("prefixOperatorOperator.kt") + public void testPrefixOperatorOperator() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnused.kt") + public void testPrefixOperatorUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt"); + } + + @Test + @TestMetadata("prefixOperatorUnusedArg.kt") + public void testPrefixOperatorUnusedArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt"); + } + + @Test + @TestMetadata("propertyAsCallReceiverInParens.kt") + public void testPropertyAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyCall.kt") + public void testPropertyCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt"); + } + + @Test + @TestMetadata("propertyDecl.kt") + public void testPropertyDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterBody.kt") + public void testPropertyGetterBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt"); + } + + @Test + @TestMetadata("propertyGetterDecl.kt") + public void testPropertyGetterDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt"); + } + + @Test + @TestMetadata("propertyGetterExpressionBody.kt") + public void testPropertyGetterExpressionBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt"); + } + + @Test + @TestMetadata("propertyGetterFieldRef.kt") + public void testPropertyGetterFieldRef() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt"); + } + + @Test + @TestMetadata("propertyName.kt") + public void testPropertyName() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGet.kt") + public void testPropertyNameFieldGet() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt"); + } + + @Test + @TestMetadata("propertyNameFieldGetUnused.kt") + public void testPropertyNameFieldGetUnused() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt"); + } + + @Test + @TestMetadata("propertyReceiver.kt") + public void testPropertyReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt"); + } + + @Test + @TestMetadata("propertyReferenceAsCallReceiverInParens.kt") + public void testPropertyReferenceAsCallReceiverInParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt"); + } + + @Test + @TestMetadata("propertyReferenceProperty.kt") + public void testPropertyReferenceProperty() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt"); + } + + @Test + @TestMetadata("propertyReferenceReceiver.kt") + public void testPropertyReferenceReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt"); + } + + @Test + @TestMetadata("propertySetterArg.kt") + public void testPropertySetterArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt"); + } + + @Test + @TestMetadata("propertySetterCompoundAssign.kt") + public void testPropertySetterCompoundAssign() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt"); + } + + @Test + @TestMetadata("propertySetterFieldWrite.kt") + public void testPropertySetterFieldWrite() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt"); + } + + @Test + @TestMetadata("redundantLabel.kt") + public void testRedundantLabel() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt"); + } + + @Test + @TestMetadata("redundantLabelParens.kt") + public void testRedundantLabelParens() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt"); + } + + @Test + @TestMetadata("redundantLabelParensWholeExpression.kt") + public void testRedundantLabelParensWholeExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt"); + } + + @Test + @TestMetadata("redundantLabelParenthesized.kt") + public void testRedundantLabelParenthesized() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt"); + } + + @Test + @TestMetadata("redundantLabelUsed.kt") + public void testRedundantLabelUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt"); + } + + @Test + @TestMetadata("redundantLabelledExpr.kt") + public void testRedundantLabelledExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt"); + } + + @Test + @TestMetadata("return.kt") + public void testReturn() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt"); + } + + @Test + @TestMetadata("returnType.kt") + public void testReturnType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt"); + } + + @Test + @TestMetadata("return_explicit_unit.kt") + public void testReturn_explicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt"); + } + + @Test + @TestMetadata("return_implicit_unit.kt") + public void testReturn_implicit_unit() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt"); + } + + @Test + @TestMetadata("return_value.kt") + public void testReturn_value() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt"); + } + + @Test + @TestMetadata("run_block.kt") + public void testRun_block() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt"); + } + + @Test + @TestMetadata("stringTemplate.kt") + public void testStringTemplate() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt"); + } + + @Test + @TestMetadata("stringTemplateBracesInner.kt") + public void testStringTemplateBracesInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt"); + } + + @Test + @TestMetadata("stringTemplateVar.kt") + public void testStringTemplateVar() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt"); + } + + @Test + @TestMetadata("superExpression.kt") + public void testSuperExpression() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt"); + } + + @Test + @TestMetadata("superExpressionArg.kt") + public void testSuperExpressionArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt"); + } + + @Test + @TestMetadata("superExpressionSuper.kt") + public void testSuperExpressionSuper() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt"); + } + + @Test + @TestMetadata("throw.kt") + public void testThrow() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt"); + } + + @Test + @TestMetadata("throwStmt.kt") + public void testThrowStmt() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt"); + } + + @Test + @TestMetadata("throw_if_branch.kt") + public void testThrow_if_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt"); + } + + @Test + @TestMetadata("toplevelDecl.kt") + public void testToplevelDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCall.kt") + public void testToplevelFunctionCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionCallReference.kt") + public void testToplevelFunctionCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCall.kt") + public void testToplevelFunctionReferenceCall() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallArg.kt") + public void testToplevelFunctionReferenceCallArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReceiver.kt") + public void testToplevelFunctionReferenceCallReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt"); + } + + @Test + @TestMetadata("toplevelFunctionReferenceCallReference.kt") + public void testToplevelFunctionReferenceCallReference() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambda.kt") + public void testTrailingAnnotatedLambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaAnnotatedExpr.kt") + public void testTrailingAnnotatedLambdaAnnotatedExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlock.kt") + public void testTrailingAnnotatedLambdaBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaBlockInner.kt") + public void testTrailingAnnotatedLambdaBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt"); + } + + @Test + @TestMetadata("trailingAnnotatedLambdaFun.kt") + public void testTrailingAnnotatedLambdaFun() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt"); + } + + @Test + @TestMetadata("try.kt") + public void testTry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt"); + } + + @Test + @TestMetadata("tryBlockBlock.kt") + public void testTryBlockBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt"); + } + + @Test + @TestMetadata("tryBlockBlockUsed.kt") + public void testTryBlockBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt"); + } + + @Test + @TestMetadata("tryBlockInner.kt") + public void testTryBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt"); + } + + @Test + @TestMetadata("tryBlockInnerUsed.kt") + public void testTryBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchArg.kt") + public void testTryCatchArg() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt"); + } + + @Test + @TestMetadata("tryCatchArgUsed.kt") + public void testTryCatchArgUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlock.kt") + public void testTryCatchBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInner.kt") + public void testTryCatchBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt"); + } + + @Test + @TestMetadata("tryCatchBlockInnerUsed.kt") + public void testTryCatchBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryCatchBlockUsed.kt") + public void testTryCatchBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlock.kt") + public void testTryFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInner.kt") + public void testTryFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockInnerUsed.kt") + public void testTryFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryFinallyBlockUsed.kt") + public void testTryFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlock.kt") + public void testTryOnlyFinallyBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInner.kt") + public void testTryOnlyFinallyBlockInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockInnerUsed.kt") + public void testTryOnlyFinallyBlockInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt"); + } + + @Test + @TestMetadata("tryOnlyFinallyBlockUsed.kt") + public void testTryOnlyFinallyBlockUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInner.kt") + public void testTryThrowsToFinallyInner() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt"); + } + + @Test + @TestMetadata("tryThrowsToFinallyInnerUsed.kt") + public void testTryThrowsToFinallyInnerUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt"); + } + + @Test + @TestMetadata("tryUsed.kt") + public void testTryUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt"); + } + + @Test + @TestMetadata("try_catch_binop.kt") + public void testTry_catch_binop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt"); + } + + @Test + @TestMetadata("typeAlias.kt") + public void testTypeAlias() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt"); + } + + @Test + @TestMetadata("typeAliasLocal.kt") + public void testTypeAliasLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt"); + } + + @Test + @TestMetadata("typeAliasParameter.kt") + public void testTypeAliasParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBound.kt") + public void testTypeAliasParameterBound() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt"); + } + + @Test + @TestMetadata("typeAliasParameterBoundVariance.kt") + public void testTypeAliasParameterBoundVariance() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt"); + } + + @Test + @TestMetadata("typeAliasParameterWithBounds.kt") + public void testTypeAliasParameterWithBounds() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt"); + } + + @Test + @TestMetadata("typeAliasRHS.kt") + public void testTypeAliasRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt"); + } + + @Test + @TestMetadata("typeAliasRHSTypeParameter.kt") + public void testTypeAliasRHSTypeParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt"); + } + + @Test + @TestMetadata("unit_lambda.kt") + public void testUnit_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt"); + } + + @Test + @TestMetadata("unit_lambda_nonunit_function.kt") + public void testUnit_lambda_nonunit_function() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt"); + } + + @Test + @TestMetadata("value_initializer.kt") + public void testValue_initializer() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt"); + } + + @Test + @TestMetadata("var_reassignment_if.kt") + public void testVar_reassignment_if() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt"); + } + + @Test + @TestMetadata("variableDeclarationDecl.kt") + public void testVariableDeclarationDecl() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt"); + } + + @Test + @TestMetadata("variableDeclarationLHSType.kt") + public void testVariableDeclarationLHSType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt"); + } + + @Test + @TestMetadata("variableDeclarationRHS.kt") + public void testVariableDeclarationRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt"); + } + + @Test + @TestMetadata("when.kt") + public void testWhen() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt"); + } + + @Test + @TestMetadata("when2.kt") + public void testWhen2() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt"); + } + + @Test + @TestMetadata("whenIsBranchMultiple.kt") + public void testWhenIsBranchMultiple() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt"); + } + + @Test + @TestMetadata("whenIsBranchType.kt") + public void testWhenIsBranchType() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt"); + } + + @Test + @TestMetadata("whenUsed.kt") + public void testWhenUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt"); + } + + @Test + @TestMetadata("whenWithVal.kt") + public void testWhenWithVal() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt"); + } + + @Test + @TestMetadata("whenWithValRHS.kt") + public void testWhenWithValRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt"); + } + + @Test + @TestMetadata("when_branch.kt") + public void testWhen_branch() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt"); + } + + @Test + @TestMetadata("when_branchUsed.kt") + public void testWhen_branchUsed() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt"); + } + + @Test + @TestMetadata("when_condition.kt") + public void testWhen_condition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt"); + } + + @Test + @TestMetadata("when_condition_unreachable.kt") + public void testWhen_condition_unreachable() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt"); + } + + @Test + @TestMetadata("when_subject.kt") + public void testWhen_subject() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt"); + } + + @Test + @TestMetadata("when_subject_with_branches.kt") + public void testWhen_subject_with_branches() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt"); + } + + @Test + @TestMetadata("when_syntaxerror.kt") + public void testWhen_syntaxerror() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt"); + } + + @Test + @TestMetadata("whileExpr.kt") + public void testWhileExpr() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt"); + } + + @Test + @TestMetadata("whileLoop.kt") + public void testWhileLoop() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt"); + } + + @Test + @TestMetadata("whileLoopBlock.kt") + public void testWhileLoopBlock() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt"); + } + + @Test + @TestMetadata("whileLoopBody.kt") + public void testWhileLoopBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt"); + } + + @Test + @TestMetadata("whileLoopCondition.kt") + public void testWhileLoopCondition() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt"); + } + + @Test + @TestMetadata("whileLoopConditionLHS.kt") + public void testWhileLoopConditionLHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt"); + } + + @Test + @TestMetadata("whileLoopConditionRHS.kt") + public void testWhileLoopConditionRHS() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt"); + } +} diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionTypeProvider/FirStandaloneNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionTypeProvider/FirStandaloneNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java index b6cdca139ad..69472014480 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionTypeProvider/FirStandaloneNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionTypeProvider/FirStandaloneNormalAnalysisSourceModuleHLExpressionTypeTestGenerated.java @@ -184,6 +184,12 @@ public class FirStandaloneNormalAnalysisSourceModuleHLExpressionTypeTestGenerate runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/returnExpression.kt"); } + @Test + @TestMetadata("singleExpressionLambdaBody.kt") + public void testSingleExpressionLambdaBody() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt"); + } + @Test @TestMetadata("smartcast_asCallArg.kt") public void testSmartcast_asCallArg() throws Exception { diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtExpressionInfoProvider.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtExpressionInfoProvider.kt index bfa17980361..4507dd27cd5 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtExpressionInfoProvider.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtExpressionInfoProvider.kt @@ -8,12 +8,14 @@ package org.jetbrains.kotlin.analysis.api.components import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion import org.jetbrains.kotlin.diagnostics.WhenMissingCase import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol +import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi.KtReturnExpression import org.jetbrains.kotlin.psi.KtWhenExpression public abstract class KtExpressionInfoProvider : KtAnalysisSessionComponent() { public abstract fun getReturnExpressionTargetSymbol(returnExpression: KtReturnExpression): KtCallableSymbol? public abstract fun getWhenMissingCases(whenExpression: KtWhenExpression): List + public abstract fun isUsedAsExpression(expression: KtExpression): Boolean } public interface KtExpressionInfoProviderMixIn : KtAnalysisSessionMixIn { @@ -22,4 +24,28 @@ public interface KtExpressionInfoProviderMixIn : KtAnalysisSessionMixIn { public fun KtWhenExpression.getMissingCases(): List = withValidityAssertion { analysisSession.expressionInfoProvider.getWhenMissingCases(this) } + + /** + * Compute if the value of a given expression is possibly used. Or, + * conversely, compute whether the value of an expression is *not* safe to + * discard. + * + * E.g. `x` in the following examples *are* used (`x.isUsedAsExpression() == true`) + * - `if (x) { ... } else { ... }` + * - `val a = x` + * - `x + 8` + * - `when (x) { 1 -> ...; else -> ... } + * + * E.g. `x` in the following example is definitely *not* used (`x.isUsedAsExpression() == false`) + * - `run { x; println(50) }` + * - `when (x) { else -> ... }` + * + * **Note!** This is a conservative check, not a control-flow analysis. + * E.g. `x` in the following example *is possibly used*, even though the + * value is never consumed at runtime. + * - `x + try { throw Exception() } finally { return }` + * + */ + public fun KtExpression.isUsedAsExpression(): Boolean = + withValidityAssertion { analysisSession.expressionInfoProvider.isUsedAsExpression(this) } } \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt new file mode 100644 index 00000000000..35fd5216b1a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + val x = args + (@OptIn(Deprecated::class) args) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.txt new file mode 100644 index 00000000000..2ad1ae1ac63 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExpr.txt @@ -0,0 +1,3 @@ +expression: ANNOTATED_EXPRESSION +text: @OptIn(Deprecated::class) args +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt new file mode 100644 index 00000000000..7879eb7b76e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + val x = args + (@OptIn(Deprecated::class) args) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.txt new file mode 100644 index 00000000000..75511f04d30 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprAnnotation.txt @@ -0,0 +1,3 @@ +expression: CONSTRUCTOR_CALLEE +text: OptIn +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt new file mode 100644 index 00000000000..5bfd6512c3b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + val x = args + (@OptIn(Deprecated::class) args) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.txt new file mode 100644 index 00000000000..c808423e5b4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBody.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: args +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt new file mode 100644 index 00000000000..800239d3252 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + (@OptIn(Deprecated::class) args) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.txt new file mode 100644 index 00000000000..1fe0f4314a8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotatedExprBodyUnused.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: args +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt new file mode 100644 index 00000000000..c54e2502180 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.kt @@ -0,0 +1,5 @@ +@OptIn(Deprecated::class, Deprecated::class) +@SuppressWarnings(["unsued", "foo"]) +fun test() { + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.txt new file mode 100644 index 00000000000..44013e58b3d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationArg.txt @@ -0,0 +1,3 @@ +expression: CLASS_LITERAL_EXPRESSION +text: Deprecated::class +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt new file mode 100644 index 00000000000..03fa077308d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.kt @@ -0,0 +1,5 @@ +@OptIn(Deprecated::class, Deprecated::class) +@SuppressWarnings(["unsued", "foo"]) +fun test() { + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.txt new file mode 100644 index 00000000000..7461fe629f3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteral.txt @@ -0,0 +1,3 @@ +expression: COLLECTION_LITERAL_EXPRESSION +text: ["unsued", "foo"] +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt new file mode 100644 index 00000000000..32e66f7f7b3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.kt @@ -0,0 +1,5 @@ +@OptIn(Deprecated::class, Deprecated::class) +@SuppressWarnings(["unsued", "foo"]) +fun test() { + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.txt new file mode 100644 index 00000000000..237de6c7799 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationCollectionLiteralEntry.txt @@ -0,0 +1,3 @@ +expression: STRING_TEMPLATE +text: "foo" +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt new file mode 100644 index 00000000000..4e13aecb8a4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.kt @@ -0,0 +1,5 @@ +@OptIn(Deprecated::class, Deprecated::class) +@SuppressWarnings(["unsued", "foo"]) +fun test() { + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.txt new file mode 100644 index 00000000000..303021b4701 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/annotationName.txt @@ -0,0 +1,3 @@ +expression: CONSTRUCTOR_CALLEE +text: SuppressWarnings +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt new file mode 100644 index 00000000000..c8c18867ec8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.kt @@ -0,0 +1,6 @@ +fun println(x: Boolean) {} + +fun test(b: Boolean): Int { + println(b) + return 54 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/argument.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt new file mode 100644 index 00000000000..c959f7ced9f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + val s = args[0] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.txt new file mode 100644 index 00000000000..814a20e1ca9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccess.txt @@ -0,0 +1,3 @@ +expression: ARRAY_ACCESS_EXPRESSION +text: args[0] +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt new file mode 100644 index 00000000000..21ede8933f8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.kt @@ -0,0 +1,3 @@ +fun main(args: Array, i: Int) { + val s = args[i + i] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.txt new file mode 100644 index 00000000000..ba0e845ab8f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndex.txt @@ -0,0 +1,3 @@ +expression: ARRAY_ACCESS_EXPRESSION +text: args[i + i] +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt new file mode 100644 index 00000000000..cf90aec87cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.kt @@ -0,0 +1,3 @@ +fun main(args: Array, i: Int) { + val s = args[i + i] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.txt new file mode 100644 index 00000000000..01f8b76fd66 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessComputedIndexIndex.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: i + i +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt new file mode 100644 index 00000000000..8cba32a101c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + val s = args[0] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.txt new file mode 100644 index 00000000000..0861b254377 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessIndex.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 0 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt new file mode 100644 index 00000000000..df49762a87d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + val s = args[0] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.txt new file mode 100644 index 00000000000..c808423e5b4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: args +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt new file mode 100644 index 00000000000..199c790a853 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.kt @@ -0,0 +1,3 @@ +fun test(a: Array) { + (a + a)[0]++ +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.txt new file mode 100644 index 00000000000..9af3a4d3499 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiver.txt @@ -0,0 +1,3 @@ +expression: POSTFIX_EXPRESSION +text: (a + a)[0]++ +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt new file mode 100644 index 00000000000..d87df86d8dc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.kt @@ -0,0 +1,3 @@ +fun test(a: Array) { + (a + a)[0]++ +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.txt new file mode 100644 index 00000000000..da8ff5bf71c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiver.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (a + a) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt new file mode 100644 index 00000000000..26b30978e3f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.kt @@ -0,0 +1,3 @@ +fun test(a: Array) { + (a + a)[0]++ +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.txt new file mode 100644 index 00000000000..ac9cf1cb2a9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationComputedReceiverReceiverInner.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: a + a +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt new file mode 100644 index 00000000000..27fef9d30f4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.kt @@ -0,0 +1,3 @@ +fun test(a: Array) { + a[0]++ +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.txt new file mode 100644 index 00000000000..eaab013b5b8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessModificationReceiver.txt @@ -0,0 +1,3 @@ +expression: ARRAY_ACCESS_EXPRESSION +text: a[0] +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt new file mode 100644 index 00000000000..fe26e2a2317 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + args[0] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.txt new file mode 100644 index 00000000000..c66ff4d761c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/arrayAccessUnused.txt @@ -0,0 +1,3 @@ +expression: ARRAY_ACCESS_EXPRESSION +text: args[0] +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt new file mode 100644 index 00000000000..e1c2756c5ba --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as String).length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.txt new file mode 100644 index 00000000000..378d8d8d515 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpression.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (v as String) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt new file mode 100644 index 00000000000..806bf5273cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as String)?.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.txt new file mode 100644 index 00000000000..0f5302b6966 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCall.txt @@ -0,0 +1,3 @@ +expression: SAFE_ACCESS_EXPRESSION +text: (v as String)?.length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt new file mode 100644 index 00000000000..a4caab4f144 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as String)?.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.txt new file mode 100644 index 00000000000..378d8d8d515 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallLHS.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (v as String) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt new file mode 100644 index 00000000000..cdcac49bde7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as String)?.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.txt new file mode 100644 index 00000000000..6fdc564e3cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt new file mode 100644 index 00000000000..92b988fa41b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + val x = (v as String)?.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.txt new file mode 100644 index 00000000000..70a26259983 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallRHSUsed.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt new file mode 100644 index 00000000000..3adb173759a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + val x = (v as String)?.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.txt new file mode 100644 index 00000000000..050fb2106ce --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionElvisCallUsed.txt @@ -0,0 +1,3 @@ +expression: SAFE_ACCESS_EXPRESSION +text: (v as String)?.length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt new file mode 100644 index 00000000000..bd9c6b449ff --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as String).length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.txt new file mode 100644 index 00000000000..f176bd02944 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionInner.txt @@ -0,0 +1,3 @@ +expression: BINARY_WITH_TYPE +text: v as String +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt new file mode 100644 index 00000000000..4ed02b23eca --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as String).length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.txt new file mode 100644 index 00000000000..3730dc5aa0d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: v +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt new file mode 100644 index 00000000000..f8ef3c3ef55 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as? String)?.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.txt new file mode 100644 index 00000000000..c472ac2f5b7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullable.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (v as? String) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt new file mode 100644 index 00000000000..10d574ad46f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as? String)?.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.txt new file mode 100644 index 00000000000..62b73fd7f45 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableInner.txt @@ -0,0 +1,3 @@ +expression: BINARY_WITH_TYPE +text: v as? String +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt new file mode 100644 index 00000000000..f155eb9f678 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.kt @@ -0,0 +1,5 @@ +fun test(v: Any?) { + (v as? String)?.let { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.txt new file mode 100644 index 00000000000..2980efc9d6f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLet.txt @@ -0,0 +1,5 @@ +expression: CALL_EXPRESSION +text: let { + it.length + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt new file mode 100644 index 00000000000..1d73691947b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.kt @@ -0,0 +1,5 @@ +fun test(v: Any?) { + (v as? String)?.let { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.txt new file mode 100644 index 00000000000..5dc34a9b9b0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlock.txt @@ -0,0 +1,5 @@ +expression: LAMBDA_EXPRESSION +text: { + it.length + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt new file mode 100644 index 00000000000..d4515d4d9f2 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.kt @@ -0,0 +1,5 @@ +fun test(v: Any?) { + val x = (v as? String)?.let { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.txt new file mode 100644 index 00000000000..5dc34a9b9b0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetBlockUsed.txt @@ -0,0 +1,5 @@ +expression: LAMBDA_EXPRESSION +text: { + it.length + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt new file mode 100644 index 00000000000..98fc6e33e2a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.kt @@ -0,0 +1,5 @@ +fun test(v: Any?) { + (v as? String)?.let { it -> + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.txt new file mode 100644 index 00000000000..2a074280caa --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetExplicitIt.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: it +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt new file mode 100644 index 00000000000..2804d965aab --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.kt @@ -0,0 +1,5 @@ +fun test(v: Any?) { + (v as? String)?.let{ + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.txt new file mode 100644 index 00000000000..71c9081ed42 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetIt.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: it +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt new file mode 100644 index 00000000000..b565bf5de42 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.kt @@ -0,0 +1,5 @@ +fun test(v: Any?) { + (v as? String)?.let { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.txt new file mode 100644 index 00000000000..38c46cb886a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetName.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: let +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt new file mode 100644 index 00000000000..986d706c57d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.kt @@ -0,0 +1,5 @@ +fun test(v: Any?) { + val x = (v as? String)?.let { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.txt new file mode 100644 index 00000000000..dfd778ed038 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionNullableLetUsed.txt @@ -0,0 +1,5 @@ +expression: CALL_EXPRESSION +text: let { + it.length + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt new file mode 100644 index 00000000000..342a4ce63df --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + (v as String).length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt new file mode 100644 index 00000000000..7ab92ff1383 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.kt @@ -0,0 +1,3 @@ +fun test(v: Any?) { + val x = (v as String).length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.txt new file mode 100644 index 00000000000..378d8d8d515 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/asExpressionUsed.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (v as String) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt new file mode 100644 index 00000000000..a02b6da7dc0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.kt @@ -0,0 +1,4 @@ +class C { + val names: List // clearly tells the type of the property upfront + field: MutableList = mutableListOf() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.txt new file mode 100644 index 00000000000..6106163c27a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingField.txt @@ -0,0 +1,4 @@ +expression: PROPERTY +text: val names: List // clearly tells the type of the property upfront + field: MutableList = mutableListOf() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt new file mode 100644 index 00000000000..d2c2ec99115 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.kt @@ -0,0 +1,4 @@ +class C { + val names: List // clearly tells the type of the property upfront + field: MutableList = mutableListOf() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.txt new file mode 100644 index 00000000000..b656a5fe9a0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldDecl.txt @@ -0,0 +1,3 @@ +expression: BACKING_FIELD +text: field: MutableList = mutableListOf() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt new file mode 100644 index 00000000000..dc6f7f18dfe --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.kt @@ -0,0 +1,7 @@ +class C { + val names: List // clearly tells the type of the property upfront + field: MutableList = mutableListOf() +} + +// IGNORE_FE10 +// RHS of initializer is deemed unused by FE1.0 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.txt new file mode 100644 index 00000000000..7858f0b9cf7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/backingFieldInitializer.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: mutableListOf() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/boolean_else.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/boolean_else.txt new file mode 100644 index 00000000000..10d8708ce72 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/boolean_else.txt @@ -0,0 +1,5 @@ +expression: WHEN +text: when(b) { + else -> {} + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt new file mode 100644 index 00000000000..9ce3155c116 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.kt @@ -0,0 +1,9 @@ +fun test(b: Boolean) { + while (true) { + if (break) { + "OK" + } else { + continue + } + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.txt new file mode 100644 index 00000000000..b37e65b8dc7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/break.txt @@ -0,0 +1,3 @@ +expression: BREAK +text: break +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt new file mode 100644 index 00000000000..59d5c99bf82 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = b.hashCode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiver.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt new file mode 100644 index 00000000000..35c6a968754 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = (b).hashCode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverInParens.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt new file mode 100644 index 00000000000..60acf2680ba --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = (b).hashCode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.txt new file mode 100644 index 00000000000..c143f24a62e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callReceiverParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (b) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt new file mode 100644 index 00000000000..51d1424a437 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f(s) + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.txt new file mode 100644 index 00000000000..1d313c45509 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReference.txt @@ -0,0 +1,3 @@ +expression: CALLABLE_REFERENCE_EXPRESSION +text: s::length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt new file mode 100644 index 00000000000..3835ce6387c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f(s) + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.txt new file mode 100644 index 00000000000..1d313c45509 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceDirectCall.txt @@ -0,0 +1,3 @@ +expression: CALLABLE_REFERENCE_EXPRESSION +text: s::length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt new file mode 100644 index 00000000000..0f7c8b1b3e8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f(s) + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.txt new file mode 100644 index 00000000000..6853d546072 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceIndirectCall.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: g +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt new file mode 100644 index 00000000000..2f132e2ffb6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f() + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.txt new file mode 100644 index 00000000000..1718dfcc7ed --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: s +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt new file mode 100644 index 00000000000..04a84b118a9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f() + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.txt new file mode 100644 index 00000000000..6fdc564e3cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt new file mode 100644 index 00000000000..2ea001f9bd1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.kt @@ -0,0 +1,3 @@ +fun test() { + s::length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.txt new file mode 100644 index 00000000000..6fdc564e3cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceRHSUnused.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt new file mode 100644 index 00000000000..40b46d42ab4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f() + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.txt new file mode 100644 index 00000000000..de8344d527b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHS.txt @@ -0,0 +1,3 @@ +expression: CALLABLE_REFERENCE_EXPRESSION +text: String::length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt new file mode 100644 index 00000000000..55889dbb9ea --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f(s) + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.txt new file mode 100644 index 00000000000..de8344d527b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSDirectCall.txt @@ -0,0 +1,3 @@ +expression: CALLABLE_REFERENCE_EXPRESSION +text: String::length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt new file mode 100644 index 00000000000..c394c002695 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f(s) + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.txt new file mode 100644 index 00000000000..9c82eaa3adf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSIndirectCall.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: f +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt new file mode 100644 index 00000000000..6594aa3288a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f() + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt new file mode 100644 index 00000000000..41b02ccb3c8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.kt @@ -0,0 +1,6 @@ +fun test() { + val f = String::length + val s = "hello" + val g = s::length + f() + g() + String::length.invoke(s) + s::length.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.txt new file mode 100644 index 00000000000..6fdc564e3cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt new file mode 100644 index 00000000000..0a27fcd3e2a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.kt @@ -0,0 +1,3 @@ +fun test() { + String::length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.txt new file mode 100644 index 00000000000..6fdc564e3cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceStaticLHSRHSUnused.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt new file mode 100644 index 00000000000..4a57207a3f7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.kt @@ -0,0 +1,3 @@ +fun test() { + "hjellp"::length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.txt new file mode 100644 index 00000000000..76b7df89473 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/callableReferenceUnused.txt @@ -0,0 +1,3 @@ +expression: CALLABLE_REFERENCE_EXPRESSION +text: "hjellp"::length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt new file mode 100644 index 00000000000..48fce72a033 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.txt new file mode 100644 index 00000000000..6e70b37ed05 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocation.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: C() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt new file mode 100644 index 00000000000..ed5cb031761 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.txt new file mode 100644 index 00000000000..66a40f8a872 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classConstructorInvocationName.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: C +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt new file mode 100644 index 00000000000..da4dd941599 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.txt new file mode 100644 index 00000000000..92e436a5471 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDecl.txt @@ -0,0 +1,23 @@ +expression: CLASS +text: class C(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt new file mode 100644 index 00000000000..6e1b43f04ab --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.txt new file mode 100644 index 00000000000..2c7d0a1ffb7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsInterface.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: I +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt new file mode 100644 index 00000000000..827c824d892 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C(val x: Int): I<T> { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.txt new file mode 100644 index 00000000000..558ef038b79 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclImplementsTypeParameter.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: T +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt new file mode 100644 index 00000000000..eaa11b88be0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C<T>(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.txt new file mode 100644 index 00000000000..ad79888c476 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classDeclTypeParam.txt @@ -0,0 +1,3 @@ +expression: TYPE_PARAMETER +text: T +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt new file mode 100644 index 00000000000..f738a4e9ef2 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.kt @@ -0,0 +1,5 @@ +class Test { + init { + "value" + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.txt new file mode 100644 index 00000000000..4163896d69e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + "value" + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt new file mode 100644 index 00000000000..406aadd5f32 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.kt @@ -0,0 +1,5 @@ +class Test { + init { + "value" + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.txt new file mode 100644 index 00000000000..11b69f05ba5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitExpr.txt @@ -0,0 +1,3 @@ +expression: STRING_TEMPLATE +text: "value" +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt new file mode 100644 index 00000000000..f4e08ed852f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.kt @@ -0,0 +1,5 @@ +class Test { + init { + "value" + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.txt new file mode 100644 index 00000000000..0060177715f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classInitializer.txt @@ -0,0 +1,5 @@ +expression: CLASS_INITIALIZER +text: init { + "value" + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt new file mode 100644 index 00000000000..b92f58d79da --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.kt @@ -0,0 +1,3 @@ +fun test(b: Any?) { + val klass = b::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVar.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt new file mode 100644 index 00000000000..ace9cdd1bf4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.kt @@ -0,0 +1,2 @@ +fun test(b: Any?) { + val klass = (b):: \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.txt new file mode 100644 index 00000000000..c143f24a62e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarParenthesized.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (b) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt new file mode 100644 index 00000000000..86d62c8dc10 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.kt @@ -0,0 +1,3 @@ +fun test(b: Any?) { + b::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnused.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt new file mode 100644 index 00000000000..98e2b4c04d9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.kt @@ -0,0 +1,3 @@ +fun test(b: Any?) { + b::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.txt new file mode 100644 index 00000000000..441a52fb1a3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionComputedVarUnusedWholeExpression.txt @@ -0,0 +1,3 @@ +expression: CLASS_LITERAL_EXPRESSION +text: b::class +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt new file mode 100644 index 00000000000..06dcaf85770 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.kt @@ -0,0 +1,6 @@ +fun test() { + val string = (String)::class +} + +// IGNORE_FE10 +// In K2, references to types are not regarded as used, regardless of parentheses. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.txt new file mode 100644 index 00000000000..f159283b2da --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSParenthesizedUsed.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (String) +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt new file mode 100644 index 00000000000..b62021d76c3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.kt @@ -0,0 +1,3 @@ +fun test() { + val string = String::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionLHSUsed.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt new file mode 100644 index 00000000000..7d6734f703d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.kt @@ -0,0 +1,3 @@ +fun test() { + String::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.txt new file mode 100644 index 00000000000..0dda25dde63 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnused.txt @@ -0,0 +1,3 @@ +expression: CLASS_LITERAL_EXPRESSION +text: String::class +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt new file mode 100644 index 00000000000..b62021d76c3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.kt @@ -0,0 +1,3 @@ +fun test() { + val string = String::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUnusedLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt new file mode 100644 index 00000000000..e330fb3976b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.kt @@ -0,0 +1,3 @@ +fun test() { + val string = String::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.txt new file mode 100644 index 00000000000..f4891ee0525 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/classLiteralExpressionUsed.txt @@ -0,0 +1,3 @@ +expression: CLASS_LITERAL_EXPRESSION +text: String::class +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt new file mode 100644 index 00000000000..45a228f71a2 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.kt @@ -0,0 +1,3 @@ +fun test() { + [1, 2, 3] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.txt new file mode 100644 index 00000000000..0f79f127cf1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUnused.txt @@ -0,0 +1,3 @@ +expression: COLLECTION_LITERAL_EXPRESSION +text: [1, 2, 3] +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt new file mode 100644 index 00000000000..3a32ca777fa --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.kt @@ -0,0 +1,3 @@ +fun test() { + val x = [1, 2, 3] +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.txt new file mode 100644 index 00000000000..adc012d8ac5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/collectionLiteralInvalidUsed.txt @@ -0,0 +1,3 @@ +expression: COLLECTION_LITERAL_EXPRESSION +text: [1, 2, 3] +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt new file mode 100644 index 00000000000..cac9c842caa --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.txt new file mode 100644 index 00000000000..353c6b18406 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/companionObjectDecl.txt @@ -0,0 +1,5 @@ +expression: OBJECT_DECLARATION +text: companion object { + val K: Int = 58 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt new file mode 100644 index 00000000000..68f334a1c5b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.txt new file mode 100644 index 00000000000..2ba227c279f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignRHS.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 45 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt new file mode 100644 index 00000000000..7a03f926b41 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.kt @@ -0,0 +1,9 @@ +fun test(): Boolean { + var n = 456 + n %= 45 + return n < 45 +} + +// IGNORE_FE10 +// FE1.0 `isUsedAsExpression` considers built-in postfix inc/dec and +// compound assignments as used, always. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.txt new file mode 100644 index 00000000000..3cb1527a605 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentException.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: n %= 45 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt new file mode 100644 index 00000000000..c6761e0a915 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.kt @@ -0,0 +1,11 @@ +class C { + operator fun remAssign(other: C) { + + } +} + +fun test(): C { + var n = C() + n %= n + return n +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.txt new file mode 100644 index 00000000000..a6086776fac --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentExceptionCustom.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: n %= n +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt new file mode 100644 index 00000000000..6d2648a0c88 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.kt @@ -0,0 +1,21 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} + +// IGNORE_FE10 +// FE1.0 `isUsedAsExpression` considers built-in postfix inc/dec and +// compound assignments as used, always. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.txt new file mode 100644 index 00000000000..31afa2f5dd1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToProperty.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: c.property -= 20 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt new file mode 100644 index 00000000000..d079e816531 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.txt new file mode 100644 index 00000000000..42827e7f522 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyLHS.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: c.property +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt new file mode 100644 index 00000000000..be70aaaf7ba --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.txt new file mode 100644 index 00000000000..c9b818a1e02 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyRHS.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 20 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt new file mode 100644 index 00000000000..49ab61b3477 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.txt new file mode 100644 index 00000000000..b4649d6cf59 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReceiver.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: c +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt new file mode 100644 index 00000000000..0f10c52a8b5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.txt new file mode 100644 index 00000000000..2d416e8d238 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/compoundAssignmentToPropertyReference.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: property +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt new file mode 100644 index 00000000000..691a0b53c09 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.kt @@ -0,0 +1,3 @@ +fun test(b: Boolean) { + val x = (if (b) { 45 } else { "OK" })::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.txt new file mode 100644 index 00000000000..9ef280e24c8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpression.txt @@ -0,0 +1,3 @@ +expression: CLASS_LITERAL_EXPRESSION +text: (if (b) { 45 } else { "OK" })::class +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt new file mode 100644 index 00000000000..0c91f046c00 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.kt @@ -0,0 +1,3 @@ +fun test(b: Boolean) { + val x = if (b) { 45 } else { "OK" }::class +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.txt new file mode 100644 index 00000000000..5ff6adf9ece --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/computedClassExpressionLHS.txt @@ -0,0 +1,3 @@ +expression: IF +text: if (b) { 45 } else { "OK" } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt new file mode 100644 index 00000000000..126525897a0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.kt @@ -0,0 +1,5 @@ +class C(val x: Int) + +fun test() { + C(55) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.txt new file mode 100644 index 00000000000..66a40f8a872 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCallee.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: C +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt new file mode 100644 index 00000000000..8e270ed3a36 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.kt @@ -0,0 +1,5 @@ +class C(val x: Int) + +fun test() { + val c = C(55) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.txt new file mode 100644 index 00000000000..66a40f8a872 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorCalleeUsed.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: C +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt new file mode 100644 index 00000000000..d888b473b8c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.txt new file mode 100644 index 00000000000..6e70b37ed05 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorInvocationAsPropertyReceiver.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: C() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt new file mode 100644 index 00000000000..68c051e3bd8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.kt @@ -0,0 +1,3 @@ +abstract class A(val x: Int) + +class B(x: String) : A(x.length) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.txt new file mode 100644 index 00000000000..a8e9c864b76 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorPrimarySuperCall.txt @@ -0,0 +1,3 @@ +expression: CONSTRUCTOR_CALLEE +text: A +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt new file mode 100644 index 00000000000..949720be922 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.kt @@ -0,0 +1,5 @@ +class C { + constructor(x: Int) { + x + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.txt new file mode 100644 index 00000000000..ec62817a58b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondary.txt @@ -0,0 +1,5 @@ +expression: SECONDARY_CONSTRUCTOR +text: constructor(x: Int) { + x + 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt new file mode 100644 index 00000000000..cbd8c0a07b3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.kt @@ -0,0 +1,5 @@ +class C { + constructor(x: Int){ + x + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.txt new file mode 100644 index 00000000000..47efcac1127 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + x + 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt new file mode 100644 index 00000000000..72c95ec8e9e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.kt @@ -0,0 +1,5 @@ +class C { + constructor(x: Int){ + x + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.txt new file mode 100644 index 00000000000..df4be5a642f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryBlockBody.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: x + 4 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt new file mode 100644 index 00000000000..9a78f995c21 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.kt @@ -0,0 +1,5 @@ +class C() { + constructor(x: Int = 66) { + x + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.txt new file mode 100644 index 00000000000..745c8644687 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSecondaryDefaultArg.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 66 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt new file mode 100644 index 00000000000..c34f0d3bbeb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.kt @@ -0,0 +1,5 @@ +abstract class A(val x: Int) + +class B : A { + constructor(x: String) : super(x.length) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.txt new file mode 100644 index 00000000000..b806f3be5ef --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReference.txt @@ -0,0 +1,3 @@ +expression: CONSTRUCTOR_DELEGATION_REFERENCE +text: super +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt new file mode 100644 index 00000000000..2eb7436dc7c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.kt @@ -0,0 +1,5 @@ +abstract class A(val x: Int) + +class B : A { + constructor(x: String) : super(x.length) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.txt new file mode 100644 index 00000000000..d43751c1759 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/constructorSuperReferenceArg.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: x.length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt new file mode 100644 index 00000000000..a2deddc874c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.kt @@ -0,0 +1,9 @@ +fun test(b: Boolean) { + while (true) { + if (b) { + break + } else { + continue + } + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.txt new file mode 100644 index 00000000000..3b177c35350 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/continue.txt @@ -0,0 +1,3 @@ +expression: CONTINUE +text: continue +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt new file mode 100644 index 00000000000..f424732abdd --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.kt @@ -0,0 +1,3 @@ +fun test(f: String.() -> Int = { 45 * this.length }) { + "hello".f() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.txt new file mode 100644 index 00000000000..eb215e7d1f6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambda.txt @@ -0,0 +1,3 @@ +expression: LAMBDA_EXPRESSION +text: { 45 * this.length } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt new file mode 100644 index 00000000000..80cb436e077 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.kt @@ -0,0 +1,3 @@ +fun test(f: String.() -> Int = { 45 * this.length }) { + "hello".f() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.txt new file mode 100644 index 00000000000..fb1cfaea574 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyAccessOnThis.txt @@ -0,0 +1,4 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: this.length +isUsedAsExpression: true + diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt new file mode 100644 index 00000000000..9382a344ae0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.kt @@ -0,0 +1,3 @@ +fun test(f: String.() -> Int = { 45 * this.length }) { + "hello".f() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.txt new file mode 100644 index 00000000000..70a26259983 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaPropertyOnThis.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt new file mode 100644 index 00000000000..aec171cb489 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.kt @@ -0,0 +1,3 @@ +fun test(f: String.() -> Int = { 45 * this.length }) { + "hello".f() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.txt new file mode 100644 index 00000000000..6728b4ef0e6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/defaultExtensionLambdaThis.txt @@ -0,0 +1,3 @@ +expression: THIS_EXPRESSION +text: this +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt new file mode 100644 index 00000000000..63b8e956e2f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt @@ -0,0 +1,3 @@ +fun test(b: Boolean = true): Int { + return 54 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.txt new file mode 100644 index 00000000000..aee1cbcefed --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.txt @@ -0,0 +1,3 @@ +expression: BOOLEAN_CONSTANT +text: true +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt new file mode 100644 index 00000000000..ea4bd5b0b55 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.txt new file mode 100644 index 00000000000..02375576b37 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDecl.txt @@ -0,0 +1,3 @@ +expression: DESTRUCTURING_DECLARATION +text: val (one, two) = b to !b +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt new file mode 100644 index 00000000000..c01373ecc28 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.kt @@ -0,0 +1,5 @@ +fun test(ps: List>) { + for((i, b) in ps) { + i * i + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.txt new file mode 100644 index 00000000000..f9d9d1b4f78 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoop.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: (i, b) +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt new file mode 100644 index 00000000000..adcfd2e9c06 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.kt @@ -0,0 +1,5 @@ +fun test(ps: List>) { + for((i, b) in ps) { + i * i + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.txt new file mode 100644 index 00000000000..6d2cc8edd96 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: ps +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt new file mode 100644 index 00000000000..4b96e3eb015 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.kt @@ -0,0 +1,5 @@ +fun test(ps: List>) { + for((i, b) in ps) { + i * i + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.txt new file mode 100644 index 00000000000..0046afa51b2 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclInForLoopVariable.txt @@ -0,0 +1,3 @@ +expression: DESTRUCTURING_DECLARATION_ENTRY +text: i +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt new file mode 100644 index 00000000000..30ef9aac456 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.txt new file mode 100644 index 00000000000..206d824b0a5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclLHSVar.txt @@ -0,0 +1,3 @@ +expression: DESTRUCTURING_DECLARATION_ENTRY +text: one +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclNested.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclNested.txt new file mode 100644 index 00000000000..b1553941047 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclNested.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Boolean +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt new file mode 100644 index 00000000000..8b07b39d715 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.txt new file mode 100644 index 00000000000..57d198cdba5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclRHS.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: b to !b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt new file mode 100644 index 00000000000..730d6a03e14 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one: Boolean, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.txt new file mode 100644 index 00000000000..b1553941047 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/destructuringDeclType.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Boolean +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt new file mode 100644 index 00000000000..39de6c48496 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.kt @@ -0,0 +1,6 @@ +fun test() { + var i = 0 + do { + i = 890 + } while(i < 890) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.txt new file mode 100644 index 00000000000..c53770aa77c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileCondition.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: i < 890 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt new file mode 100644 index 00000000000..ddfc204a4b3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.kt @@ -0,0 +1,5 @@ +fun test(b: Boolean) { + do { + 4 + } while (b) +} diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.txt new file mode 100644 index 00000000000..492ce5d7f61 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileExpr.txt @@ -0,0 +1,5 @@ +expression: DO_WHILE +text: do { + 4 + } while (b) +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt new file mode 100644 index 00000000000..cdd3c737540 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.kt @@ -0,0 +1,6 @@ +fun test() { + var i = 0 + do { + i = 890 + } while(i < 890) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.txt new file mode 100644 index 00000000000..a46b5672bcb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doWhileLoopBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + i = 890 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt new file mode 100644 index 00000000000..829cef42adf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.kt @@ -0,0 +1,8 @@ + +class C { + val length = 54 +} + +fun test(): Int { + return (C::length).get(C()) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.txt new file mode 100644 index 00000000000..66a40f8a872 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonClassLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: C +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt new file mode 100644 index 00000000000..5e2bac25d6f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.kt @@ -0,0 +1,10 @@ +class C { + companion object { + fun t() = x + val x = 45 + } +} + +fun test(): Int { + return (C.Companion::x).get() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.txt new file mode 100644 index 00000000000..2817af8585d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonCompanionLHS.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: C.Companion +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt new file mode 100644 index 00000000000..f4b5aed6acd --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.kt @@ -0,0 +1,3 @@ +fun test(): Int { + return kotlin.String::length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.txt new file mode 100644 index 00000000000..792c7a8fdd0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonLHS.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: kotlin.String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt new file mode 100644 index 00000000000..0cc6d52ba51 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.kt @@ -0,0 +1,7 @@ +class C { + companion object { + val x = 45 + } + + val y = Companion::x.get() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.txt new file mode 100644 index 00000000000..5db798baf89 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Companion +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt new file mode 100644 index 00000000000..4bfccb3d02d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.kt @@ -0,0 +1,7 @@ +class C { + companion object { + val x = 45 + } + + val y = (Companion)::x.get() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.txt new file mode 100644 index 00000000000..990b9c61c29 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/doubleColonUnqualifiedCompanionLHSParenthesized.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (Companion) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt new file mode 100644 index 00000000000..50850ac4bc5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.kt @@ -0,0 +1,9 @@ +fun test() { + while(true) { + val x = 45 ?: break + return + } +} + +// IGNORE_FE10 +// FIR considers all expressions of type `Nothing` as unused. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.txt new file mode 100644 index 00000000000..b37e65b8dc7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithBreak.txt @@ -0,0 +1,3 @@ +expression: BREAK +text: break +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt new file mode 100644 index 00000000000..a0d243bf78d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.kt @@ -0,0 +1,9 @@ +fun test() { + while(true) { + val x = 45 ?: continue + return + } +} + +// IGNORE_FE10 +// FIR considers all expressions of type `Nothing` as unused. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.txt new file mode 100644 index 00000000000..3b177c35350 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithContinue.txt @@ -0,0 +1,3 @@ +expression: CONTINUE +text: continue +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt new file mode 100644 index 00000000000..26601658d0b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.kt @@ -0,0 +1,7 @@ +fun test() { + val x = 45 ?: return + return +} + +// IGNORE_FE10 +// FIR considers all expressions of type `Nothing` as unused. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.txt new file mode 100644 index 00000000000..cb170195d7c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithReturn.txt @@ -0,0 +1,3 @@ +expression: RETURN +text: return +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt new file mode 100644 index 00000000000..c2472137205 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.kt @@ -0,0 +1,7 @@ +fun test() { + val x = 45 ?: throw Exception() + return +} + +// IGNORE_FE10 +// FIR considers all expressions of type `Nothing` as unused. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.txt new file mode 100644 index 00000000000..cc06772ba54 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/elvisWithThrow.txt @@ -0,0 +1,3 @@ +expression: THROW +text: throw Exception() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt new file mode 100644 index 00000000000..f5e912f50b1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.kt @@ -0,0 +1,5 @@ +enum class Enum(val i: Int) { + TEST(45), + PROBE(45), + SONDE(45) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.txt new file mode 100644 index 00000000000..c4814d5c2ce --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDecl.txt @@ -0,0 +1,7 @@ +expression: CLASS +text: enum class Enum(val i: Int) { + TEST(45), + PROBE(45), + SONDE(45) +} +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt new file mode 100644 index 00000000000..91c41fd5d63 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.kt @@ -0,0 +1,5 @@ +enum class Enum(val i: Int) { + TEST(45), + PROBE(45), + SONDE(45) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.txt new file mode 100644 index 00000000000..2ba227c279f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclArg.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 45 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt new file mode 100644 index 00000000000..4e9e6e93928 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.kt @@ -0,0 +1,9 @@ +enum class Enum(val i: Int) { + + TEST(45), + PROBE(45), + SONDE(45); + + constructor(x: String) : this(x.length) + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.txt new file mode 100644 index 00000000000..e11c9ab02c3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructor.txt @@ -0,0 +1,3 @@ +expression: SECONDARY_CONSTRUCTOR +text: constructor(x: String) : this(x.length) +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt new file mode 100644 index 00000000000..67267e4ce66 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.kt @@ -0,0 +1,10 @@ +enum class Enum(val i: Int) { + + TEST(45), + PROBE(45), + SONDE(45); + + constructor(x: String) : this(x.length) { + } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.txt new file mode 100644 index 00000000000..e753680f9af --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorArg.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: x: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt new file mode 100644 index 00000000000..4a9fcc83195 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.kt @@ -0,0 +1,9 @@ +enum class Enum(val i: Int) { + + TEST(45), + PROBE(45), + SONDE(45); + + constructor(x: String) : this(x.length) + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.txt new file mode 100644 index 00000000000..2c4415ec8f1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclConstructorThis.txt @@ -0,0 +1,3 @@ +expression: CONSTRUCTOR_DELEGATION_REFERENCE +text: this +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt new file mode 100644 index 00000000000..9b6feb976a3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.kt @@ -0,0 +1,5 @@ +enum class Enum(val i: Int){ + TEST(45), + PROBE(45), + SONDE(45) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.txt new file mode 100644 index 00000000000..78e94646b0f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArg.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: val i: Int +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt new file mode 100644 index 00000000000..9ca642df3b3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.kt @@ -0,0 +1,5 @@ +enum class Enum(val i: Int) { + TEST(45), + PROBE(45), + SONDE(45) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.txt new file mode 100644 index 00000000000..5307e3d5a92 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/enumDeclPrimaryConstructorArgList.txt @@ -0,0 +1,3 @@ +expression: PRIMARY_CONSTRUCTOR +text: (val i: Int) +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt new file mode 100644 index 00000000000..b40acfd9945 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.kt @@ -0,0 +1,3 @@ +fun test(): Int = { + 65 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.txt new file mode 100644 index 00000000000..e080925f612 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyLambdaReturningInt.txt @@ -0,0 +1,5 @@ +expression: LAMBDA_EXPRESSION +text: { + 65 +} +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt new file mode 100644 index 00000000000..a21d1bbee95 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.kt @@ -0,0 +1,3 @@ +val x = { a: Int -> Unit } + +fun f() = x \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.txt new file mode 100644 index 00000000000..162df00b649 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/expressionBodyUnitLambda.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: x +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt new file mode 100644 index 00000000000..8766b11b9b7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.kt @@ -0,0 +1,6 @@ +fun test() { + val f = fun String.(): Int { + return 56 + } + "jello".f() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.txt new file mode 100644 index 00000000000..dcb2fe63c5f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymous.txt @@ -0,0 +1,5 @@ +expression: FUN +text: fun String.(): Int { + return 56 + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt new file mode 100644 index 00000000000..89f0c7dea1b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.kt @@ -0,0 +1,6 @@ +fun test() { + val f = fun String.(): Int { + return 56 + } + "jello".f() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/extensionFunctionAnonymousReceiver.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt new file mode 100644 index 00000000000..a5962722f70 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.kt @@ -0,0 +1,5 @@ +fun test() { + for (i in 1..10){ + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.txt new file mode 100644 index 00000000000..72d2bfcaf67 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExpr.txt @@ -0,0 +1,5 @@ +expression: FOR +text: for (i in 1..10){ + 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt new file mode 100644 index 00000000000..eef41a03799 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.kt @@ -0,0 +1,5 @@ +fun test() { + for (i in 1..10){ + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.txt new file mode 100644 index 00000000000..ea043ae8af8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt new file mode 100644 index 00000000000..6a4a7a60edf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.kt @@ -0,0 +1,5 @@ +fun test() { + val a = for (i in 1..10){ + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.txt new file mode 100644 index 00000000000..72d2bfcaf67 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprInvalid.txt @@ -0,0 +1,5 @@ +expression: FOR +text: for (i in 1..10){ + 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt new file mode 100644 index 00000000000..af894ddf038 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.kt @@ -0,0 +1,5 @@ +fun test() { + for (i in 1..10){ + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.txt new file mode 100644 index 00000000000..04e0aa45355 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprLoopVar.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: i +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt new file mode 100644 index 00000000000..88aadac2889 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.kt @@ -0,0 +1,5 @@ +fun test() { + for (i in 1..10){ + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.txt new file mode 100644 index 00000000000..884794f5b0f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExpr.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: 1..10 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt new file mode 100644 index 00000000000..8556e196b3e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.kt @@ -0,0 +1,5 @@ +fun test() { + for (i in 1..10){ + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.txt new file mode 100644 index 00000000000..e2e6c998d6e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forExprRangeExprUpperBound.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 10 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt new file mode 100644 index 00000000000..04379c7b593 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.kt @@ -0,0 +1,5 @@ +fun test(ps: List>) { + for(4) { + 5 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.txt new file mode 100644 index 00000000000..d2413ce8429 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/forLoopInvalid.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: 4 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt new file mode 100644 index 00000000000..fd2c176e594 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.kt @@ -0,0 +1,6 @@ +fun test() { + val f = fun(): Int { + return 54 + } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.txt new file mode 100644 index 00000000000..8b64e2e8544 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteral.txt @@ -0,0 +1,5 @@ +expression: FUN +text: fun(): Int { + return 54 + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt new file mode 100644 index 00000000000..b60f54f74f7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): Int = 54 + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.txt new file mode 100644 index 00000000000..12f1a2eb8d1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBody.txt @@ -0,0 +1,3 @@ +expression: FUN +text: fun(): Int = 54 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt new file mode 100644 index 00000000000..d16b07b9d1c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): Int = 54 + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.txt new file mode 100644 index 00000000000..f0eeb5b37ef --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyBody.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 54 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt new file mode 100644 index 00000000000..4120a66b173 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): () -> Int = { 54 } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.txt new file mode 100644 index 00000000000..7f4400f68d0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambda.txt @@ -0,0 +1,3 @@ +expression: FUN +text: fun(): () -> Int = { 54 } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt new file mode 100644 index 00000000000..f48992c8dbb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): () -> Int = { 54 } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.txt new file mode 100644 index 00000000000..09ba9619ba3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlock.txt @@ -0,0 +1,3 @@ +expression: LAMBDA_EXPRESSION +text: { 54 } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt new file mode 100644 index 00000000000..58be758a722 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): () -> Int = { 54 } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.txt new file mode 100644 index 00000000000..f0eeb5b37ef --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInner.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 54 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt new file mode 100644 index 00000000000..db6ee6ad248 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): () -> Unit = { 54 } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.txt new file mode 100644 index 00000000000..07cad1bddea --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaBlockInnerUnit.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 54 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt new file mode 100644 index 00000000000..ac3bad9e0ce --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): (Int) -> Int = { x -> 54 + x } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.txt new file mode 100644 index 00000000000..e529a946ae3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationLHS.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: Int +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt new file mode 100644 index 00000000000..e62309d5f8d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.kt @@ -0,0 +1,4 @@ +fun test() { + val f = fun(): () -> Int = { 54 } + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.txt new file mode 100644 index 00000000000..371f7dad98b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExpressionBodyLambdaTypeAnnotationRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Int +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt new file mode 100644 index 00000000000..69840a9e5fc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.kt @@ -0,0 +1,3 @@ +fun test() { + val f = fun String.(x: Int) = { 54 + this.length } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/functionLiteralExtensionReceiverType.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt new file mode 100644 index 00000000000..66beb20d735 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.kt @@ -0,0 +1,3 @@ +fun test(b: Boolean) { + if (b) { 54 } else { 45 } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.txt new file mode 100644 index 00000000000..07cad1bddea --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_unused.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 54 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt new file mode 100644 index 00000000000..513cfe950a1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.kt @@ -0,0 +1,3 @@ +fun test(b: Boolean) { + if (b) { 54 } else { 45 } + 4 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.txt new file mode 100644 index 00000000000..f0eeb5b37ef --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifBranches_used.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 54 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt new file mode 100644 index 00000000000..0e6de38133d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if ((b is Boolean)) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.txt new file mode 100644 index 00000000000..ee49cbe31bb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/ifConditionParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (b is Boolean) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt new file mode 100644 index 00000000000..ab059823459 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.kt @@ -0,0 +1,7 @@ +fun test(b: Boolean): Int { + if (b) { + return 54 + } else { + return 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/if_subject.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt new file mode 100644 index 00000000000..b71faa06dce --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.kt @@ -0,0 +1,3 @@ +fun test(): Unit = { + Unit +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.txt new file mode 100644 index 00000000000..fd41036f09f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Unit +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt new file mode 100644 index 00000000000..a090b177a06 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.kt @@ -0,0 +1 @@ +fun test(): () -> Unit = { Unit } diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.txt new file mode 100644 index 00000000000..fd41036f09f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlock2.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Unit +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt new file mode 100644 index 00000000000..a38257fab57 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.kt @@ -0,0 +1,4 @@ +fun test(): Unit = { + 5 + Unit +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.txt new file mode 100644 index 00000000000..fd41036f09f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/implicitNullBlockMultiStatements.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Unit +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt new file mode 100644 index 00000000000..5705e9d0cc1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + val a = when(b) { + true -> 5 + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt new file mode 100644 index 00000000000..11b8a42baba --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean) { + val a = when(b) { + true -> { + 5 + } + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt new file mode 100644 index 00000000000..e098b4640d4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.kt @@ -0,0 +1,10 @@ +fun test(b: Boolean) { + val a = when(b) { + true -> { + 5 + 45 + } + } + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.txt new file mode 100644 index 00000000000..85b1bb6cca0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/initializer_when_branch_block_stmt.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt new file mode 100644 index 00000000000..04baa5f2da8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.txt new file mode 100644 index 00000000000..e9fcf19ac0e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/innerClassDecl.txt @@ -0,0 +1,5 @@ +expression: CLASS +text: inner class B() { + + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt new file mode 100644 index 00000000000..23a35f7f222 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.txt new file mode 100644 index 00000000000..eae684eb494 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/interfaceMemberDecl.txt @@ -0,0 +1,3 @@ +expression: FUN +text: fun i(t: T): Int +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt new file mode 100644 index 00000000000..084223ec8c4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.kt @@ -0,0 +1,4 @@ +fun test() { + val f = { 45 } + f() + 589 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.txt new file mode 100644 index 00000000000..9c82eaa3adf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/invokedLocalVariable.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: f +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt new file mode 100644 index 00000000000..7858ad116e6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if (b is Number) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.txt new file mode 100644 index 00000000000..4b51ae034e0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpression.txt @@ -0,0 +1,3 @@ +expression: IS_EXPRESSION +text: b is Number +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt new file mode 100644 index 00000000000..13c0c1e256a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if (b is Number) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt new file mode 100644 index 00000000000..f859e6926e6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if ((b) is Boolean) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSInsideParens.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt new file mode 100644 index 00000000000..55cf084ed22 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if ((b) is Boolean) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.txt new file mode 100644 index 00000000000..c143f24a62e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionLHSParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (b) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt new file mode 100644 index 00000000000..9d55660be8d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if (b is Number) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.txt new file mode 100644 index 00000000000..55989a06ef3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionOperator.txt @@ -0,0 +1,3 @@ +expression: OPERATION_REFERENCE +text: is +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt new file mode 100644 index 00000000000..d6ae6a6cb75 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if (b is Number) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.txt new file mode 100644 index 00000000000..3c63d7cc5ce --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Number +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt new file mode 100644 index 00000000000..ff2480bf54c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.kt @@ -0,0 +1,9 @@ +fun test(b: Any?): Int { + if (b is (Number)) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.txt new file mode 100644 index 00000000000..3c63d7cc5ce --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionRHSInsideParens.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Number +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt new file mode 100644 index 00000000000..614c8f6339d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.kt @@ -0,0 +1,10 @@ +fun test(b: Any?): Int { + b is Number + if (b is String) { + return 54 + } else if (b is Int) { + return 87 + } else { + return 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.txt new file mode 100644 index 00000000000..87312b97b08 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/isExpressionUnused.txt @@ -0,0 +1,3 @@ +expression: IS_EXPRESSION +text: b is Number +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt new file mode 100644 index 00000000000..0c1680599d3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.kt @@ -0,0 +1,5 @@ +fun test(b: String?) { + b?.let { + return@let 5 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.txt new file mode 100644 index 00000000000..b6fa5ca3488 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturn.txt @@ -0,0 +1,3 @@ +expression: RETURN +text: return@let 5 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt new file mode 100644 index 00000000000..37d83bd544b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.kt @@ -0,0 +1,5 @@ +fun test(b: String?) { + b?.let { + return@let 5 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.txt new file mode 100644 index 00000000000..d6153dfb977 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnLabel.txt @@ -0,0 +1,3 @@ +expression: LABEL +text: @let +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt new file mode 100644 index 00000000000..0bcb0f4202b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.kt @@ -0,0 +1,5 @@ +fun test(b: String?) { + b?.let { + return@let 5 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledReturnValue.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt new file mode 100644 index 00000000000..4a91dc95e8a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.kt @@ -0,0 +1,5 @@ +class C { + fun String.test(): Int { + return this@C.hashCode() + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.txt new file mode 100644 index 00000000000..8548f9a0d4f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThis.txt @@ -0,0 +1,3 @@ +expression: THIS_EXPRESSION +text: this@C +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt new file mode 100644 index 00000000000..c3d2fada46b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.kt @@ -0,0 +1,5 @@ +class C { + fun String.test(): Int { + return this@C.hashCode() + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.txt new file mode 100644 index 00000000000..0251f0643c4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/labelledThisLabel.txt @@ -0,0 +1,3 @@ +expression: LABEL +text: @C +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt new file mode 100644 index 00000000000..b53fc822d99 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.kt @@ -0,0 +1,6 @@ +fun test() { + val f = { x, y -> + x + y + } + f(5, 4) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.txt new file mode 100644 index 00000000000..d4686b69018 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgs.txt @@ -0,0 +1,5 @@ +expression: LAMBDA_EXPRESSION +text: { x, y -> + x + y + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt new file mode 100644 index 00000000000..b62f3d5263a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.kt @@ -0,0 +1,6 @@ +fun test() { + val f = { x, y -> + x + y + } + f(5, 4) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.txt new file mode 100644 index 00000000000..47eaf7a4b67 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsArgs.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: x +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt new file mode 100644 index 00000000000..f0ad0926d34 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.kt @@ -0,0 +1,6 @@ +fun test() { + val f = { x, y -> + x + y + } + f(5, 4) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.txt new file mode 100644 index 00000000000..f137db7d55c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambdaWithArgsBody.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: x + y +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt new file mode 100644 index 00000000000..07f9bbdb893 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.kt @@ -0,0 +1,4 @@ +fun test() { + "unused" + { 5 } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt new file mode 100644 index 00000000000..34383c112f8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.kt @@ -0,0 +1,4 @@ +fun test() { + "unused" + { 5 }.invoke() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/lambda_unused_invoke.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt new file mode 100644 index 00000000000..be7b5f09f28 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.kt @@ -0,0 +1,7 @@ +fun test() { + fun function () { + + } + function() + function() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.txt new file mode 100644 index 00000000000..efd55db638f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/localFunctionDecl.txt @@ -0,0 +1,5 @@ +expression: FUN +text: fun function () { + + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt new file mode 100644 index 00000000000..5781b383b0b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.kt @@ -0,0 +1,8 @@ +fun test() { + + outer@while(true) { + inner@while(false) { + break@outer + } + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.txt new file mode 100644 index 00000000000..95227d679e5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabel.txt @@ -0,0 +1,3 @@ +expression: LABEL +text: outer@ +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt new file mode 100644 index 00000000000..7455194df3e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.kt @@ -0,0 +1,8 @@ +fun test() { + + outer@while(true) { + inner@while(false) { + break@outer + } + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.txt new file mode 100644 index 00000000000..de297cf4750 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreak.txt @@ -0,0 +1,3 @@ +expression: BREAK +text: break@outer +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt new file mode 100644 index 00000000000..3cba786ba1b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.kt @@ -0,0 +1,8 @@ +fun test() { + + outer@while(true) { + inner@while(false) { + break@outer + } + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.txt new file mode 100644 index 00000000000..445f2c87e7c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakLabel.txt @@ -0,0 +1,3 @@ +expression: LABEL +text: @outer +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt new file mode 100644 index 00000000000..4acf178c572 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.kt @@ -0,0 +1,8 @@ +fun test() { + + outer@while(true) { + inner@while(false) { + val x = break@outer + } + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.txt new file mode 100644 index 00000000000..de297cf4750 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/loopLabelBreakUsed.txt @@ -0,0 +1,3 @@ +expression: BREAK +text: break@outer +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt new file mode 100644 index 00000000000..df1fdbfd1af --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.kt @@ -0,0 +1,25 @@ +interface I { + fun i(t: T): Int +} + +class C(val x: Int): I { + companion object { + val K: Int = 58 + } + + fun test(): Int { + return 45 * K + } + + fun count(xs: List): Int { + return xs.size + } + + override fun i(t: T): Int { + return test() + t.hashCode() + } + + inner class B() { + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.txt new file mode 100644 index 00000000000..624f142a37e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/memberFunctionDecl.txt @@ -0,0 +1,5 @@ +expression: FUN +text: fun test(): Int { + return 45 * K + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt new file mode 100644 index 00000000000..f0f7f1447cc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.kt @@ -0,0 +1,12 @@ +fun builder(block: () -> Int): Boolean { + block() + return true +} + +fun intFunction(): Int { + return 5 +} + +fun test(b: Boolean) { + builder { intFunction() } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.txt new file mode 100644 index 00000000000..fd8154fbfd0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: intFunction() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt new file mode 100644 index 00000000000..6379b715dac --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.kt @@ -0,0 +1,15 @@ +fun builder(block: () -> Int): Boolean { + block() + return true +} + +fun intFunction(): Int { + return 5 +} + +fun test(b: Boolean) { + builder { + intFunction() + intFunction() + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.txt new file mode 100644 index 00000000000..feb03b0fee7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/nonunit_lambda_multiple_statements.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: intFunction() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt new file mode 100644 index 00000000000..41ff7af168d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.kt @@ -0,0 +1,5 @@ +class C { + object Foo { + val x = 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.txt new file mode 100644 index 00000000000..e360831c1f7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclaration.txt @@ -0,0 +1,5 @@ +expression: OBJECT_DECLARATION +text: object Foo { + val x = 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt new file mode 100644 index 00000000000..7d42951eb0d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.kt @@ -0,0 +1,5 @@ +class C { + object Foo { + val x = 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.txt new file mode 100644 index 00000000000..870294203c0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectDeclarationProperty.txt @@ -0,0 +1,3 @@ +expression: PROPERTY +text: val x = 4 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt new file mode 100644 index 00000000000..48e2e3367ef --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.kt @@ -0,0 +1,5 @@ +class C { + object { + val x = 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.txt new file mode 100644 index 00000000000..425b7519ae4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteral.txt @@ -0,0 +1,5 @@ +expression: OBJECT_DECLARATION +text: object { + val x = 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt new file mode 100644 index 00000000000..919a0d9dc4f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.kt @@ -0,0 +1,5 @@ +class C { + object { + val x = 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.txt new file mode 100644 index 00000000000..870294203c0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/objectLiteralMember.txt @@ -0,0 +1,3 @@ +expression: PROPERTY +text: val x = 4 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt new file mode 100644 index 00000000000..5e6fb046e7a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.kt @@ -0,0 +1,5 @@ +fun test(b: Boolean) { + object { + fun getBool(): Boolean = b + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.txt new file mode 100644 index 00000000000..26ec722d983 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_unused.txt @@ -0,0 +1,5 @@ +expression: OBJECT_LITERAL +text: object { + fun getBool(): Boolean = b + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt new file mode 100644 index 00000000000..3be68feb193 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.kt @@ -0,0 +1,5 @@ +fun test(b: Boolean) { + val x = object { + fun getBool(): Boolean = b + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.txt new file mode 100644 index 00000000000..d11c0d7e707 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/object_used.txt @@ -0,0 +1,5 @@ +expression: OBJECT_LITERAL +text: object { + fun getBool(): Boolean = b + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt new file mode 100644 index 00000000000..273d28afc9a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.txt new file mode 100644 index 00000000000..9a0e581e79b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterDecl.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: b: Boolean +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt new file mode 100644 index 00000000000..0a7edc5efb3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.txt new file mode 100644 index 00000000000..b1553941047 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/parameterType.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Boolean +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt new file mode 100644 index 00000000000..ab624e1ae2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.kt @@ -0,0 +1,4 @@ +fun test(b: String?): Int { + b!! + return b.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.txt new file mode 100644 index 00000000000..485149c6782 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnused.txt @@ -0,0 +1,3 @@ +expression: POSTFIX_EXPRESSION +text: b!! +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt new file mode 100644 index 00000000000..06ef5d4ddc1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.kt @@ -0,0 +1,4 @@ +fun test(b: String?): Int { + b!! + return b.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedArg.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt new file mode 100644 index 00000000000..4042f159933 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.kt @@ -0,0 +1,4 @@ +fun test(b: String?): Int { + b!! + return b.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.txt new file mode 100644 index 00000000000..ed6b63bf0b3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUnusedOp.txt @@ -0,0 +1,3 @@ +expression: OPERATION_REFERENCE +text: !! +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt new file mode 100644 index 00000000000..aa2930c5e5a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.kt @@ -0,0 +1,4 @@ +fun test(b: String?): Int { + val v: Sting = b!! + return v.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.txt new file mode 100644 index 00000000000..a7fcdf22253 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsed.txt @@ -0,0 +1,3 @@ +expression: POSTFIX_EXPRESSION +text: b!! +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt new file mode 100644 index 00000000000..db93c7dd008 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.kt @@ -0,0 +1,4 @@ +fun test(b: String?): Int { + val v: Sting = b!! + return v.length +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.txt new file mode 100644 index 00000000000..ed6b63bf0b3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixBangBangUsedOp.txt @@ -0,0 +1,3 @@ +expression: OPERATION_REFERENCE +text: !! +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt new file mode 100644 index 00000000000..203191c299d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.kt @@ -0,0 +1,9 @@ +fun test(): Int { + var result = 58 + result-- + return result +} + +// IGNORE_FE10 +// FE1.0 `isUsedAsExpression` considers built-in postfix inc/dec and +// compound assignments as used, always. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.txt new file mode 100644 index 00000000000..6652553b8cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixDecrementException.txt @@ -0,0 +1,3 @@ +expression: POSTFIX_EXPRESSION +text: result-- +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt new file mode 100644 index 00000000000..0e03e3d2bf5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.kt @@ -0,0 +1,9 @@ +fun test(): Int { + var result = 58 + result++ + return result +} + +// IGNORE_FE10 +// FE1.0 `isUsedAsExpression` considers built-in postfix inc/dec and +// compound assignments as used, always. \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.txt new file mode 100644 index 00000000000..b1dba263aa1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixIncrementException.txt @@ -0,0 +1,3 @@ +expression: POSTFIX_EXPRESSION +text: result++ +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt new file mode 100644 index 00000000000..2b54ea33ed0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.kt @@ -0,0 +1,5 @@ +fun test(): Int { + var result = 58 + val result = result++ + return result +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.txt new file mode 100644 index 00000000000..a96f0c59feb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorTechnicallyUnused.txt @@ -0,0 +1,3 @@ +expression: POSTFIX_EXPRESSION +text: result++ +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt new file mode 100644 index 00000000000..50cccd0deaf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.kt @@ -0,0 +1,5 @@ +fun test(): Int { + var result = 58 + val v = result++ + return result + v +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.txt new file mode 100644 index 00000000000..a96f0c59feb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsed.txt @@ -0,0 +1,3 @@ +expression: POSTFIX_EXPRESSION +text: result++ +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt new file mode 100644 index 00000000000..2a2e511dafe --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.kt @@ -0,0 +1,5 @@ +fun test(): Int { + var result = 58 + val v = result++ + return result + v +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.txt new file mode 100644 index 00000000000..83ea2e40b62 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedArg.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: result +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt new file mode 100644 index 00000000000..74a37dbd60f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.kt @@ -0,0 +1,5 @@ +fun test(): Int { + var result = 58 + val v = result++ + return result + v +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.txt new file mode 100644 index 00000000000..2dd4bfad6c3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/postfixOperatorUsedOp.txt @@ -0,0 +1,3 @@ +expression: OPERATION_REFERENCE +text: ++ +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt new file mode 100644 index 00000000000..c1465d8fd15 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.txt new file mode 100644 index 00000000000..882823a2a5a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperator.txt @@ -0,0 +1,3 @@ +expression: PREFIX_EXPRESSION +text: !b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt new file mode 100644 index 00000000000..84ced8fffe0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArg.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt new file mode 100644 index 00000000000..3795ffed49e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !(b) + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.txt new file mode 100644 index 00000000000..c143f24a62e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorArgInParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (b) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt new file mode 100644 index 00000000000..379a9bfd2ec --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to (!b) + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.txt new file mode 100644 index 00000000000..ce86c74d82e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorInParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (!b) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt new file mode 100644 index 00000000000..31c60ea5406 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to (!b) + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.txt new file mode 100644 index 00000000000..80f237fdc9f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorOperator.txt @@ -0,0 +1,3 @@ +expression: OPERATION_REFERENCE +text: ! +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt new file mode 100644 index 00000000000..0f1f56b1b00 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.kt @@ -0,0 +1,9 @@ +fun test(b: Boolean): Int { + !b + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.txt new file mode 100644 index 00000000000..3aee3862630 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnused.txt @@ -0,0 +1,3 @@ +expression: PREFIX_EXPRESSION +text: !b +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt new file mode 100644 index 00000000000..0c5a13220e4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.kt @@ -0,0 +1,9 @@ +fun test(b: Boolean): Int { + !b + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/prefixOperatorUnusedArg.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt new file mode 100644 index 00000000000..63d5480c5bc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean): Int { + val n: Int = (b.hashCode)() + return n * 2 +} + +// Different behavior on invalid program between FE1.0 and FIR \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.txt new file mode 100644 index 00000000000..fcbda8e7246 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyAsCallReceiverInParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (b.hashCode) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt new file mode 100644 index 00000000000..bc0623043ce --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.kt @@ -0,0 +1,6 @@ +fun Any.hashKode(): Int = 404 + +fun test(b: Boolean): Int { + val n: Int = b.hashKode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.txt new file mode 100644 index 00000000000..2d4db40fafe --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyCall.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: hashKode() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt new file mode 100644 index 00000000000..3401a30fc8b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.txt new file mode 100644 index 00000000000..d05b536538a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyDecl.txt @@ -0,0 +1,9 @@ +expression: PROPERTY +text: var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt new file mode 100644 index 00000000000..f82819fb015 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.txt new file mode 100644 index 00000000000..1e7108d6dcb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterBody.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + return field * 2 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt new file mode 100644 index 00000000000..9d6af69edde --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.txt new file mode 100644 index 00000000000..08b824cc7b0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterDecl.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: field +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt new file mode 100644 index 00000000000..4775e207495 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.kt @@ -0,0 +1,15 @@ +class C { + + var property: Int = 58 + get() = field * 2 + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.txt new file mode 100644 index 00000000000..870b8c50ab8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterExpressionBody.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: field * 2 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt new file mode 100644 index 00000000000..a31d6243ee7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.txt new file mode 100644 index 00000000000..7fc9ca1dec5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyGetterFieldRef.txt @@ -0,0 +1,5 @@ +expression: PROPERTY_ACCESSOR +text: get() { + return field * 2 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt new file mode 100644 index 00000000000..02ce60bd86e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.kt @@ -0,0 +1,6 @@ +fun Any.hashKode(): Int = 404 + +fun test(b: Boolean): Int { + val n: Int = b.hashKode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.txt new file mode 100644 index 00000000000..b14cbf249c4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyName.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: hashKode +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt new file mode 100644 index 00000000000..9eb0190d3ba --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.kt @@ -0,0 +1,5 @@ + +fun test(b: String): Int { + val n: Int = b.length + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.txt new file mode 100644 index 00000000000..70a26259983 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGet.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt new file mode 100644 index 00000000000..ee50ab0dcaa --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.kt @@ -0,0 +1,5 @@ + +fun test(b: String): Int { + b.length + return 68 * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.txt new file mode 100644 index 00000000000..6fdc564e3cf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyNameFieldGetUnused.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: length +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt new file mode 100644 index 00000000000..9ff9f235047 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.kt @@ -0,0 +1,6 @@ +fun Any.hashKode(): Int = 404 + +fun test(b: Boolean): Int { + val n: Int = b.hashKode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReceiver.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt new file mode 100644 index 00000000000..888a269d4e1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = (b::hashCode)() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.txt new file mode 100644 index 00000000000..4e21d73f316 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceAsCallReceiverInParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (b::hashCode) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt new file mode 100644 index 00000000000..bc7fcb95669 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = (b::hashCode)() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.txt new file mode 100644 index 00000000000..bd084d119b6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceProperty.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: hashCode +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt new file mode 100644 index 00000000000..4f4670b88c5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = (b::hashCode)() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertyReferenceReceiver.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt new file mode 100644 index 00000000000..08b2c2e2dac --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.txt new file mode 100644 index 00000000000..4a45c9a53e3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterArg.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: value +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt new file mode 100644 index 00000000000..5a942f996dd --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.txt new file mode 100644 index 00000000000..f23919b60ae --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterCompoundAssign.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: field += 45 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt new file mode 100644 index 00000000000..81fd5556262 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.kt @@ -0,0 +1,17 @@ +class C { + + var property: Int = 58 + get() { + return field * 2 + } + set(value) { + field += 45 + } + +} + +fun main() { + val c = C() + c.property -= 20 + println(C().property) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.txt new file mode 100644 index 00000000000..08b824cc7b0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/propertySetterFieldWrite.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: field +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt new file mode 100644 index 00000000000..6bca68d2152 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.kt @@ -0,0 +1,5 @@ +fun test() { + + four@4 + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.txt new file mode 100644 index 00000000000..c5633269a0b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabel.txt @@ -0,0 +1,3 @@ +expression: LABEL +text: four@ +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt new file mode 100644 index 00000000000..3164a2731b0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.kt @@ -0,0 +1,5 @@ +fun test() { + + four@(4) + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.txt new file mode 100644 index 00000000000..fae08754b02 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParens.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (4) +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt new file mode 100644 index 00000000000..763045c15aa --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.kt @@ -0,0 +1,5 @@ +fun test() { + + four@(4) + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.txt new file mode 100644 index 00000000000..87960717346 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParensWholeExpression.txt @@ -0,0 +1,3 @@ +expression: LABELED_EXPRESSION +text: four@(4) +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt new file mode 100644 index 00000000000..ad8c5f387e9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.kt @@ -0,0 +1,5 @@ +fun test() { + + 5 + (four@4) + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.txt new file mode 100644 index 00000000000..1ca1c8b0dab --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelParenthesized.txt @@ -0,0 +1,3 @@ +expression: LABELED_EXPRESSION +text: four@4 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt new file mode 100644 index 00000000000..160dd357c91 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.kt @@ -0,0 +1,5 @@ +fun test() { + + val x = four@4 + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.txt new file mode 100644 index 00000000000..1ca1c8b0dab --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelUsed.txt @@ -0,0 +1,3 @@ +expression: LABELED_EXPRESSION +text: four@4 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt new file mode 100644 index 00000000000..d2b4e32b46d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.kt @@ -0,0 +1,5 @@ +fun test() { + + four@4 + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.txt new file mode 100644 index 00000000000..684a86726aa --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/redundantLabelledExpr.txt @@ -0,0 +1,3 @@ +expression: LABELED_EXPRESSION +text: four@4 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt new file mode 100644 index 00000000000..3e68219c654 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.kt @@ -0,0 +1,3 @@ +fun test(): Int { + return 54 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.txt new file mode 100644 index 00000000000..d1b43646828 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return.txt @@ -0,0 +1,3 @@ +expression: RETURN +text: return 54 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt new file mode 100644 index 00000000000..14d7ab225b1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.kt @@ -0,0 +1,8 @@ +fun test(b: Boolean): Int { + val (one, two) = b to !b + return if (one && two) { + 54 + } else { + 45 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.txt new file mode 100644 index 00000000000..371f7dad98b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/returnType.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Int +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt new file mode 100644 index 00000000000..e4442d0447b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.kt @@ -0,0 +1,3 @@ +fun test(): Unit { + return Unit +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.txt new file mode 100644 index 00000000000..f2675bd8a0e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_explicit_unit.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Unit +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt new file mode 100644 index 00000000000..796f02951ac --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.kt @@ -0,0 +1,3 @@ +fun test(): Unit = { + Unit +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.txt new file mode 100644 index 00000000000..fd41036f09f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_implicit_unit.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Unit +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt new file mode 100644 index 00000000000..e94dd2e291b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.kt @@ -0,0 +1,3 @@ +fun test(b: Boolean): Int { + return 5 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/return_value.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt new file mode 100644 index 00000000000..df55f481b08 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + run { + 5 + 5 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/run_block.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt new file mode 100644 index 00000000000..f6d7a36ba3d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.kt @@ -0,0 +1,3 @@ +fun test() { + "this is a template" +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.txt new file mode 100644 index 00000000000..58a5e3da9ca --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplate.txt @@ -0,0 +1,3 @@ +expression: STRING_TEMPLATE +text: "this is a template" +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt new file mode 100644 index 00000000000..9b87a5ad92a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.kt @@ -0,0 +1,4 @@ +fun test() { + val i = 59 + "this is a ${i + 5}" +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.txt new file mode 100644 index 00000000000..63c3d21e931 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateBracesInner.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: i + 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt new file mode 100644 index 00000000000..20948929a58 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.kt @@ -0,0 +1,4 @@ +fun test() { + val i = 59 + "this is a $i" +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.txt new file mode 100644 index 00000000000..ba27c419978 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/stringTemplateVar.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: i +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt new file mode 100644 index 00000000000..338e2293809 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.kt @@ -0,0 +1,11 @@ +open class A { + open fun test(x: Int): String { + return "OK" + } +} + +class B : A() { + override fun test(x: Int): String { + return super.test(x * 2) + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.txt new file mode 100644 index 00000000000..7e4c78e776e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpression.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: super.test(x * 2) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt new file mode 100644 index 00000000000..fba07e619fb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.kt @@ -0,0 +1,11 @@ +open class A { + open fun test(x: Int): String { + return "OK" + } +} + +class B : A() { + override fun test(x: Int): String { + return super.test(x * 2) + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.txt new file mode 100644 index 00000000000..ce4e62b7117 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionArg.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: x * 2 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt new file mode 100644 index 00000000000..4d07bec3766 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.kt @@ -0,0 +1,11 @@ +open class A { + open fun test(x: Int): String { + return "OK" + } +} + +class B : A() { + override fun test(x: Int): String { + return super.test(x * 2) + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.txt new file mode 100644 index 00000000000..6f64315de41 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/superExpressionSuper.txt @@ -0,0 +1,3 @@ +expression: SUPER_EXPRESSION +text: super +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt new file mode 100644 index 00000000000..cb87245e37a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.kt @@ -0,0 +1,5 @@ +import java.lang.Exception + +fun test() { + throw Exception() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.txt new file mode 100644 index 00000000000..d6e6c1b4c0e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: Exception() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt new file mode 100644 index 00000000000..4eddd1be7d0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.kt @@ -0,0 +1,5 @@ +import java.lang.Exception + +fun test() { + throw Exception() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.txt new file mode 100644 index 00000000000..cc06772ba54 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throwStmt.txt @@ -0,0 +1,3 @@ +expression: THROW +text: throw Exception() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt new file mode 100644 index 00000000000..6d5764d5dda --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.kt @@ -0,0 +1,5 @@ +import java.lang.Exception + +fun test(b: Boolean) { + throw if (b) { Exception() } else { Exception() } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.txt new file mode 100644 index 00000000000..d6e6c1b4c0e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/throw_if_branch.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: Exception() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt new file mode 100644 index 00000000000..2afa30ca003 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.kt @@ -0,0 +1,8 @@ +fun function() { + +} + +fun test() { + function() + function() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.txt new file mode 100644 index 00000000000..2f24f0868bc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelDecl.txt @@ -0,0 +1,5 @@ +expression: FUN +text: fun function() { + +} +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt new file mode 100644 index 00000000000..8d5c67d6fdf --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.kt @@ -0,0 +1,7 @@ +fun callee(): Int { + return 598 +} + +fun test() { + callee() + 45 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.txt new file mode 100644 index 00000000000..480f1270e9e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCall.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: callee() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt new file mode 100644 index 00000000000..1d69f7fc8d3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.kt @@ -0,0 +1,7 @@ +fun callee(): Int { + return 598 +} + +fun test() { + callee() + 45 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.txt new file mode 100644 index 00000000000..fe9a28074c0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionCallReference.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: callee +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt new file mode 100644 index 00000000000..e6215ea3f91 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.kt @@ -0,0 +1,7 @@ +fun callee(): Int { + return 598 +} + +fun test() { + (::callee)() + 45 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.txt new file mode 100644 index 00000000000..10de8f6a3a3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCall.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: (::callee)() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt new file mode 100644 index 00000000000..366e1cd854b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.kt @@ -0,0 +1,7 @@ +fun callee(x: Int): Int { + return 598 + x +} + +fun test() { + (::callee)(657) + 45 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.txt new file mode 100644 index 00000000000..a85c2445bad --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallArg.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 657 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt new file mode 100644 index 00000000000..c8f94257381 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.kt @@ -0,0 +1,7 @@ +fun callee(): Int { + return 598 +} + +fun test() { + (::callee)() + 45 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.txt new file mode 100644 index 00000000000..d97e1605951 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReceiver.txt @@ -0,0 +1,3 @@ +expression: PARENTHESIZED +text: (::callee) +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt new file mode 100644 index 00000000000..91ca7d8cd51 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.kt @@ -0,0 +1,7 @@ +fun callee(): Int { + return 598 +} + +fun test() { + (::callee)() + 45 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.txt new file mode 100644 index 00000000000..fe9a28074c0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/toplevelFunctionReferenceCallReference.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: callee +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt new file mode 100644 index 00000000000..9f7b3eea752 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.kt @@ -0,0 +1,7 @@ +fun foo(lambda: (String) -> Int): Int = lambda("jello!") + +fun test() { + foo @Deprecated("") { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.txt new file mode 100644 index 00000000000..c0c259a8363 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambda.txt @@ -0,0 +1,5 @@ +expression: CALL_EXPRESSION +text: foo @Deprecated("") { + it.length + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt new file mode 100644 index 00000000000..68036d900fe --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.kt @@ -0,0 +1,7 @@ +fun foo(lambda: (String) -> Int): Int = lambda("jello!") + +fun test() { + foo @Deprecated("") { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.txt new file mode 100644 index 00000000000..ade838604e4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaAnnotatedExpr.txt @@ -0,0 +1,5 @@ +expression: ANNOTATED_EXPRESSION +text: @Deprecated("") { + it.length + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt new file mode 100644 index 00000000000..c66c969d4a8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.kt @@ -0,0 +1,7 @@ +fun foo(lambda: (String) -> Int): Int = lambda("jello!") + +fun test() { + foo @Deprecated("") { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.txt new file mode 100644 index 00000000000..5dc34a9b9b0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlock.txt @@ -0,0 +1,5 @@ +expression: LAMBDA_EXPRESSION +text: { + it.length + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt new file mode 100644 index 00000000000..a15e64f4712 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.kt @@ -0,0 +1,7 @@ +fun foo(lambda: (String) -> Int): Int = lambda("jello!") + +fun test() { + foo @Deprecated("") { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.txt new file mode 100644 index 00000000000..8efcbba1a89 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaBlockInner.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: it.length +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt new file mode 100644 index 00000000000..60bc456dc8b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.kt @@ -0,0 +1,7 @@ +fun foo(lambda: (String) -> Int): Int = lambda("jello!") + +fun test() { + foo @Deprecated("") { + it.length + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.txt new file mode 100644 index 00000000000..9d7d6b80970 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/trailingAnnotatedLambdaFun.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: foo +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt new file mode 100644 index 00000000000..a14ce628f06 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.txt new file mode 100644 index 00000000000..444d77c6a83 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try.txt @@ -0,0 +1,9 @@ +expression: TRY +text: try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt new file mode 100644 index 00000000000..e06dc9a93ca --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.txt new file mode 100644 index 00000000000..ea043ae8af8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt new file mode 100644 index 00000000000..5cb12821f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.txt new file mode 100644 index 00000000000..330c3933296 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockBlockUsed.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 4 + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt new file mode 100644 index 00000000000..9fee6dc2afd --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.txt new file mode 100644 index 00000000000..1f755de50ad --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInner.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 4 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt new file mode 100644 index 00000000000..11b0ce26cd1 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.txt new file mode 100644 index 00000000000..1a7cab674c5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryBlockInnerUsed.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 4 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt new file mode 100644 index 00000000000..bb5ef1ad988 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.txt new file mode 100644 index 00000000000..adf8008d905 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArg.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: e: Exception +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt new file mode 100644 index 00000000000..33783241a88 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.txt new file mode 100644 index 00000000000..adf8008d905 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchArgUsed.txt @@ -0,0 +1,3 @@ +expression: VALUE_PARAMETER +text: e: Exception +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt new file mode 100644 index 00000000000..9b63e6ce752 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.txt new file mode 100644 index 00000000000..f8e4943d091 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 5 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt new file mode 100644 index 00000000000..c2038bd3352 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.txt new file mode 100644 index 00000000000..85b1bb6cca0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInner.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt new file mode 100644 index 00000000000..1906467784e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockInnerUsed.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt new file mode 100644 index 00000000000..0ba44451d07 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.txt new file mode 100644 index 00000000000..fde6b75b41e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryCatchBlockUsed.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 5 + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt new file mode 100644 index 00000000000..fec8f51344a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.txt new file mode 100644 index 00000000000..0c6079bdca9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 9 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt new file mode 100644 index 00000000000..7c62ca28778 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.kt @@ -0,0 +1,9 @@ +fun test() { + try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.txt new file mode 100644 index 00000000000..d3705e1ddcc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInner.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 9 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt new file mode 100644 index 00000000000..31389bf8f09 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.txt new file mode 100644 index 00000000000..d3705e1ddcc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockInnerUsed.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 9 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt new file mode 100644 index 00000000000..e61776fdca5 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.txt new file mode 100644 index 00000000000..0c6079bdca9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryFinallyBlockUsed.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 9 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt new file mode 100644 index 00000000000..1a940e83e98 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.kt @@ -0,0 +1,7 @@ +fun test() { + try { + 4 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.txt new file mode 100644 index 00000000000..0c6079bdca9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 9 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt new file mode 100644 index 00000000000..5735dcc9596 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.kt @@ -0,0 +1,7 @@ +fun test() { + try { + 4 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.txt new file mode 100644 index 00000000000..d3705e1ddcc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInner.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 9 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt new file mode 100644 index 00000000000..f8266bde48d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.kt @@ -0,0 +1,7 @@ +fun test() { + val x = try { + 4 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.txt new file mode 100644 index 00000000000..d3705e1ddcc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockInnerUsed.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 9 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt new file mode 100644 index 00000000000..7bb23681179 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.kt @@ -0,0 +1,7 @@ +fun test() { + val x = try { + 4 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.txt new file mode 100644 index 00000000000..0c6079bdca9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryOnlyFinallyBlockUsed.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + 9 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt new file mode 100644 index 00000000000..38e1e3168de --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.kt @@ -0,0 +1,7 @@ +fun test() { + try { + throw Exception() + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.txt new file mode 100644 index 00000000000..d3705e1ddcc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInner.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 9 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt new file mode 100644 index 00000000000..8fdf34a94a4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.kt @@ -0,0 +1,7 @@ +fun test() { + val x = try { + throw Exception() + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.txt new file mode 100644 index 00000000000..d3705e1ddcc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryThrowsToFinallyInnerUsed.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 9 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt new file mode 100644 index 00000000000..f16e13c6540 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.kt @@ -0,0 +1,9 @@ +fun test() { + val x = try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.txt new file mode 100644 index 00000000000..829731f03c6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/tryUsed.txt @@ -0,0 +1,9 @@ +expression: TRY +text: try { + 4 + } catch (e: Exception) { + 5 + } finally { + 9 + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt new file mode 100644 index 00000000000..fa033c26c90 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.kt @@ -0,0 +1,6 @@ +import java.lang.Exception + +fun test() { + try { throw Exception() } finally { return } + 4 + return +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.txt new file mode 100644 index 00000000000..79f68f17891 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/try_catch_binop.txt @@ -0,0 +1,3 @@ +expression: TRY +text: try { throw Exception() } finally { return } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt new file mode 100644 index 00000000000..0cd77c765ff --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.kt @@ -0,0 +1 @@ +typealias Alias = List \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.txt new file mode 100644 index 00000000000..beb01ed091b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAlias.txt @@ -0,0 +1,3 @@ +expression: TYPEALIAS +text: typealias Alias = List +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt new file mode 100644 index 00000000000..36c6e01e5c2 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.kt @@ -0,0 +1,3 @@ +class C { + typealias Local = List +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.txt new file mode 100644 index 00000000000..ffc2c55f716 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasLocal.txt @@ -0,0 +1,3 @@ +expression: TYPEALIAS +text: typealias Local = List +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt new file mode 100644 index 00000000000..0c20df0c61a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.kt @@ -0,0 +1 @@ +typealias Alias<T> = List \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.txt new file mode 100644 index 00000000000..ad79888c476 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameter.txt @@ -0,0 +1,3 @@ +expression: TYPE_PARAMETER +text: T +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt new file mode 100644 index 00000000000..28c16f030f6 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.kt @@ -0,0 +1 @@ +typealias AliasSerializeable> = List \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.txt new file mode 100644 index 00000000000..2f58652ef21 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBound.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Serializeable +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt new file mode 100644 index 00000000000..6db6c09b6ae --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.kt @@ -0,0 +1 @@ +typealias AliasY>> = List \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.txt new file mode 100644 index 00000000000..446aeee8a0d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterBoundVariance.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Y +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt new file mode 100644 index 00000000000..f9c11150736 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.kt @@ -0,0 +1 @@ +typealias Alias<T : Serializeable> = List \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.txt new file mode 100644 index 00000000000..9d59c6fac3c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasParameterWithBounds.txt @@ -0,0 +1,3 @@ +expression: TYPE_PARAMETER +text: T : Serializeable +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt new file mode 100644 index 00000000000..b194cb07f92 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.kt @@ -0,0 +1 @@ +typealias Alias = List \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.txt new file mode 100644 index 00000000000..51266bb3b42 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: List +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt new file mode 100644 index 00000000000..1a5f3c0757f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.kt @@ -0,0 +1 @@ +typealias Alias = List<T> \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.txt new file mode 100644 index 00000000000..558ef038b79 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/typeAliasRHSTypeParameter.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: T +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt new file mode 100644 index 00000000000..462abfcf42c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.kt @@ -0,0 +1,12 @@ +fun builder(block: () -> Unit): Boolean { + block() + return true +} + +fun unitFunction() { + return +} + +fun test(b: Boolean) { + builder { unitFunction() } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.txt new file mode 100644 index 00000000000..1286d9c98c4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: unitFunction() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt new file mode 100644 index 00000000000..fdf00b057eb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.kt @@ -0,0 +1,12 @@ +fun builder(block: () -> Unit): Boolean { + block() + return true +} + +fun nonunitFunction(): Int { + return 54 +} + +fun test(b: Boolean) { + builder { nonunitFunction() } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.txt new file mode 100644 index 00000000000..3bcd6be4562 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/unit_lambda_nonunit_function.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: nonunitFunction() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt new file mode 100644 index 00000000000..dae0dc6026d --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val a = 54 + return a +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.txt new file mode 100644 index 00000000000..f0eeb5b37ef --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/value_initializer.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 54 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt new file mode 100644 index 00000000000..8a9dc5f68d9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.kt @@ -0,0 +1,7 @@ +var a = 5 + +fun foo() = if (true) { + a = 6 +} else { + a = 8 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.txt new file mode 100644 index 00000000000..0417539681e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/var_reassignment_if.txt @@ -0,0 +1,7 @@ +expression: IF +text: if (true) { + a = 6 +} else { + a = 8 +} +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt new file mode 100644 index 00000000000..9826c34d0c8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = b.hashCode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.txt new file mode 100644 index 00000000000..9931f4bb785 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationDecl.txt @@ -0,0 +1,3 @@ +expression: PROPERTY +text: val n: Int = b.hashCode() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt new file mode 100644 index 00000000000..6392d5afa91 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = b.hashCode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.txt new file mode 100644 index 00000000000..371f7dad98b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationLHSType.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: Int +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt new file mode 100644 index 00000000000..a6768d28495 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.kt @@ -0,0 +1,4 @@ +fun test(b: Boolean): Int { + val n: Int = b.hashCode() + return n * 2 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.txt new file mode 100644 index 00000000000..92bf3312a60 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/variableDeclarationRHS.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: b.hashCode() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt new file mode 100644 index 00000000000..212f88dbbc8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + when(b) { + true -> 5 + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.txt new file mode 100644 index 00000000000..81ad87436db --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when.txt @@ -0,0 +1,6 @@ +expression: WHEN +text: when(b) { + true -> 5 + else -> 0 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt new file mode 100644 index 00000000000..bb1b293b413 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.kt @@ -0,0 +1,12 @@ +fun test() { + when (val a = 42) { + else -> { + use("") + foo() + } + } +} + +fun use(s: String) {} + +fun foo() {} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.txt new file mode 100644 index 00000000000..49fb9cb967f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when2.txt @@ -0,0 +1,8 @@ +expression: WHEN +text: when (val a = 42) { + else -> { + use("") + foo() + } + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt new file mode 100644 index 00000000000..39694d3ca81 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.kt @@ -0,0 +1,7 @@ +fun test(v: Any?) { + when (v) { + is Number -> 5 + is Boolean, is String -> 9 + else -> 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchMultiple.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt new file mode 100644 index 00000000000..561beda5222 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.kt @@ -0,0 +1,7 @@ +fun test(v: Any?) { + when (v) { + is Number -> 5 + is String -> 9 + else -> 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.txt new file mode 100644 index 00000000000..cbe749aceb4 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenIsBranchType.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: String +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt new file mode 100644 index 00000000000..71060adaadc --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + val x = when(b) { + true -> 5 + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.txt new file mode 100644 index 00000000000..fb4c62dad69 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenUsed.txt @@ -0,0 +1,6 @@ +expression: WHEN +text: when(b) { + true -> 5 + else -> 0 + } +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt new file mode 100644 index 00000000000..6cc52648252 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.kt @@ -0,0 +1,6 @@ +fun test(v: Any?) { + when (val h = v.hashCode()) { + is Number -> 5 + else -> 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.txt new file mode 100644 index 00000000000..6cae9ab7772 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithVal.txt @@ -0,0 +1,3 @@ +expression: PROPERTY +text: val h = v.hashCode() +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt new file mode 100644 index 00000000000..f9f1c742939 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.kt @@ -0,0 +1,6 @@ +fun test(v: Any?) { + when (val h = v.hashCode()) { + is Number -> 5 + else -> 9 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.txt new file mode 100644 index 00000000000..299682c638f --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whenWithValRHS.txt @@ -0,0 +1,3 @@ +expression: DOT_QUALIFIED_EXPRESSION +text: v.hashCode() +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt new file mode 100644 index 00000000000..af2a3211a61 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + when(b) { + true -> 5 + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.txt new file mode 100644 index 00000000000..85b1bb6cca0 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branch.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt new file mode 100644 index 00000000000..c7df74d7d51 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + val x = when(b) { + true -> 5 + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.txt new file mode 100644 index 00000000000..7c917904f2c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_branchUsed.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 5 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt new file mode 100644 index 00000000000..d34446e9025 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + when(b) { + true -> 5 + else -> 0 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.txt new file mode 100644 index 00000000000..aee1cbcefed --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition.txt @@ -0,0 +1,3 @@ +expression: BOOLEAN_CONSTANT +text: true +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt new file mode 100644 index 00000000000..b9516f991b7 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + when(b) { + else -> 0 + true -> 5 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.txt new file mode 100644 index 00000000000..aee1cbcefed --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_condition_unreachable.txt @@ -0,0 +1,3 @@ +expression: BOOLEAN_CONSTANT +text: true +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt new file mode 100644 index 00000000000..557ca62ff77 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.kt @@ -0,0 +1,5 @@ +fun test(b: Boolean) { + when(b) { + else -> {} + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.txt new file mode 100644 index 00000000000..2191680a8aa --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt new file mode 100644 index 00000000000..989498683af --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.kt @@ -0,0 +1,6 @@ +fun test(b: Boolean) { + when(b) { + true -> 5 + else -> {} + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.txt new file mode 100644 index 00000000000..a06ab8c8762 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_subject_with_branches.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: b +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt new file mode 100644 index 00000000000..d97c29e2600 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.kt @@ -0,0 +1,3 @@ +fun test(x: Boolean) { + when (x) {} +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.txt new file mode 100644 index 00000000000..b473a3ecce8 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/when_syntaxerror.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: x +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt new file mode 100644 index 00000000000..13031e7dfa9 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.kt @@ -0,0 +1,5 @@ +fun test(b: Boolean) { + while (b) { + 4 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.txt new file mode 100644 index 00000000000..d9ebc9b0b53 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileExpr.txt @@ -0,0 +1,5 @@ +expression: WHILE +text: while (b) { + 4 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt new file mode 100644 index 00000000000..54d4ba19b8b --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.kt @@ -0,0 +1,6 @@ +fun test() { + var i = 0 + while (i < 100) { + i++ + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.txt new file mode 100644 index 00000000000..0c28f549574 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoop.txt @@ -0,0 +1,5 @@ +expression: WHILE +text: while (i < 100) { + i++ + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt new file mode 100644 index 00000000000..64ddf071e1e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.kt @@ -0,0 +1,6 @@ +fun test() { + var i = 0 + while (i < 100) { + i = 890 + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.txt new file mode 100644 index 00000000000..a46b5672bcb --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBlock.txt @@ -0,0 +1,5 @@ +expression: BLOCK +text: { + i = 890 + } +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt new file mode 100644 index 00000000000..cc19f332d93 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.kt @@ -0,0 +1,8 @@ +fun test() { + var i = 0 + while (i < 100) { + + 90 + + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.txt new file mode 100644 index 00000000000..76ef0af4368 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopBody.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 90 +isUsedAsExpression: false diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt new file mode 100644 index 00000000000..1e3b4e23560 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.kt @@ -0,0 +1,6 @@ +fun test() { + var i = 0 + while (i < 100) { + i++ + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.txt new file mode 100644 index 00000000000..8547917afab --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopCondition.txt @@ -0,0 +1,3 @@ +expression: BINARY_EXPRESSION +text: i < 100 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt new file mode 100644 index 00000000000..e991ee6829e --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.kt @@ -0,0 +1,6 @@ +fun test() { + var i = 0 + while (i < 100) { + i++ + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.txt new file mode 100644 index 00000000000..ba27c419978 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionLHS.txt @@ -0,0 +1,3 @@ +expression: REFERENCE_EXPRESSION +text: i +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt new file mode 100644 index 00000000000..b76a341aa32 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.kt @@ -0,0 +1,6 @@ +fun test() { + var i = 0 + while (i < 100) { + i++ + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.txt new file mode 100644 index 00000000000..67314414e4a --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/whileLoopConditionRHS.txt @@ -0,0 +1,3 @@ +expression: INTEGER_CONSTANT +text: 100 +isUsedAsExpression: true diff --git a/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.kt b/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.kt index 24615f5d318..6e9af2f20e4 100644 --- a/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.kt +++ b/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.kt @@ -1,4 +1,7 @@ val f1: () -> Unit = {} val f2 = {} val f3: String.() -> String = { this } -fun f4(): Int.(T) -> String = { "" } \ No newline at end of file +fun f4(): Int.(T) -> String = { "" } +val f5 = fun(x:Int) { return "$x" } +val f6 = fun() { 56 } +val f7: () -> Unit = fun() { f1() } \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.txt b/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.txt index 25194d56768..a7794f891b7 100644 --- a/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.txt +++ b/analysis/analysis-api/testData/components/expressionTypeProvider/declarationReturnType/funtionType.txt @@ -3,3 +3,10 @@ f2@(2,1) : () -> kotlin.Unit f3@(3,1) : kotlin.String.() -> kotlin.String f4@(4,1) : kotlin.Int.(T) -> kotlin.String KtParameter@(4,20) : T +f5@(5,1) : (kotlin.Int) -> kotlin.Unit + KtNamedFunction@(5,10) : kotlin.Unit + x@(5,14) : kotlin.Int +f6@(6,1) : () -> kotlin.Unit + KtNamedFunction@(6,10) : kotlin.Unit +f7@(7,1) : () -> kotlin.Unit + KtNamedFunction@(7,22) : kotlin.Unit diff --git a/analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt b/analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt new file mode 100644 index 00000000000..d3bcdd354fe --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt @@ -0,0 +1,3 @@ +fun test(): Unit = { + 5 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.txt b/analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.txt new file mode 100644 index 00000000000..a8567c3e517 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.txt @@ -0,0 +1,2 @@ +expression: 5 +type: kotlin.Int diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt index 501ac2cd6f3..0d8d1e126a3 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compile import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.diagnosticProvider.AbstractCollectDiagnosticsTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider.AbstractReturnTargetSymbolTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider.AbstractWhenMissingCasesTest +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider.AbstractIsUsedAsExpressionTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionTypeProvider.AbstractDeclarationReturnTypeTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionTypeProvider.AbstractExpectedExpressionTypeTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionTypeProvider.AbstractHLExpressionTypeTest @@ -199,6 +200,10 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { test(AbstractReturnTargetSymbolTest::class) { model("returnExpressionTargetSymbol") } + + test(AbstractIsUsedAsExpressionTest::class) { + model("isUsedAsExpression") + } } component("expressionTypeProvider") {