Merge branch 'master' of plugins/typeMigration
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 20 Jun 2014 10:25:22 +0000 (12:25 +0200)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 20 Jun 2014 10:25:22 +0000 (12:25 +0200)
983 files changed:
plugins/typeMigration/src/META-INF/plugin.xml [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/TypeMigrationVariableTypeFixProvider.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ChangeClassParametersIntention.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToAtomicIntention.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToThreadLocalIntention.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/AtomicConversionRule.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ElementToArrayConversionRule.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ListArrayConversionRule.java [new file with mode: 0644]
plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ThreadLocalConversionRule.java [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ChangeClassParametersIntention/after.java.template [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ChangeClassParametersIntention/before.java.template [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ChangeClassParametersIntention/description.html [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ConvertFieldToAtomicIntention/after.java.template [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ConvertFieldToAtomicIntention/before.java.template [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ConvertFieldToAtomicIntention/description.html [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ConvertFieldToThreadLocalIntention/after.java.template [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ConvertFieldToThreadLocalIntention/before.java.template [new file with mode: 0644]
plugins/typeMigration/src/intentionDescriptions/ConvertFieldToThreadLocalIntention/description.html [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/codeInsight/ConvertToAtomicIntentionTest.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/codeInsight/ConvertToThreadLocalIntentionTest.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/AllTypeMigrationTests.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/ChangeTypeSignatureTest.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/MigrateTypeSignatureTest.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationByAtomicRuleTest.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationByThreadLocalRuleTest.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTest.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTestBase.java [new file with mode: 0644]
plugins/typeMigration/test/com/intellij/refactoring/WildcardTypeMigrationTest.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after1.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after10.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after12.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after13.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after14.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after2.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after3.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after4.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after5.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after6.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after7.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after8.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/after9.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/afterExcl.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/afterTA1.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before1.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before10.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before11.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before12.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before13.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before14.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before2.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before3.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before4.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before5.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before6.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before7.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before8.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/before9.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/beforeExcl.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/atomic/beforeTA1.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after1.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after2.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after3.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after4.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after5.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after6.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after7.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/after8.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/afterTA1.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before1.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before2.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before3.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before4.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before5.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before6.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before7.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/before8.java [new file with mode: 0644]
plugins/typeMigration/testData/intentions/threadLocal/beforeTA1.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/CompositeReturnType.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/CompositeReturnType.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/FieldTypeMigration.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/FieldTypeMigration.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/FieldUsage.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/FieldUsage.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/FieldUsage1.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/FieldUsage1.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ListTypeArguments.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ListTypeArguments.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/MethodReturnTypeMigration.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/MethodReturnTypeMigration.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ParameterMigration.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ParameterMigration.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ParameterMigration1.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ParameterMigration1.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ParameterMigration2.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ParameterMigration2.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/PassedParameter.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/PassedParameter.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/PassedParameter1.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/PassedParameter1.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/PassedParameter2.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/PassedParameter2.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ReturnType.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ReturnType.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ReturnType1.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ReturnType1.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ReturnType2.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/ReturnType2.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchy.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchy.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchy1.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchy1.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchy2.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchy2.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchyFieldUsage.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchyFieldUsage.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchyFieldUsageConflict.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/TypeHierarchyFieldUsageConflict.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/UsedInSuper.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/changeTypeSignature/UsedInSuper.java.after [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccess2Lvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccess2Lvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccess2Lvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccess2Rvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccess2Rvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccess2Rvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccessParent2Lvalue/after/Ession.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccessParent2Lvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccessParent2Lvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccessParent2Rvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccessParent2Rvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprAccessParent2Rvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprArrayAccessNegative/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprArrayAccessNegative/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprArrayAccessNegative/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprArrayAccessPositive/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprArrayAccessPositive/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprArrayAccessPositive/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanBoolean/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanBoolean/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanBoolean/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanNumeric/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanNumeric/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanNumeric/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanReference/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanReference/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcBooleanReference/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Boolean/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Boolean/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Boolean/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Floating/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Floating/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Floating/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Int/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Int/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2Int/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2String/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2String/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCalcNumeric2String/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCast2LvalueNeg/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCast2LvalueNeg/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCast2LvalueNeg/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCast2LvaluePos/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCast2LvaluePos/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprCast2LvaluePos/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatNumeric2Reference/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatNumeric2Reference/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatNumeric2Reference/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatNumeric2String/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatNumeric2String/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatNumeric2String/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatString2Numeric/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatString2Numeric/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatString2Numeric/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatString2Reference/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatString2Reference/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprConcatString2Reference/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprInstanceofNeg/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprInstanceofNeg/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprInstanceofNeg/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprInstanceofPos/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprInstanceofPos/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprInstanceofPos/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralBoolean/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralBoolean/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralBoolean/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralByte/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralByte/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralByte/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralChar/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralChar/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralChar/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassExtends/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassExtends/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassExtends/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassPrimitive/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassPrimitive/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassPrimitive/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassPrimitiveArray/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassPrimitiveArray/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassPrimitiveArray/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassRaw/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassRaw/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassRaw/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassReference/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassReference/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassReference/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassReferenceArray/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassReferenceArray/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassReferenceArray/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassSuper/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassSuper/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralClassSuper/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralDouble/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralDouble/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralDouble/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralFloat/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralFloat/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralFloat/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralInt/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralInt/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralInt/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralLong/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralLong/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralLong/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralShort/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralShort/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralShort/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralString/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralString/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprLiteralString/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayArray2Lvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayArray2Lvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayArray2Lvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayArray2Rvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayArray2Rvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayArray2Rvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayGen2Rvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayGen2Rvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayGen2Rvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayPrimitive2Lvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayPrimitive2Lvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayPrimitive2Lvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayPrimitive2Rvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayPrimitive2Rvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayPrimitive2Rvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayReftype2Lvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayReftype2Lvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayReftype2Lvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayReftype2Rvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayReftype2Rvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewArrayReftype2Rvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGen/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGen/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGen/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGenExtends/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGenExtends/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGenExtends/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGenSuper/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGenSuper/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewGenSuper/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewReference/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewReference/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprNewReference/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprReturn2Lvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprReturn2Lvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprReturn2Lvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprReturn2Rvalue/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprReturn2Rvalue/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprReturn2Rvalue/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprTernary/after/Expr.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprTernary/after/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/exprTernary/before/Expr.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/overridingDown/after/Overriding.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/overridingDown/after/Parent.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/overridingDown/before/Overriding.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/overridingUp/after/Child.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/overridingUp/after/Overriding.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/overridingUp/before/Overriding.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/specJavadoc/after/Spec.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/specJavadoc/after/Spec.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/specJavadoc/before/Spec.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/specNotUsed/after/Spec.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/specNotUsed/after/Spec.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/specNotUsed/before/Spec.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayReftype2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayReftype2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayReftype2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayReftype2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayReftype2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayReftype2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayRoots2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayRoots2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayRoots2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2RvalueNeg/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2RvalueNeg/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2RvalueNeg/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2RvaluePos/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2RvaluePos/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeArrayVararg2RvaluePos/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxBoolean2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxBoolean2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxBoolean2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxBoolean2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxBoolean2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxBoolean2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxByte2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxByte2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxByte2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxByte2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxByte2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxByte2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxChar2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxChar2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxChar2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxChar2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxChar2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxChar2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxDouble2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxDouble2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxDouble2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxDouble2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxDouble2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxDouble2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxFloat2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxFloat2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxFloat2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxFloat2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxFloat2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxFloat2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxInt2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxInt2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxInt2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxInt2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxInt2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxInt2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxLong2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxLong2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxLong2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxLong2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxLong2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxLong2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxShort2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxShort2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxShort2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxShort2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxShort2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeAutoboxShort2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenAncestor2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenAncestor2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenAncestor2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenAncestorWildcard2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenAncestorWildcard2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenAncestorWildcard2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenDescendant2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenDescendant2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenDescendant2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenDescendantWildcard2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenDescendantWildcard2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenDescendantWildcard2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenRaw2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenRaw2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenRaw2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenRaw2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenRaw2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeGenRaw2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubBoolean2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubBoolean2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubBoolean2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubBoolean2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubBoolean2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubBoolean2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubByte2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubByte2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubByte2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubChar2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubChar2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubChar2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubChar2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubChar2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubChar2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubDouble2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubDouble2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubDouble2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubFloat2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubFloat2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubFloat2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubFloat2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubFloat2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubFloat2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubInt2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubInt2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubInt2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubInt2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubInt2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubInt2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubLong2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubLong2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubLong2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubLong2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubLong2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubLong2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubShort2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubShort2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubShort2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubShort2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubShort2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typePrimsubShort2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassChild2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassChild2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassChild2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassParent2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassParent2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassParent2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassParent2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassParent2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefClassParent2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceChild2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceChild2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceChild2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceChild2Rvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceChild2Rvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceChild2Rvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceParent2Lvalue/after/Type.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceParent2Lvalue/after/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/migrateTypeSignature/typeRefFaceParent2Lvalue/before/Type.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t01/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t01/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t01/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t02/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t02/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t02/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t03/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t03/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t03/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t04/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t04/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t04/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t05/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t05/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t05/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t06/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t06/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t06/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t07/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t07/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t07/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t08/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t08/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t08/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t09/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t09/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t09/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t10/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t10/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t10/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t100/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t100/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t100/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t101/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t101/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t101/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t102/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t102/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t102/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t103/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t103/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t103/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t104/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t104/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t104/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t105/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t105/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t105/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t106/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t106/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t106/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t107/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t107/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t107/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t108/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t108/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t108/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t109/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t109/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t109/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t11/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t11/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t11/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t110/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t110/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t110/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t111/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t111/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t111/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t112/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t112/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t112/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t113/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t113/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t113/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t114/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t114/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t114/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t115/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t115/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t115/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t116/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t116/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t116/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t117/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t117/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t117/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t118/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t118/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t118/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t119/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t119/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t119/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t12/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t12/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t12/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t120/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t120/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t120/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t121/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t121/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t121/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t122/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t122/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t122/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t123/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t123/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t123/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t124/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t124/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t124/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t125/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t125/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t125/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t126/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t126/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t126/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t127/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t127/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t127/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t128/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t128/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t128/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t129/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t129/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t129/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t13/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t13/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t13/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t130/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t130/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t130/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t131/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t131/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t131/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t132/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t132/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t132/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t133/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t133/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t133/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t134/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t134/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t134/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t135/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t135/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t135/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t136/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t136/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t136/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t137/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t137/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t137/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t138/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t138/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t138/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t139/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t139/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t139/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t14/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t14/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t14/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t15/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t15/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t15/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t16/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t16/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t16/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t17/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t17/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t17/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t18/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t18/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t18/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t19/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t19/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t19/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t20/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t20/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t20/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t21/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t21/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t21/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t22/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t22/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t22/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t23/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t23/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t23/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t24/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t24/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t24/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t25/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t25/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t25/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t26/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t26/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t26/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t27/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t27/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t27/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t28/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t28/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t28/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t29/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t29/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t29/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t30/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t30/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t30/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t31/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t31/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t31/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t32/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t32/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t32/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t33/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t33/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t33/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t34/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t34/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t34/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t35/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t35/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t35/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t36/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t36/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t36/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t37/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t37/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t37/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t38/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t38/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t38/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t39/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t39/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t39/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t40/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t40/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t40/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t41/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t41/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t41/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t42/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t42/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t42/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t43/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t43/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t43/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t44/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t44/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t44/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t45/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t45/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t45/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t46/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t46/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t46/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t47/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t47/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t47/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t48/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t48/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t48/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t49/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t49/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t49/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t50/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t50/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t50/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t51/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t51/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t51/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t52/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t52/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t52/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t53/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t53/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t53/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t54/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t54/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t54/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t55/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t55/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t55/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t56/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t56/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t56/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t57/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t57/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t57/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t58/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t58/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t58/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t59/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t59/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t59/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t60/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t60/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t60/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t61/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t61/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t61/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t62/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t62/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t62/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t63/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t63/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t63/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t64/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t64/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t64/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t65/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t65/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t65/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t66/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t66/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t66/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t67/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t67/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t67/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t68/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t68/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t68/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t69/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t69/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t69/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t70/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t70/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t70/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t71/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t71/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t71/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t72/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t72/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t72/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t73/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t73/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t73/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t74/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t74/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t74/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t75/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t75/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t75/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t76/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t76/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t76/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t77/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t77/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t77/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t78/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t78/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t78/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t79/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t79/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t79/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t80/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t80/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t80/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t81/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t81/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t81/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t82/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t82/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t82/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t83/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t83/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t83/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t84/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t84/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t84/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t85/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t85/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t85/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t86/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t86/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t86/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t87/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t87/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t87/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t88/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t88/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t88/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t89/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t89/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t89/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t90/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t90/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t90/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t91/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t91/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t91/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t92/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t92/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t92/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t93/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t93/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t93/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t94/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t94/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t94/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t95/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t95/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t95/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t96/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t96/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t96/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t97/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t97/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t97/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t98/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t98/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t98/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t99/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t99/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/t99/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/typeAnno/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/typeAnno/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigration/typeAnno/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directAssignments/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directAssignments/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directAssignments/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directByte/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directByte/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directByte/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directConditions/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directConditions/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directConditions/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directForeach/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directForeach/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directForeach/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directIncrementDecrement/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directIncrementDecrement/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directIncrementDecrement/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directIntArray/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directIntArray/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directIntArray/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directString/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directString/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directString/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directStringArray/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directStringArray/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/directStringArray/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseAssignments/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseAssignments/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseAssignments/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseByte/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseByte/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseByte/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseConditions/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseConditions/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseConditions/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseIncrementDecrement/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseIncrementDecrement/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseIncrementDecrement/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseIntArray/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseIntArray/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseIntArray/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseString/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseString/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseString/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseStringArray/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseStringArray/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByAtomic/reverseStringArray/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directByte/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directByte/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directByte/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directInt/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directInt/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directInt/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directString/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directString/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/directString/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/languageLevel/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/languageLevel/after/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/typeMigrationByThreadLocal/languageLevel/before/Test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentExtends/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentExtends/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentExtends/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentSuper/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentSuper/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentSuper/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentUnbounded/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentUnbounded/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/assignmentUnbounded/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerExtends/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerExtends/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerExtends/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerSuper/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerSuper/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerSuper/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerUnbounded/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerUnbounded/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/consumerUnbounded/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToChildType/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToChildType/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToChildType/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToSuperType/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToSuperType/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToSuperType/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToType/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToType/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getAssignmentExtendsToType/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getExtends/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getExtends/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getExtends/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getSuper/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getSuper/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getSuper/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getUnbounded/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getUnbounded/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/getUnbounded/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/lengthSize/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/lengthSize/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/lengthSize/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerCollectionChanged/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerCollectionChanged/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerCollectionChanged/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtends/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtends/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtends/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtendsCollectionChanged/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtendsCollectionChanged/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtendsCollectionChanged/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtendsFailToStopAtWildcard/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtendsFailToStopAtWildcard/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerExtendsFailToStopAtWildcard/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerFailToStopAtWildcard/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerFailToStopAtWildcard/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerFailToStopAtWildcard/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerStopAtWildcard/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerStopAtWildcard/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerStopAtWildcard/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerSuper/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerSuper/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerSuper/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerUnbounded/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerUnbounded/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/producerUnbounded/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalConsumerExtends/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalConsumerExtends/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalConsumerExtends/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalConsumerSuper/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalConsumerSuper/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalConsumerSuper/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalProducerExtends/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalProducerExtends/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalProducerExtends/before/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalProducerSuper/after/Test.items [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalProducerSuper/after/test.java [new file with mode: 0644]
plugins/typeMigration/testData/refactoring/wildcard/threadLocalProducerSuper/before/test.java [new file with mode: 0644]
plugins/typeMigration/typeMigration.iml [new file with mode: 0644]

diff --git a/plugins/typeMigration/src/META-INF/plugin.xml b/plugins/typeMigration/src/META-INF/plugin.xml
new file mode 100644 (file)
index 0000000..93ad203
--- /dev/null
@@ -0,0 +1,39 @@
+<idea-plugin>
+  <name>Type Migration</name>
+  <description>
+      <![CDATA[
+      This plugin adds the type migration refactoring.
+      The following features are available:
+      <ul>
+      <li>Dedicated Refactoring Dialog. (Refactor | Type Migration)</li>
+      <li>Ability to review type migration results. (Refactor | Migration | Preview)</li>
+      <li>Ability to automatically change a member type or data flow dependent type entries.</li>
+      <li>Ability to convert variable or method return type between arrays and collections.</li>
+      </ul>
+      ]]>
+  </description>
+  <vendor>JetBrains</vendor>
+  <extensions defaultExtensionNs="com.intellij">
+    <errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
+    <codeInsight.changeVariableTypeQuickFixProvider
+        implementation="com.intellij.refactoring.typeMigration.TypeMigrationVariableTypeFixProvider"/>
+    <conversion.rule implementation="com.intellij.refactoring.typeMigration.rules.ListArrayConversionRule"/>
+    <conversion.rule implementation="com.intellij.refactoring.typeMigration.rules.AtomicConversionRule"/>
+    <conversion.rule implementation="com.intellij.refactoring.typeMigration.rules.BoxingTypeConversionRule"/>
+    <conversion.rule implementation="com.intellij.refactoring.typeMigration.rules.ElementToArrayConversionRule"/>
+    <conversion.rule implementation="com.intellij.refactoring.typeMigration.rules.ThreadLocalConversionRule"/>
+    <intentionAction>
+      <className>com.intellij.refactoring.typeMigration.intentions.ConvertFieldToAtomicIntention</className>
+       <category>Concurrency</category>
+    </intentionAction>
+    <intentionAction>
+      <className>com.intellij.refactoring.typeMigration.intentions.ConvertFieldToThreadLocalIntention</className>
+      <category>Concurrency</category>
+    </intentionAction>
+    <intentionAction>
+      <className>com.intellij.refactoring.typeMigration.intentions.ChangeClassParametersIntention</className>
+      <category>Declaration</category>
+    </intentionAction>
+  </extensions>
+  <depends>Structural Search</depends>
+</idea-plugin>
diff --git a/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java b/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java
new file mode 100644 (file)
index 0000000..0a2b1c4
--- /dev/null
@@ -0,0 +1,101 @@
+package com.intellij.refactoring.typeMigration;
+
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.JavaPsiFacade;
+import com.intellij.psi.PsiExpression;
+import com.intellij.psi.codeStyle.JavaCodeStyleManager;
+import com.intellij.structuralsearch.MatchOptions;
+import com.intellij.structuralsearch.plugin.replace.ReplaceOptions;
+import com.intellij.structuralsearch.plugin.replace.Replacer;
+import com.intellij.util.IncorrectOperationException;
+import org.jetbrains.annotations.NonNls;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: db
+ * Date: Sep 28, 2004
+ * Time: 7:13:53 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class TypeConversionDescriptor extends TypeConversionDescriptorBase {
+  private static final Logger LOG = Logger.getInstance("#" + TypeConversionDescriptor.class.getName());
+
+  private String myStringToReplace = null;
+  private String myReplaceByString = "$";
+  private PsiExpression myExpression;
+
+  public TypeConversionDescriptor(@NonNls final String stringToReplace, @NonNls final String replaceByString) {
+    myStringToReplace = stringToReplace;
+    myReplaceByString = replaceByString;
+  }
+
+  public TypeConversionDescriptor(@NonNls final String stringToReplace, @NonNls final String replaceByString, final PsiExpression expression) {
+    myStringToReplace = stringToReplace;
+    myReplaceByString = replaceByString;
+    myExpression = expression;
+  }
+
+  public void setStringToReplace(String stringToReplace) {
+    myStringToReplace = stringToReplace;
+  }
+
+  public void setReplaceByString(String replaceByString) {
+    myReplaceByString = replaceByString;
+  }
+
+  public String getStringToReplace() {
+    return myStringToReplace;
+  }
+
+  public String getReplaceByString() {
+    return myReplaceByString;
+  }
+
+  public PsiExpression getExpression() {
+    return myExpression;
+  }
+
+  public void setExpression(final PsiExpression expression) {
+    myExpression = expression;
+  }
+
+  @Override
+  public void replace(PsiExpression expression) {
+    if (getExpression() != null) expression = getExpression();
+    final Project project = expression.getProject();
+    final ReplaceOptions options = new ReplaceOptions();
+    options.setMatchOptions(new MatchOptions());
+    final Replacer replacer = new Replacer(project, null);
+    try {
+      final String replacement = replacer.testReplace(expression.getText(), getStringToReplace(), getReplaceByString(), options);
+      try {
+        JavaCodeStyleManager.getInstance(project).shortenClassReferences(expression.replace(
+          JavaPsiFacade.getInstance(project).getElementFactory().createExpressionFromText(replacement, expression)));
+      }
+      catch (IncorrectOperationException e) {
+        LOG.error(e);
+      }
+    }
+    catch (IncorrectOperationException e) {
+      LOG.error(e);
+    }
+  }
+
+  @Override
+  public String toString() {
+    StringBuffer buf = new StringBuffer();
+    if (myReplaceByString != null) {
+      buf.append(myReplaceByString);
+    }
+    if (myStringToReplace != null) {
+      if (buf.length() > 0) buf.append(" ");
+      buf.append(myStringToReplace);
+    }
+    if (myExpression != null) {
+      if (buf.length() > 0) buf.append(" ");
+      buf.append(myExpression.getText());
+    }
+    return buf.toString();
+  }
+}
diff --git a/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/TypeMigrationVariableTypeFixProvider.java b/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/TypeMigrationVariableTypeFixProvider.java
new file mode 100644 (file)
index 0000000..d84320e
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * User: anna
+ * Date: 27-Aug-2009
+ */
+package com.intellij.refactoring.typeMigration;
+
+import com.intellij.codeInsight.FileModificationService;
+import com.intellij.codeInsight.daemon.impl.quickfix.VariableTypeFix;
+import com.intellij.codeInsight.intention.IntentionAction;
+import com.intellij.codeInsight.quickfix.ChangeVariableTypeQuickFixProvider;
+import com.intellij.openapi.command.undo.UndoUtil;
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.PsiElement;
+import com.intellij.psi.PsiFile;
+import com.intellij.psi.PsiType;
+import com.intellij.psi.PsiVariable;
+import com.intellij.psi.codeStyle.JavaCodeStyleManager;
+import com.intellij.psi.search.GlobalSearchScope;
+import com.intellij.util.IncorrectOperationException;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+public class TypeMigrationVariableTypeFixProvider implements ChangeVariableTypeQuickFixProvider {
+  private static final Logger LOG1 = Logger.getInstance("#" + TypeMigrationVariableTypeFixProvider.class.getName());
+
+  @NotNull
+  public IntentionAction[] getFixes(@NotNull PsiVariable variable, @NotNull PsiType toReturn) {
+    return new IntentionAction[]{new VariableTypeFix(variable, toReturn) {
+      @NotNull
+      @Override
+      public String getText() {
+        return "Migrate \'" + myName + "\' type to \'" + getReturnType().getCanonicalText() + "\'";
+      }
+
+      @Override
+      public void invoke(@NotNull Project project,
+                         @NotNull PsiFile file,
+                         @Nullable("is null when called from inspection") Editor editor,
+                         @NotNull PsiElement startElement,
+                         @NotNull PsiElement endElement) {
+        final PsiVariable myVariable = (PsiVariable)startElement;
+
+        if (!FileModificationService.getInstance().prepareFileForWrite(myVariable.getContainingFile())) return;
+        try {
+          myVariable.normalizeDeclaration();
+          final TypeMigrationRules rules = new TypeMigrationRules(TypeMigrationLabeler.getElementType(myVariable));
+          rules.setMigrationRootType(getReturnType());
+          rules.setBoundScope(GlobalSearchScope.projectScope(project));
+          TypeMigrationProcessor.runHighlightingTypeMigration(project, editor, rules, myVariable);
+          JavaCodeStyleManager.getInstance(project).shortenClassReferences(myVariable);
+          UndoUtil.markPsiFileForUndo(file);
+        }
+        catch (IncorrectOperationException e) {
+          LOG1.error(e);
+        }
+      }
+    }};
+  }
+}
diff --git a/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ChangeClassParametersIntention.java b/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ChangeClassParametersIntention.java
new file mode 100644 (file)
index 0000000..9571807
--- /dev/null
@@ -0,0 +1,124 @@
+package com.intellij.refactoring.typeMigration.intentions;
+
+import com.intellij.codeInsight.FileModificationService;
+import com.intellij.codeInsight.hint.HintManager;
+import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
+import com.intellij.codeInsight.intention.impl.TypeExpression;
+import com.intellij.codeInsight.template.*;
+import com.intellij.codeInsight.template.impl.TemplateState;
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.editor.Document;
+import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.TextRange;
+import com.intellij.psi.*;
+import com.intellij.psi.search.LocalSearchScope;
+import com.intellij.psi.util.PsiTreeUtil;
+import com.intellij.refactoring.typeMigration.TypeMigrationProcessor;
+import com.intellij.refactoring.typeMigration.TypeMigrationRules;
+import com.intellij.util.ArrayUtil;
+import com.intellij.util.IncorrectOperationException;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * @author anna
+ */
+public class ChangeClassParametersIntention extends PsiElementBaseIntentionAction {
+
+  private static final Logger LOG = Logger.getInstance("#" + ChangeClassParametersIntention.class);
+
+  @NotNull
+  @Override
+  public String getText() {
+    return getFamilyName();
+  }
+
+  @NotNull
+  @Override
+  public String getFamilyName() {
+    return "Change class type parameter";
+  }
+
+  @Override
+  public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) {
+    final PsiTypeElement typeElement = PsiTreeUtil.getTopmostParentOfType(element, PsiTypeElement.class);
+    final PsiElement parent = typeElement != null ? typeElement.getParent() : null;
+    final PsiReferenceParameterList parameterList = parent instanceof PsiReferenceParameterList ? (PsiReferenceParameterList)parent : null;
+    if (parameterList != null && parameterList.getTypeArguments().length > 0) {
+      final PsiMember member = PsiTreeUtil.getParentOfType(parameterList, PsiMember.class);
+      if (member instanceof PsiAnonymousClass) {
+        final PsiClassType.ClassResolveResult result = ((PsiAnonymousClass)member).getBaseClassType().resolveGenerics();
+        return result.getElement() != null && ((PsiAnonymousClass)member).getBaseClassReference().getParameterList() == parameterList;
+      }
+    }
+    return false;
+  }
+
+  @Override
+  public void invoke(@NotNull final Project project, final Editor editor, @NotNull final PsiElement element) throws IncorrectOperationException {
+    if (!FileModificationService.getInstance().preparePsiElementsForWrite(element)) return;
+
+    final PsiTypeElement typeElement = PsiTreeUtil.getTopmostParentOfType(element, PsiTypeElement.class);
+    final PsiReferenceParameterList parameterList = PsiTreeUtil.getParentOfType(element, PsiReferenceParameterList.class);
+    if (parameterList != null && typeElement != null) {
+      final PsiClass aClass = PsiTreeUtil.getParentOfType(element, PsiClass.class);
+      if (aClass instanceof PsiAnonymousClass) {
+        editor.getCaretModel().moveToOffset(aClass.getTextOffset());
+        final PsiTypeElement[] typeElements = parameterList.getTypeParameterElements();
+        final int changeIdx = ArrayUtil.find(typeElements, typeElement);
+
+        final PsiClassType.ClassResolveResult result = ((PsiAnonymousClass)aClass).getBaseClassType().resolveGenerics();
+        final PsiClass baseClass = result.getElement();
+        LOG.assertTrue(baseClass != null);
+        final PsiTypeParameter typeParameter = baseClass.getTypeParameters()[changeIdx];
+
+        final TemplateBuilderImpl templateBuilder = (TemplateBuilderImpl)TemplateBuilderFactory.getInstance().createTemplateBuilder(aClass);
+
+        final String oldTypeText = typeElement.getText();
+        final String varName = "param";
+        templateBuilder.replaceElement(typeElement, varName, new TypeExpression(project, new PsiType[]{typeElement.getType()}), true);
+
+        final Template template = templateBuilder.buildInlineTemplate();
+        TemplateManager.getInstance(project).startTemplate(editor, template, false, null, new TemplateEditingAdapter() {
+          private String myNewType;
+
+          @Override
+          public void beforeTemplateFinished(TemplateState state, Template template) {
+            final TextResult value = state.getVariableValue(varName);
+            myNewType = value != null ? value.getText() : "";
+            final int segmentsCount = state.getSegmentsCount();
+            final Document document = state.getEditor().getDocument();
+            for (int i = 0; i < segmentsCount; i++) {
+              final TextRange segmentRange = state.getSegmentRange(i);
+              document.replaceString(segmentRange.getStartOffset(), segmentRange.getEndOffset(), oldTypeText);
+            }
+          }
+
+          @Override
+          public void templateFinished(Template template, boolean brokenOff) {
+            if (!brokenOff) {
+              final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(project);
+              try {
+                final PsiType targetParam = elementFactory.createTypeFromText(myNewType, aClass);
+                final TypeMigrationRules myRules = new TypeMigrationRules(((PsiAnonymousClass)aClass).getBaseClassType());
+                final PsiSubstitutor substitutor = result.getSubstitutor().put(typeParameter, targetParam);
+                final PsiType targetClassType = elementFactory.createType(baseClass, substitutor);
+                myRules.setMigrationRootType(targetClassType);
+                myRules.setBoundScope(new LocalSearchScope(aClass));
+                new TypeMigrationProcessor(project, ((PsiAnonymousClass)aClass).getBaseClassReference().getParameterList(), myRules).run();
+              }
+              catch (IncorrectOperationException e) {
+                HintManager.getInstance().showErrorHint(editor, "Incorrect type");
+              }
+            }
+          }
+        });
+      }
+    }
+  }
+
+  @Override
+  public boolean startInWriteAction() {
+    return true;
+  }
+}
diff --git a/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToAtomicIntention.java b/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToAtomicIntention.java
new file mode 100644 (file)
index 0000000..d794d59
--- /dev/null
@@ -0,0 +1,218 @@
+package com.intellij.refactoring.typeMigration.intentions;
+
+import com.intellij.codeInsight.FileModificationService;
+import com.intellij.codeInsight.intention.LowPriorityAction;
+import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
+import com.intellij.lang.java.JavaLanguage;
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.*;
+import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
+import com.intellij.psi.codeStyle.JavaCodeStyleManager;
+import com.intellij.psi.impl.AllowedApiFilterExtension;
+import com.intellij.psi.search.GlobalSearchScope;
+import com.intellij.psi.search.searches.ReferencesSearch;
+import com.intellij.psi.tree.IElementType;
+import com.intellij.psi.util.PsiUtil;
+import com.intellij.psi.util.TypeConversionUtil;
+import com.intellij.refactoring.typeMigration.TypeConversionDescriptor;
+import com.intellij.refactoring.typeMigration.TypeMigrationReplacementUtil;
+import com.intellij.refactoring.typeMigration.rules.AtomicConversionRule;
+import com.intellij.util.IncorrectOperationException;
+import com.intellij.util.Query;
+import com.intellij.util.containers.ContainerUtil;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.*;
+
+import static com.intellij.psi.util.TypeConversionUtil.isBinaryOperatorApplicable;
+import static com.intellij.util.ObjectUtils.assertNotNull;
+
+/**
+ * @author anna
+ * @since 26-Aug-2009
+ */
+public class ConvertFieldToAtomicIntention extends PsiElementBaseIntentionAction implements LowPriorityAction {
+  private static final Logger LOG = Logger.getInstance("#" + ConvertFieldToAtomicIntention.class.getName());
+
+  private final Map<PsiType, String> myFromToMap = ContainerUtil.newHashMap();
+  {
+    myFromToMap.put(PsiType.INT, AtomicInteger.class.getName());
+    myFromToMap.put(PsiType.LONG, AtomicLong.class.getName());
+    myFromToMap.put(PsiType.BOOLEAN, AtomicBoolean.class.getName());
+    myFromToMap.put(PsiType.INT.createArrayType(), AtomicIntegerArray.class.getName());
+    myFromToMap.put(PsiType.LONG.createArrayType(), AtomicLongArray.class.getName());
+  }
+
+  @NotNull
+  @Override
+  public String getText() {
+    return "Convert to atomic";
+  }
+
+  @NotNull
+  @Override
+  public String getFamilyName() {
+    return getText();
+  }
+
+  @Override
+  public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) {
+    PsiVariable psiVariable = getVariable(element);
+    if (psiVariable == null || psiVariable instanceof PsiResourceVariable) return false;
+    if (psiVariable.getLanguage() != JavaLanguage.INSTANCE) return false;
+    if (psiVariable.getTypeElement() == null) return false;
+    if (!PsiUtil.isLanguageLevel5OrHigher(psiVariable)) return false;
+    final PsiType psiType = psiVariable.getType();
+    final PsiClass psiTypeClass = PsiUtil.resolveClassInType(psiType);
+    if (psiTypeClass != null) {
+      final String qualifiedName = psiTypeClass.getQualifiedName();
+      if (qualifiedName != null) { //is already atomic
+        if (myFromToMap.values().contains(qualifiedName) ||
+            qualifiedName.equals(AtomicReference.class.getName()) ||
+            qualifiedName.equals(AtomicReferenceArray.class.getName())) {
+          return false;
+        }
+      }
+    }
+    else if (!myFromToMap.containsKey(psiType)) {
+      return false;
+    }
+    return AllowedApiFilterExtension.isClassAllowed(AtomicReference.class.getName(), element);
+  }
+
+  private static PsiVariable getVariable(PsiElement element) {
+    if (element instanceof PsiIdentifier) {
+      final PsiElement parent = element.getParent();
+      if (parent instanceof PsiLocalVariable || parent instanceof PsiField) {
+        return (PsiVariable)parent;
+      }
+    }
+    return null;
+  }
+
+  @Override
+  public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
+    final PsiVariable psiVariable = getVariable(element);
+    LOG.assertTrue(psiVariable != null);
+
+    final Query<PsiReference> refs = ReferencesSearch.search(psiVariable);
+
+    final Set<PsiElement> elements = new HashSet<PsiElement>();
+    elements.add(element);
+    for (PsiReference reference : refs) {
+      elements.add(reference.getElement());
+    }
+    if (!FileModificationService.getInstance().preparePsiElementsForWrite(elements)) return;
+
+    final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project);
+    final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);
+    final PsiType fromType = psiVariable.getType();
+    PsiClassType toType;
+    final String atomicQualifiedName = myFromToMap.get(fromType);
+    if (atomicQualifiedName != null) {
+      final PsiClass atomicClass = psiFacade.findClass(atomicQualifiedName, GlobalSearchScope.allScope(project));
+      if (atomicClass == null) {//show warning
+        return;
+      }
+      toType = factory.createType(atomicClass);
+    }
+    else if (fromType instanceof PsiArrayType) {
+      final PsiClass atomicReferenceArrayClass =
+        psiFacade.findClass(AtomicReferenceArray.class.getName(), GlobalSearchScope.allScope(project));
+      if (atomicReferenceArrayClass == null) {//show warning
+        return;
+      }
+      final Map<PsiTypeParameter, PsiType> substitutor = ContainerUtil.newHashMap();
+      final PsiTypeParameter[] typeParameters = atomicReferenceArrayClass.getTypeParameters();
+      if (typeParameters.length == 1) {
+        PsiType componentType = ((PsiArrayType)fromType).getComponentType();
+        if (componentType instanceof PsiPrimitiveType) componentType = ((PsiPrimitiveType)componentType).getBoxedType(element);
+        substitutor.put(typeParameters[0], componentType);
+      }
+      toType = factory.createType(atomicReferenceArrayClass, factory.createSubstitutor(substitutor));
+    }
+    else {
+      final PsiClass atomicReferenceClass = psiFacade.findClass(AtomicReference.class.getName(), GlobalSearchScope.allScope(project));
+      if (atomicReferenceClass == null) {//show warning
+        return;
+      }
+      final Map<PsiTypeParameter, PsiType> substitutor = ContainerUtil.newHashMap();
+      final PsiTypeParameter[] typeParameters = atomicReferenceClass.getTypeParameters();
+      if (typeParameters.length == 1) {
+        PsiType type = fromType;
+        if (type instanceof PsiPrimitiveType) type = ((PsiPrimitiveType)fromType).getBoxedType(element);
+        substitutor.put(typeParameters[0], type);
+      }
+      toType = factory.createType(atomicReferenceClass, factory.createSubstitutor(substitutor));
+    }
+
+    try {
+      for (PsiReference reference : refs) {
+        PsiElement psiElement = reference.getElement();
+        if (psiElement instanceof PsiExpression) {
+          final PsiElement parent = psiElement.getParent();
+          if (parent instanceof PsiExpression && !(parent instanceof PsiReferenceExpression || parent instanceof PsiPolyadicExpression)) {
+            psiElement = parent;
+          }
+          if (psiElement instanceof PsiBinaryExpression) {
+            PsiBinaryExpression binary = (PsiBinaryExpression)psiElement;
+            if (isBinaryOperatorApplicable(binary.getOperationTokenType(), binary.getLOperand(), binary.getROperand(), true)) {
+              continue;
+            }
+          }
+          else if (psiElement instanceof PsiAssignmentExpression) {
+            final PsiAssignmentExpression assignment = (PsiAssignmentExpression)psiElement;
+            final IElementType opSign = TypeConversionUtil.convertEQtoOperation(assignment.getOperationTokenType());
+            if (opSign != null && isBinaryOperatorApplicable(opSign, assignment.getLExpression(), assignment.getRExpression(), true)) {
+              continue;
+            }
+          }
+          final TypeConversionDescriptor directConversion = AtomicConversionRule.findDirectConversion(psiElement, toType, fromType);
+          if (directConversion != null) {
+            TypeMigrationReplacementUtil.replaceExpression((PsiExpression)psiElement, project, directConversion);
+          }
+        }
+      }
+
+      final PsiExpression initializer = psiVariable.getInitializer();
+      if (initializer != null) {
+        final TypeConversionDescriptor directConversion = AtomicConversionRule.wrapWithNewExpression(toType, fromType, null, element);
+        if (directConversion != null) {
+          TypeMigrationReplacementUtil.replaceExpression(initializer, project, directConversion);
+        }
+      }
+      else if (!assertNotNull(psiVariable.getModifierList()).hasModifierProperty(PsiModifier.FINAL)) {
+        final PsiExpression newInitializer = factory.createExpressionFromText("new " + toType.getCanonicalText() + "()", psiVariable);
+        if (psiVariable instanceof PsiLocalVariable) {
+          ((PsiLocalVariable)psiVariable).setInitializer(newInitializer);
+        }
+        else if (psiVariable instanceof PsiField) {
+          ((PsiField)psiVariable).setInitializer(newInitializer);
+        }
+        JavaCodeStyleManager.getInstance(project).shortenClassReferences(psiVariable.getInitializer());
+      }
+
+      PsiElement replaced = assertNotNull(psiVariable.getTypeElement()).replace(factory.createTypeElement(toType));
+      JavaCodeStyleManager.getInstance(project).shortenClassReferences(replaced);
+
+      if (psiVariable instanceof PsiField || CodeStyleSettingsManager.getSettings(project).GENERATE_FINAL_LOCALS) {
+        final PsiModifierList modifierList = assertNotNull(psiVariable.getModifierList());
+        modifierList.setModifierProperty(PsiModifier.FINAL, true);
+        modifierList.setModifierProperty(PsiModifier.VOLATILE, false);
+      }
+    }
+    catch (IncorrectOperationException e) {
+      LOG.error(e);
+    }
+  }
+
+  @Override
+  public boolean startInWriteAction() {
+    return true;
+  }
+}
diff --git a/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToThreadLocalIntention.java b/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToThreadLocalIntention.java
new file mode 100644 (file)
index 0000000..e01aaad
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ * User: anna
+ * Date: 26-Aug-2009
+ */
+package com.intellij.refactoring.typeMigration.intentions;
+
+import com.intellij.codeInsight.FileModificationService;
+import com.intellij.codeInsight.intention.LowPriorityAction;
+import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
+import com.intellij.lang.java.JavaLanguage;
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.Comparing;
+import com.intellij.psi.*;
+import com.intellij.psi.codeStyle.CodeStyleManager;
+import com.intellij.psi.impl.AllowedApiFilterExtension;
+import com.intellij.psi.impl.PsiDiamondTypeUtil;
+import com.intellij.psi.search.GlobalSearchScope;
+import com.intellij.psi.search.searches.ReferencesSearch;
+import com.intellij.psi.util.PsiTreeUtil;
+import com.intellij.psi.util.PsiUtil;
+import com.intellij.refactoring.typeMigration.TypeConversionDescriptor;
+import com.intellij.refactoring.typeMigration.TypeMigrationLabeler;
+import com.intellij.refactoring.typeMigration.TypeMigrationReplacementUtil;
+import com.intellij.refactoring.typeMigration.TypeMigrationRules;
+import com.intellij.refactoring.typeMigration.rules.ThreadLocalConversionRule;
+import com.intellij.util.IncorrectOperationException;
+import com.intellij.util.Query;
+import com.intellij.util.containers.ContainerUtil;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import static com.intellij.util.ObjectUtils.assertNotNull;
+
+public class ConvertFieldToThreadLocalIntention extends PsiElementBaseIntentionAction implements LowPriorityAction {
+  private static final Logger LOG = Logger.getInstance("#" + ConvertFieldToThreadLocalIntention.class.getName());
+
+  @NotNull
+  @Override
+  public String getText() {
+    return "Convert to ThreadLocal";
+  }
+
+  @NotNull
+  @Override
+  public String getFamilyName() {
+    return getText();
+  }
+
+  @Override
+  public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) {
+    if (!(element instanceof PsiIdentifier)) return false;
+    final PsiField psiField = PsiTreeUtil.getParentOfType(element, PsiField.class);
+    if (psiField == null) return false;
+    if (psiField.getLanguage() != JavaLanguage.INSTANCE) return false;
+    if (psiField.getTypeElement() == null) return false;
+    final PsiType fieldType = psiField.getType();
+    final PsiClass fieldTypeClass = PsiUtil.resolveClassInType(fieldType);
+    if (fieldType instanceof PsiPrimitiveType || fieldType instanceof PsiArrayType) return true;
+    return fieldTypeClass != null && !Comparing.strEqual(fieldTypeClass.getQualifiedName(), ThreadLocal.class.getName())
+           && AllowedApiFilterExtension.isClassAllowed(ThreadLocal.class.getName(), element);
+  }
+
+  @Override
+  public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
+    final PsiField psiField = PsiTreeUtil.getParentOfType(element, PsiField.class);
+    LOG.assertTrue(psiField != null);
+    final Query<PsiReference> refs = ReferencesSearch.search(psiField);
+
+    final Set<PsiElement> elements = new HashSet<PsiElement>();
+    elements.add(element);
+    for (PsiReference reference : refs) {
+      elements.add(reference.getElement());
+    }
+    if (!FileModificationService.getInstance().preparePsiElementsForWrite(elements)) return;
+
+    final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project);
+    final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);
+    final PsiType fromType = psiField.getType();
+
+    final PsiClass threadLocalClass = psiFacade.findClass(ThreadLocal.class.getName(), GlobalSearchScope.allScope(project));
+    if (threadLocalClass == null) {//show warning
+      return;
+    }
+    final Map<PsiTypeParameter, PsiType> substitutor = ContainerUtil.newHashMap();
+    final PsiTypeParameter[] typeParameters = threadLocalClass.getTypeParameters();
+    if (typeParameters.length == 1) {
+      PsiType type = fromType;
+      if (fromType instanceof PsiPrimitiveType) type = ((PsiPrimitiveType)fromType).getBoxedType(element);
+      substitutor.put(typeParameters[0], type);
+    }
+    final PsiClassType toType = factory.createType(threadLocalClass, factory.createSubstitutor(substitutor));
+
+    try {
+      final TypeMigrationRules rules = new TypeMigrationRules(fromType);
+      rules.setMigrationRootType(toType);
+      rules.setBoundScope(GlobalSearchScope.fileScope(element.getContainingFile()));
+      final TypeMigrationLabeler labeler = new TypeMigrationLabeler(rules);
+      labeler.getMigratedUsages(false, psiField);
+      for (PsiReference reference : refs) {
+        PsiElement psiElement = reference.getElement();
+        if (psiElement instanceof PsiExpression) {
+          final PsiElement parent = psiElement.getParent();
+          if (parent instanceof PsiExpression && !(parent instanceof PsiReferenceExpression || parent instanceof PsiPolyadicExpression)) {
+            psiElement = parent;
+          }
+          final TypeConversionDescriptor conversion = ThreadLocalConversionRule.findDirectConversion(psiElement, toType, fromType, labeler);
+          if (conversion != null) {
+            TypeMigrationReplacementUtil.replaceExpression((PsiExpression)psiElement, project, conversion);
+          }
+        }
+      }
+
+      final PsiExpression initializer = psiField.getInitializer();
+      if (initializer != null) {
+        final TypeConversionDescriptor conversion = ThreadLocalConversionRule.wrapWithNewExpression(toType, fromType, initializer);
+        TypeMigrationReplacementUtil.replaceExpression(initializer, project, conversion);
+        CodeStyleManager.getInstance(project).reformat(psiField);
+      }
+      else if (!assertNotNull(psiField.getModifierList()).hasModifierProperty(PsiModifier.FINAL)) {
+        final String text = "new " + PsiDiamondTypeUtil.getCollapsedType(toType, psiField) + "()";
+        final PsiExpression newInitializer = factory.createExpressionFromText(text, psiField);
+        psiField.setInitializer(newInitializer);
+      }
+
+      assertNotNull(psiField.getTypeElement()).replace(factory.createTypeElement(toType));
+
+      final PsiModifierList modifierList = assertNotNull(psiField.getModifierList());
+      modifierList.setModifierProperty(PsiModifier.FINAL, true);
+      modifierList.setModifierProperty(PsiModifier.VOLATILE, false);
+    }
+    catch (IncorrectOperationException e) {
+      LOG.error(e);
+    }
+  }
+
+  @Override
+  public boolean startInWriteAction() {
+    return true;
+  }
+}
diff --git a/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/AtomicConversionRule.java b/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/AtomicConversionRule.java
new file mode 100644 (file)
index 0000000..a4ec46e
--- /dev/null
@@ -0,0 +1,420 @@
+/*
+ * User: anna
+ * Date: 18-Aug-2009
+ */
+package com.intellij.refactoring.typeMigration.rules;
+
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.util.Comparing;
+import com.intellij.psi.*;
+import com.intellij.psi.impl.PsiDiamondTypeUtil;
+import com.intellij.psi.tree.IElementType;
+import com.intellij.psi.util.PsiUtil;
+import com.intellij.psi.util.TypeConversionUtil;
+import com.intellij.refactoring.typeMigration.TypeConversionDescriptor;
+import com.intellij.refactoring.typeMigration.TypeConversionDescriptorBase;
+import com.intellij.refactoring.typeMigration.TypeMigrationLabeler;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.concurrent.atomic.*;
+
+public class AtomicConversionRule extends TypeConversionRule {
+  private static final Logger LOG = Logger.getInstance("#" + AtomicConversionRule.class.getName());
+
+
+  @Override
+  public TypeConversionDescriptorBase findConversion(PsiType from,
+                                                 PsiType to,
+                                                 PsiMember member,
+                                                 PsiExpression context,
+                                                 TypeMigrationLabeler labeler) {
+    if (to instanceof PsiClassType && isAtomicTypeMigration(from, (PsiClassType)to, context)) {
+      return findDirectConversion(context, to, from);
+    }
+    else if (from instanceof PsiClassType && isAtomicTypeMigration(to, (PsiClassType)from, context)) {
+      return findReverseConversion(context);
+    }
+    return null;
+  }
+
+  private static boolean isAtomicTypeMigration(PsiType from, PsiClassType to, PsiExpression context) {
+    if (from == PsiType.INT && to.getCanonicalText().equals(AtomicInteger.class.getName())) {
+      return true;
+    }
+    if (from.equals(PsiType.INT.createArrayType()) && to.getCanonicalText().equals(AtomicIntegerArray.class.getName())) {
+      return true;
+    }
+    if (from == PsiType.LONG && to.getCanonicalText().equals(AtomicLong.class.getName())) {
+      return true;
+    }
+    if (from.equals(PsiType.LONG.createArrayType()) && to.getCanonicalText().equals(AtomicLongArray.class.getName())) {
+      return true;
+    }
+    if (from == PsiType.BOOLEAN && to.getCanonicalText().equals(AtomicBoolean.class.getName())) {
+      return true;
+    }
+    final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(to);
+    final PsiClass atomicClass = resolveResult.getElement();
+
+    if (atomicClass != null) {
+      final String typeQualifiedName = atomicClass.getQualifiedName();
+      if (!Comparing.strEqual(typeQualifiedName, AtomicReference.class.getName()) &&
+          !Comparing.strEqual(typeQualifiedName, AtomicReferenceArray.class.getName())) {
+        return false;
+      }
+      final PsiTypeParameter[] typeParameters = atomicClass.getTypeParameters();
+      if (typeParameters.length != 1) return false;
+      final PsiType toTypeParameterValue = resolveResult.getSubstitutor().substitute(typeParameters[0]);
+      if (toTypeParameterValue != null) {
+        if (from.getDeepComponentType() instanceof PsiPrimitiveType) {
+          final PsiPrimitiveType unboxedInitialType = PsiPrimitiveType.getUnboxedType(toTypeParameterValue);
+          if (unboxedInitialType != null) {
+            return TypeConversionUtil.areTypesConvertible(from.getDeepComponentType(), unboxedInitialType);
+          }
+        }
+        else {
+          return TypeConversionUtil.isAssignable(from.getDeepComponentType(), PsiUtil.captureToplevelWildcards(toTypeParameterValue, context));
+        }
+      }
+    }
+    return false;
+  }
+
+  @Nullable
+  public static TypeConversionDescriptor findDirectConversion(PsiElement context, PsiType to, PsiType from) {
+    final PsiClass toTypeClass = PsiUtil.resolveClassInType(to);
+    LOG.assertTrue(toTypeClass != null);
+    final String qualifiedName = toTypeClass.getQualifiedName();
+    if (qualifiedName != null) {
+      if (qualifiedName.equals(AtomicInteger.class.getName()) || qualifiedName.equals(AtomicLong.class.getName())) {
+
+        if (context instanceof PsiPostfixExpression) {
+          final IElementType operationSign = ((PsiPostfixExpression)context).getOperationTokenType();
+          if (operationSign == JavaTokenType.MINUSMINUS) {
+            return new TypeConversionDescriptor("$qualifier$--", "$qualifier$.getAndDecrement()");
+          }
+          if (operationSign == JavaTokenType.PLUSPLUS) {
+            return new TypeConversionDescriptor("$qualifier$++", "$qualifier$.getAndIncrement()");
+          }
+
+        }
+        else if (context instanceof PsiPrefixExpression) {
+          final IElementType operationSign = ((PsiPrefixExpression)context).getOperationTokenType();
+          if (operationSign == JavaTokenType.MINUSMINUS) {
+            return new TypeConversionDescriptor("--$qualifier$", "$qualifier$.decrementAndGet()");
+          }
+          if (operationSign == JavaTokenType.PLUSPLUS) {
+            return new TypeConversionDescriptor("++$qualifier$", "$qualifier$.incrementAndGet()");
+          }
+
+        }
+        else if (context instanceof PsiAssignmentExpression) {
+          final PsiJavaToken signToken = ((PsiAssignmentExpression)context).getOperationSign();
+          final IElementType operationSign = signToken.getTokenType();
+          final String sign = signToken.getText();
+          if (operationSign == JavaTokenType.PLUSEQ || operationSign == JavaTokenType.MINUSEQ) {
+            return new TypeConversionDescriptor("$qualifier$ " + sign + " $val$", "$qualifier$.getAndAdd(" +
+                                                                                  (operationSign == JavaTokenType.MINUSEQ ? "-" : "") +
+                                                                                  "($val$))");
+          }
+        }
+      }
+      else if (qualifiedName.equals(AtomicIntegerArray.class.getName()) || qualifiedName.equals(AtomicLongArray.class.getName())) {
+        PsiElement parentExpression = context.getParent();
+        if (parentExpression instanceof PsiPostfixExpression) {
+          final IElementType operationSign = ((PsiPostfixExpression)parentExpression).getOperationTokenType();
+          if (operationSign == JavaTokenType.MINUSMINUS) {
+            return new TypeConversionDescriptor("$qualifier$[$idx$]--", "$qualifier$.getAndDecrement($idx$)",
+                                                (PsiExpression)parentExpression);
+          }
+          if (operationSign == JavaTokenType.PLUSPLUS) {
+            return new TypeConversionDescriptor("$qualifier$[$idx$]++", "$qualifier$.getAndIncrement($idx$)",
+                                                (PsiExpression)parentExpression);
+          }
+
+        }
+        else if (parentExpression instanceof PsiPrefixExpression) {
+          final IElementType operationSign = ((PsiPrefixExpression)parentExpression).getOperationTokenType();
+          if (operationSign == JavaTokenType.MINUSMINUS) {
+            return new TypeConversionDescriptor("--$qualifier$[$idx$]", "$qualifier$.decrementAndGet($idx$)",
+                                                (PsiExpression)parentExpression);
+          }
+          if (operationSign == JavaTokenType.PLUSPLUS) {
+            return new TypeConversionDescriptor("++$qualifier$[$idx$]", "$qualifier$.incrementAndGet($idx$)",
+                                                (PsiExpression)parentExpression);
+          }
+
+        }
+        else if (parentExpression instanceof PsiAssignmentExpression) {
+          final PsiJavaToken signToken = ((PsiAssignmentExpression)parentExpression).getOperationSign();
+          final IElementType operationSign = signToken.getTokenType();
+          final String sign = signToken.getText();
+          if (operationSign == JavaTokenType.PLUSEQ || operationSign == JavaTokenType.MINUSEQ) {
+            return new TypeConversionDescriptor("$qualifier$[$idx$] " + sign + " $val$", "$qualifier$.getAndAdd($idx$, " +
+                                                                                         (operationSign == JavaTokenType.MINUSEQ
+                                                                                          ? "-"
+                                                                                          : "") +
+                                                                                         "($val$))", (PsiExpression)parentExpression);
+          }
+        }
+      }
+    }
+    return from instanceof PsiArrayType
+           ? findDirectConversionForAtomicReferenceArray(context, to, from)
+           : findDirectConversionForAtomicReference(context, to, from);
+  }
+
+  @Nullable
+  private static TypeConversionDescriptor findDirectConversionForAtomicReference(PsiElement context, PsiType to, PsiType from) {
+    final PsiElement parent = context.getParent();
+    if (parent instanceof PsiAssignmentExpression) {
+      final IElementType operationSign = ((PsiAssignmentExpression)parent).getOperationTokenType();
+      if (operationSign == JavaTokenType.EQ) {
+        return new TypeConversionDescriptor("$qualifier$ = $val$", "$qualifier$.set($val$)", (PsiAssignmentExpression)parent);
+      }
+    }
+
+    if (context instanceof PsiReferenceExpression) {
+      final PsiExpression qualifierExpression = ((PsiReferenceExpression)context).getQualifierExpression();
+      final PsiExpression expression = context.getParent() instanceof PsiMethodCallExpression && qualifierExpression != null
+                                       ? qualifierExpression
+                                       : (PsiExpression)context;
+      return new TypeConversionDescriptor("$qualifier$", "$qualifier$.get()", expression);
+    }
+    else if (context instanceof PsiAssignmentExpression) {
+      final PsiJavaToken signToken = ((PsiAssignmentExpression)context).getOperationSign();
+      final IElementType operationSign = signToken.getTokenType();
+      final String sign = signToken.getText();
+      if (parent instanceof PsiExpressionStatement) {
+        if (operationSign == JavaTokenType.EQ) {
+          final PsiExpression lExpression = ((PsiAssignmentExpression)context).getLExpression();
+          if (lExpression instanceof PsiReferenceExpression) {
+            final PsiElement element = ((PsiReferenceExpression)lExpression).resolve();
+            if (element instanceof PsiVariable && ((PsiVariable)element).hasModifierProperty(PsiModifier.FINAL)) {
+              return wrapWithNewExpression(to, from, ((PsiAssignmentExpression)context).getRExpression(), element);
+            }
+          }
+          return new TypeConversionDescriptor("$qualifier$ = $val$", "$qualifier$.set($val$)");
+        }
+        else {
+          return new TypeConversionDescriptor("$qualifier$" + sign + "$val$", "$qualifier$.set(" +
+                                                                              getBoxedWrapper(from, to, "$qualifier$.get() " +
+                                                                                                        sign.charAt(0) +
+                                                                                                        " $val$") +
+                                                                              ")");
+        }
+      } //else should be a conflict
+    }
+    else if (context instanceof PsiPostfixExpression) {
+      final String sign = ((PsiPostfixExpression)context).getOperationSign().getText();
+      return new TypeConversionDescriptor("$qualifier$" + sign, "$qualifier$.getAndSet(" +
+                                                                getBoxedWrapper(from, to, "$qualifier$.get() " + sign.charAt(0) + " 1") +
+                                                                ")");
+    }
+    else if (context instanceof PsiPrefixExpression) {
+      final PsiJavaToken operationSign = ((PsiPrefixExpression)context).getOperationSign();
+      if (operationSign.getTokenType() == JavaTokenType.EXCL) {
+        return new TypeConversionDescriptor("!$qualifier$", "!$qualifier$.get()");
+      }
+      final String sign = operationSign.getText();
+      return new TypeConversionDescriptor(sign + "$qualifier$", "$qualifier$.set(" +  //todo reject?
+                                                                getBoxedWrapper(from, to, "$qualifier$.get() " + sign.charAt(0) + " 1") +
+                                                                ")");
+    } else if (context instanceof PsiBinaryExpression) {
+      final String sign = ((PsiBinaryExpression)context).getOperationSign().getText();
+      return new TypeConversionDescriptor("$qualifier$" + sign + "$val$", "$qualifier$.get() " + sign + " $val$");
+    }
+
+    if (parent instanceof PsiVariable) {
+      return wrapWithNewExpression(to, from, null, parent);
+    }
+    return null;
+  }
+
+  public static TypeConversionDescriptor wrapWithNewExpression(PsiType to, PsiType from, @Nullable PsiExpression expression, PsiElement context) {
+    final String typeText = PsiDiamondTypeUtil.getCollapsedType(to, context);
+    final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(to);
+    final PsiClass atomicClass = resolveResult.getElement();
+    LOG.assertTrue(atomicClass != null);
+    final PsiTypeParameter[] typeParameters = atomicClass.getTypeParameters();
+    if (typeParameters.length == 1) {
+      final PsiType initial = resolveResult.getSubstitutor().substitute(typeParameters[0]);
+      final PsiPrimitiveType unboxedInitialType = PsiPrimitiveType.getUnboxedType(initial);
+      if (unboxedInitialType != null) {
+        LOG.assertTrue(initial != null);
+        if (from instanceof PsiPrimitiveType) {
+          final PsiClassType boxedFromType = ((PsiPrimitiveType)from).getBoxedType(atomicClass);
+          LOG.assertTrue(boxedFromType != null);
+          if (!TypeConversionUtil.isAssignable(initial, boxedFromType)) {
+            return new TypeConversionDescriptor("$val$", "new " + typeText + "((" + unboxedInitialType.getCanonicalText() + ")$val$)", expression);
+          }
+        }
+      }
+    }
+    return new TypeConversionDescriptor("$val$", "new " + typeText + "($val$)", expression);
+  }
+
+  @Nullable
+  private static TypeConversionDescriptor findDirectConversionForAtomicReferenceArray(PsiElement context, PsiType to, PsiType from) {
+    LOG.assertTrue(from instanceof PsiArrayType);
+    from = ((PsiArrayType)from).getComponentType();
+    final PsiElement parent = context.getParent();
+    final PsiElement parentParent = parent.getParent();
+
+    if (parent instanceof PsiAssignmentExpression) {
+      final PsiAssignmentExpression assignmentExpression = (PsiAssignmentExpression)parent;
+      final IElementType operationSign = assignmentExpression.getOperationTokenType();
+      final String sign = assignmentExpression.getOperationSign().getText();
+      if (context instanceof PsiArrayAccessExpression) {
+        if (parentParent instanceof PsiExpressionStatement) {
+          if (assignmentExpression.getLExpression() == context) {
+            if (operationSign == JavaTokenType.EQ) {
+              return new TypeConversionDescriptor("$qualifier$[$idx$] = $val$", "$qualifier$.set($idx$, $val$)", assignmentExpression);
+            }
+            else {
+              return new TypeConversionDescriptor("$qualifier$[$idx$]" + sign + "$val$",
+                                                  "$qualifier$.set($idx$, " + getBoxedWrapper(from, to, "$qualifier$.get($idx$) " + sign.charAt(0) + " $val$") + ")",
+                                                  assignmentExpression);
+            }
+          }
+        } //else should be a conflict
+      }
+      else {
+        final PsiExpression rExpression = assignmentExpression.getRExpression();
+        if (rExpression == context && operationSign == JavaTokenType.EQ) {   //array = new T[l];
+          return wrapWithNewExpression(to, from, rExpression, context);
+        }
+      }
+    } else if (parent instanceof PsiVariable) {
+      if (((PsiVariable)parent).getInitializer() == context) {
+        return wrapWithNewExpression(to, from, (PsiExpression)context, context);
+      }
+    }
+
+    if (parentParent instanceof PsiExpressionStatement) {
+      if (parent instanceof PsiPostfixExpression) {
+        final String sign = ((PsiPostfixExpression)parent).getOperationSign().getText();
+        return new TypeConversionDescriptor("$qualifier$[$idx$]" + sign, "$qualifier$.getAndSet($idx$, " +
+                                                                         getBoxedWrapper(from, to,
+                                                                                         "$qualifier$.get($idx$) " + sign.charAt(0) + " 1") +
+                                                                         ")", (PsiExpression)parent);
+      }
+      else if (parent instanceof PsiPrefixExpression) {
+        final String sign = ((PsiPrefixExpression)parent).getOperationSign().getText();
+        return new TypeConversionDescriptor(sign + "$qualifier$[$idx$]", "$qualifier$.set($idx$, " +
+                                                                         getBoxedWrapper(from, to,
+                                                                                         "$qualifier$.get($idx$) " + sign.charAt(0) + " 1") +
+                                                                         ")", (PsiExpression)parent);
+      }
+      else if (parent instanceof PsiBinaryExpression) {
+        final String sign = ((PsiBinaryExpression)parent).getOperationSign().getText();
+        return new TypeConversionDescriptor("$qualifier$[$idx$]" + sign + "$val$", "$qualifier$.set($idx$, " +
+                                                                                   getBoxedWrapper(from, to, "$qualifier$.get($idx$) " +
+                                                                                                             sign +
+                                                                                                             " $val$)") +
+                                                                                   ")", (PsiExpression)parent);
+      }
+    }
+
+    if (context instanceof PsiArrayAccessExpression) {
+      return new TypeConversionDescriptor("$qualifier$[$idx$]", "$qualifier$.get($idx$)", (PsiExpression)context);
+    }
+    return null;
+  }
+
+  private static String getBoxedWrapper(final PsiType from, final PsiType to, @NotNull String arg) {
+    final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(to);
+    final PsiClass atomicClass = resolveResult.getElement();
+    LOG.assertTrue(atomicClass != null);
+    final PsiTypeParameter[] typeParameters = atomicClass.getTypeParameters();
+    if (typeParameters.length == 1) {
+      final PsiSubstitutor substitutor = resolveResult.getSubstitutor();
+      LOG.assertTrue(substitutor.isValid());
+      final PsiType initial = substitutor.substitute(typeParameters[0]);
+      final PsiPrimitiveType unboxedInitialType = PsiPrimitiveType.getUnboxedType(initial);
+      if (unboxedInitialType != null) {
+        LOG.assertTrue(initial != null);
+        if (from instanceof PsiPrimitiveType) {
+          final PsiClassType boxedFromType = ((PsiPrimitiveType)from).getBoxedType(atomicClass);
+          LOG.assertTrue(boxedFromType != null);
+          return "new " + initial.getPresentableText() + "((" + unboxedInitialType.getCanonicalText() + ")(" + arg + "))";
+        }
+      }
+    }
+    return arg;
+  }
+
+  @Nullable
+  private static TypeConversionDescriptor findReverseConversion(PsiElement context) {
+    if (context instanceof PsiReferenceExpression) {
+      if (context.getParent() instanceof PsiMethodCallExpression) {
+        return findReverseConversionForMethodCall(context);
+      }
+    }
+    else if (context instanceof PsiNewExpression) {
+      return new TypeConversionDescriptor("new $type$($qualifier$)", "$qualifier$");
+    }
+    else if (context instanceof PsiMethodCallExpression) {
+      return findReverseConversionForMethodCall(((PsiMethodCallExpression)context).getMethodExpression());
+    }
+    return null;
+  }
+
+  @Nullable
+  private static TypeConversionDescriptor findReverseConversionForMethodCall(PsiElement context) {
+    final PsiElement resolved = ((PsiReferenceExpression)context).resolve();
+    if (resolved instanceof PsiMethod) {
+      final PsiMethod method = (PsiMethod)resolved;
+      final int parametersCount = method.getParameterList().getParametersCount();
+      final String resolvedName = method.getName();
+      if (Comparing.strEqual(resolvedName, "get")) {
+        return parametersCount == 0 ?
+               new TypeConversionDescriptor("$qualifier$.get()", "$qualifier$") :
+               new TypeConversionDescriptor("$qualifier$.get($idx$)", "$qualifier$[$idx$]");
+      }
+      else if (Comparing.strEqual(resolvedName, "set")) {
+        return parametersCount == 1 ?
+               new TypeConversionDescriptor("$qualifier$.set($val$)", "$qualifier$ = $val$") :
+               new TypeConversionDescriptor("$qualifier$.set($idx$, $val$)", "$qualifier$[$idx$] = $val$");
+      }
+      else if (Comparing.strEqual(resolvedName, "addAndGet")) {
+        return parametersCount == 1 ?
+               new TypeConversionDescriptor("$qualifier$.addAndGet($delta$)", "$qualifier$ + $delta$") :
+               new TypeConversionDescriptor("$qualifier$.addAndGet($idx$, $delta$)", "$qualifier$[$idx$] + $delta$");
+      }
+      else if (Comparing.strEqual(resolvedName, "incrementAndGet")) {
+        return parametersCount == 0 ?
+               new TypeConversionDescriptor("$qualifier$.incrementAndGet()", "++$qualifier$") :
+               new TypeConversionDescriptor("$qualifier$.incrementAndGet($idx$)", "++$qualifier$[$idx$]");
+      }
+      else if (Comparing.strEqual(resolvedName, "decrementAndGet")) {
+        return parametersCount == 0 ?
+               new TypeConversionDescriptor("$qualifier$.decrementAndGet()", "--$qualifier$") :
+               new TypeConversionDescriptor("$qualifier$.decrementAndGet($idx$)", "--$qualifier$[$idx$]");
+      }
+      else if (Comparing.strEqual(resolvedName, "getAndIncrement")) {
+        return parametersCount == 0 ?
+               new TypeConversionDescriptor("$qualifier$.getAndIncrement()", "$qualifier$++") :
+               new TypeConversionDescriptor("$qualifier$.getAndIncrement($idx$)", "$qualifier$[$idx$]++");
+      }
+      else if (Comparing.strEqual(resolvedName, "getAndDecrement")) {
+        return parametersCount == 0 ?
+               new TypeConversionDescriptor("$qualifier$.getAndDecrement()", "$qualifier$--") :
+               new TypeConversionDescriptor("$qualifier$.getAndDecrement($idx$)", "$qualifier$[$idx$]--");
+      }
+      else if (Comparing.strEqual(resolvedName, "getAndAdd")) {
+        return parametersCount == 1?
+               new TypeConversionDescriptor("$qualifier$.getAndAdd($val$)", "$qualifier$ += $val$") :
+               new TypeConversionDescriptor("$qualifier$.getAndAdd($idx$, $val$)", "$qualifier$[$idx$] += $val$");
+      }
+      else if (Comparing.strEqual(resolvedName, "getAndSet")) {
+        return parametersCount == 1 ?
+               new TypeConversionDescriptor("$qualifier$.getAndSet($val$)", "$qualifier$ = $val$") :
+               new TypeConversionDescriptor("$qualifier$.getAndSet($idx$, $val$)", "$qualifier$[$idx$] = $val$");
+      }
+    }
+    return null;
+  }
+
+}
diff --git a/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java b/plugins/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java
new file mode 100644 (file)
index 0000000..4353bf6
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * User: anna
+ * Date: 08-Aug-2008
+ */
+package com.intellij.refactoring.typeMigration.rules;
+
+import com.intellij.openapi.util.Comparing;
+import com.intellij.psi.*;
+import com.intellij.psi.util.PsiUtil;
+import com.intellij.refactoring.typeMigration.TypeConversionDescriptor;
+import com.intellij.refactoring.typeMigration.TypeConversionDescriptorBase;
+import com.intellij.refactoring.typeMigration.TypeMigrationLabeler;