├── .gitattributes ├── testData ├── bulk │ ├── pkg │ │ ├── res │ │ │ └── resource.txt │ │ └── Main.java │ └── META-INF │ │ └── MANIFEST.MF ├── results │ ├── TestUnsupportedConstantPoolEntry.dec │ ├── package-info.dec │ ├── EnumWithOverride.dec │ ├── InterfaceNonSealed.dec │ ├── TestHideConstructorRecordSimple.dec │ ├── TestHideConstructorRecordVararg.dec │ ├── ClassNonSealed.dec │ ├── RootWithClassInner.dec │ ├── RootWithClassOuter.dec │ ├── RootWithModule.dec │ ├── RootWithInterfaceOuter.dec │ ├── TestVarType.dec │ ├── ClassNonSealedExtendsImplements.dec │ ├── TestSuperInner.dec │ ├── InterfaceSuperTypeAnnotations.dec │ ├── RootWithInterfaceInner.dec │ ├── ClassSuperTypeAnnotations.dec │ ├── TestHideConstructorRecordAnnoComponentType.dec │ ├── TestHideConstructorRecordAnnoParameterAndType.dec │ ├── TestInterfaceFields.dec │ ├── TestShadowing.dec │ ├── RootWithInterfaceInnerAndOuter.dec │ ├── ArrayNestedTypeAnnotations.dec │ ├── TestRecordEmpty.dec │ ├── TestParameterizedTypes.dec │ ├── TestJava9PrivateInterfaceMethod.dec │ ├── NestedTypeAnnotations.dec │ ├── TestConstructorReference.dec │ ├── TestHideConstructorRecordEmpty.dec │ ├── TestGroovyTrait.dec │ ├── TestMethodReferenceLetterClass.dec │ ├── TestInterfaceMethods.dec │ ├── GenericNestedTypeAnnotations.dec │ ├── module-info.dec │ ├── TestAnnotationExtendObjectClass.dec │ ├── TestHideConstructorRecordAnnoGetter.dec │ ├── GenericArrayNestedTypeAnnotations.dec │ ├── TestAnonymousParamNames.dec │ ├── TestHelloWorld.dec │ ├── TestStaticNameClash.dec │ ├── TestHideConstructorRecordAnnoGetterType.dec │ ├── TestHideConstructorRecordDifferentTypes.dec │ ├── TestHideConstructorRecordAnnoConstructor.dec │ ├── TestInheritanceChainCycle.dec │ ├── TestDynamicConstantPoolEntry.dec │ ├── TestExtendsList.dec │ ├── TestHideConstructorRecordAnnoParameterType.dec │ ├── TestUnionType.dec │ ├── TestLocalsSignature.dec │ ├── TestPrivateEmptyConstructor.dec │ ├── TestAsserts.dec │ └── TestInterfaceSuper.dec ├── obfuscated │ ├── ad.java │ ├── af.java │ ├── ay.java │ ├── f.java │ ├── q.java │ ├── am.java │ ├── g.java │ ├── ac.java │ ├── u.java │ ├── a6.java │ ├── c.java │ ├── k.java │ ├── ak.java │ ├── a_.java │ ├── w.java │ ├── aa.java │ ├── x.java │ ├── i.java │ ├── a9.java │ ├── y.java │ ├── l.java │ ├── m.java │ ├── z.java │ ├── ar.java │ ├── au.java │ ├── av.java │ ├── ao.java │ ├── a0.java │ └── a.java ├── src │ ├── pkg │ │ ├── KotlinDefaultValue.kt │ │ ├── package-info.java │ │ ├── TestSuspendLambda.kt │ │ ├── Shadow.java │ │ ├── TestGroovyTrait.groovy │ │ ├── TestSuperInner.java │ │ ├── TestSuperInnerBase.java │ │ ├── TestInterfaceMethods.java │ │ ├── TestIllegalVarName.kt │ │ ├── TestNotNullRecord.java │ │ ├── TestHelloWorld.java │ │ ├── TestSynchronizedUnprotected.kt │ │ ├── TestInterfaceFields.java │ │ ├── TestKotlinConstructor.kt │ │ ├── TestEnumLowLevel.java │ │ ├── PreserveAssignmentToRecord.java │ │ ├── TestPrivateEmptyConstructor.java │ │ ├── TestUnionType.java │ │ ├── TestStaticNameClash.java │ │ ├── TestAnnotationExtendObjectClass.java │ │ ├── TestInterfaceSuper.java │ │ ├── TestNamedSuspendFun2.kt │ │ ├── TestExtendingSubclass.java │ │ ├── TestInUse.java │ │ ├── TestGroovyClass.groovy │ │ ├── TestShadowing.java │ │ ├── TestJADNaming.java │ │ ├── TestSynchronizedMapping.java │ │ ├── TryToPreserveCast.java │ │ ├── TestMemberAnnotations.java │ │ ├── TestIntVarMerge.java │ │ ├── TestWithoutDebugName.java │ │ ├── TestAbstractMethods.java │ │ ├── TestThrowException.java │ │ ├── TestNestedCalls.java │ │ ├── TestGenericArgs.java │ │ ├── TestClassFields.java │ │ ├── TestLocalClass.java │ │ ├── TestAmbiguousCall.java │ │ ├── TestNestedInheritor.java │ │ ├── TestInnerClassConstructor.java │ │ ├── TestPrimitiveNarrowing.java │ │ ├── TestDebugSymbols.java │ │ ├── TypeAnnotations.java │ │ ├── TestInner2.java │ │ ├── TestLambda.java │ │ ├── TestEnumInit.java │ │ ├── TestFinally.java │ │ ├── TestSwitchWrapReturnJavac.java │ │ ├── TestCustomSyntheticRecords.java │ │ ├── TestAnnotationExtendWildcard.java │ │ └── TestSyntheticAccess.java │ ├── java9 │ │ ├── sample.module │ │ │ ├── TestClass.java │ │ │ ├── TestService.java │ │ │ ├── TestServiceImpl.java │ │ │ ├── TestModuleAnno.java │ │ │ └── module-info.java │ │ └── TestJava9PrivateInterfaceMethod.java │ ├── typeAnnotations │ │ ├── K.java │ │ ├── Bar.java │ │ ├── Foo.java │ │ ├── BarGeneric.java │ │ ├── ParentInterface.java │ │ ├── V.java │ │ ├── SomeFunInterface.java │ │ ├── P.java │ │ ├── S.java │ │ ├── Z.java │ │ ├── InterfaceSuperTypeAnnotations.java │ │ ├── A.java │ │ ├── B.java │ │ ├── C.java │ │ ├── ClassSuperTypeAnnotations.java │ │ ├── D.java │ │ ├── E.java │ │ ├── F.java │ │ ├── L.java │ │ ├── T.java │ │ ├── ArrayNestedTypeAnnotations.java │ │ ├── NestedTypeAnnotations.java │ │ ├── GenericNestedTypeAnnotations.java │ │ ├── GenericArrayNestedTypeAnnotations.java │ │ ├── ArrayTypeAnnotations.java │ │ └── NestedTypeAnnotationsParameters.java │ ├── records │ │ ├── TestRecordSimple.java │ │ ├── TestRecordVararg.java │ │ ├── TestHideConstructorRecordSimple.java │ │ ├── TestHideConstructorRecordVararg.java │ │ ├── TestRecordEmpty.java │ │ ├── TestHideConstructorRecordEmpty.java │ │ ├── TestRecordGenericVararg.java │ │ ├── TestHideConstructorRecordDifferentTypes.java │ │ ├── TestHideConstructorRecordAnnoComponentType.java │ │ ├── TestHideConstructorRecordAnnoGetter.java │ │ ├── TestHideConstructorRecordAnnoParameterAndType.java │ │ ├── TestRecordAnno.java │ │ ├── TestHideConstructorRecordAnno.java │ │ ├── TestHideConstructorRecordAnnoConstructor.java │ │ ├── TestHideConstructorRecordAnnoGetterType.java │ │ └── TestHideConstructorRecordAnnoParameterType.java │ ├── sealed │ │ ├── EnumWithOverride.java │ │ ├── ClassExtends.java │ │ ├── ClassImplements.java │ │ ├── InterfaceNonSealed.java │ │ ├── ClassNonSealed.java │ │ ├── RootWithClassInner.java │ │ ├── bar │ │ │ └── BarClassExtends.java │ │ ├── RootWithClassOuter.java │ │ ├── RootWithInterfaceInner.java │ │ ├── foo │ │ │ └── RootWithModule.java │ │ ├── ClassNonSealedExtendsImplements.java │ │ ├── RootWithInterfaceOuter.java │ │ └── RootWithInterfaceInnerAndOuter.java │ ├── ext │ │ ├── TestClashNameIface.java │ │ ├── TestClashNameParent.java │ │ ├── Shadow.java │ │ └── PkgAnno.java │ ├── patterns │ │ └── TestInstanceofPatternNotSupported.java │ └── java11 │ │ └── TestJava11StringConcatSpecialChars.java ├── bulk.jar ├── kt25937.jar ├── obfuscated.jar ├── classes │ ├── pkg │ │ ├── R.class │ │ ├── Shadow.class │ │ ├── TestEnum.class │ │ ├── TestInUse.class │ │ ├── TestLVT.class │ │ ├── TestPPMM.class │ │ ├── NestedType.class │ │ ├── SharedName1.class │ │ ├── SharedName2.class │ │ ├── SharedName3.class │ │ ├── SharedName4.class │ │ ├── SharedName5.class │ │ ├── TestAsserts.class │ │ ├── TestEnum$1.class │ │ ├── TestEnum$2.class │ │ ├── TestFinally.class │ │ ├── TestInner2.class │ │ ├── TestLambda.class │ │ ├── TestVarType.class │ │ ├── NestedType$Foo.class │ │ ├── NonSharedName.class │ │ ├── PrivateClasses.class │ │ ├── SwitchOnStatic.class │ │ ├── TestClashName.class │ │ ├── TestClassCast.class │ │ ├── TestClassLoop.class │ │ ├── TestClassTypes.class │ │ ├── TestClassVar.class │ │ ├── TestConstType.class │ │ ├── TestConstants.class │ │ ├── TestEnum$Type.class │ │ ├── TestEnumInit.class │ │ ├── TestFinally$A.class │ │ ├── TestGenerics.class │ │ ├── TestHelloWorld.class │ │ ├── TestInner2$1.class │ │ ├── TestInnerLocal.class │ │ ├── TestJADNaming.class │ │ ├── TestLVTComplex.class │ │ ├── TestLVTScoping.class │ │ ├── TestLocalClass.class │ │ ├── TestPrimitives.class │ │ ├── TestShadowing.class │ │ ├── TestSuperInner.class │ │ ├── TestUnionType.class │ │ ├── package-info.class │ │ ├── MoreAnnotations.class │ │ ├── PrivateClasses$1.class │ │ ├── PrivateClasses$2.class │ │ ├── PrivateClasses$3.class │ │ ├── PrivateClasses$4.class │ │ ├── PrivateClasses$5.class │ │ ├── PrivateClasses$6.class │ │ ├── TestClassFields.class │ │ ├── TestClassLambda.class │ │ ├── TestClassSwitch.class │ │ ├── TestDebugSymbols.class │ │ ├── TestDeprecations.class │ │ ├── TestEmptyBlocks.class │ │ ├── TestEnumLowLevel.class │ │ ├── TestExtendsList.class │ │ ├── TestGenericArgs.class │ │ ├── TestGroovyClass.class │ │ ├── TestGroovyTrait.class │ │ ├── TestInitGeneric.class │ │ ├── TestIntVarMerge.class │ │ ├── TestLambdaParams.class │ │ ├── TestLocalsNames.class │ │ ├── TestLoopMerging.class │ │ ├── TestNestedCalls.class │ │ ├── TestStringConcat.class │ │ ├── TestSwitchOnEnum.class │ │ ├── TestSwitchRules.class │ │ ├── TestVarArgCalls.class │ │ ├── TypeAnnotations.class │ │ ├── KotlinDefaultValue.class │ │ ├── NestedType$Foo$Bar.class │ │ ├── NestedType$FooBar.class │ │ ├── PrivateClasses$1$1.class │ │ ├── PrivateClasses$1$2.class │ │ ├── PrivateClasses$2$1.class │ │ ├── PrivateClasses$2$2.class │ │ ├── TestAbstractMethods.class │ │ ├── TestAccessReplace.class │ │ ├── TestAmbiguousCall.class │ │ ├── TestAnonymousClass.class │ │ ├── TestAnonymousParams.class │ │ ├── TestClashNameIface.class │ │ ├── TestClashNameParent.class │ │ ├── TestCodeConstructs.class │ │ ├── TestConstantsAsIs$A.class │ │ ├── TestConstantsAsIs.class │ │ ├── TestGenerics$Maps.class │ │ ├── TestIllegalVarName.class │ │ ├── TestInitGeneric$A.class │ │ ├── TestInitGeneric$B.class │ │ ├── TestInitGeneric$C.class │ │ ├── TestInner2$Another.class │ │ ├── TestInner2$Another2.class │ │ ├── TestInnerSignature.class │ │ ├── TestInterfaceFields.class │ │ ├── TestInterfaceSuper.class │ │ ├── TestLVTComplex$Bob.class │ │ ├── TestLocalsSignature.class │ │ ├── TestNestedInheritor.class │ │ ├── TestNotNullRecord.class │ │ ├── TestPop2OneLongPop2.class │ │ ├── TestPop2TwoIntPop2.class │ │ ├── TestStaticNameClash.class │ │ ├── TestStringLiterals.class │ │ ├── TestSuperInnerBase.class │ │ ├── TestSuspendLambdaKt.class │ │ ├── TestSwitchOnEnum$1.class │ │ ├── TestSyntheticAccess.class │ │ ├── TestThrowException.class │ │ ├── TestTryCatchFinally.class │ │ ├── TryToPreserveCast.class │ │ ├── TypeAnnotations$TA.class │ │ ├── NestedType$FooBar$Bar.class │ │ ├── TestAnonymousClass$1.class │ │ ├── TestAnonymousClass$2.class │ │ ├── TestAnonymousClass$3.class │ │ ├── TestAnonymousClass$4.class │ │ ├── TestAnonymousClass$5.class │ │ ├── TestAnonymousClass$6.class │ │ ├── TestAnonymousClass$7.class │ │ ├── TestAnonymousClass$8.class │ │ ├── TestAnonymousClass$I.class │ │ ├── TestAnonymousParams$1.class │ │ ├── TestClassFields$Inner.class │ │ ├── TestEnhancedForLoops.class │ │ ├── TestEnumInit$TestEnum.class │ │ ├── TestExtendingSubclass.class │ │ ├── TestFieldSingleAccess.class │ │ ├── TestGroovyClass$Inner.class │ │ ├── TestIffSimplification.class │ │ ├── TestInnerLocal$1Inner.class │ │ ├── TestInnerLocal$2Inner.class │ │ ├── TestInnerLocal$Inner1.class │ │ ├── TestInterfaceMethods.class │ │ ├── TestLocalClass$1Local.class │ │ ├── TestMemberAnnotations.class │ │ ├── TestMethodParameters.class │ │ ├── TestPop2OneDoublePop2.class │ │ ├── TestPop2TwoIntTwoPop.class │ │ ├── TestSuperInner$Inner2.class │ │ ├── TestSwitchGuardedEcj.class │ │ ├── TestSwitchWrapReturn.class │ │ ├── TestThrowException$1.class │ │ ├── TestTryWithResources.class │ │ ├── TestWithoutDebugName.class │ │ ├── TypeAnnotations$MixA.class │ │ ├── MoreAnnotations$TestEnum.class │ │ ├── PrivateClasses$Callable.class │ │ ├── TestAccessReplace$Inner.class │ │ ├── TestAnonymousClass$Inner.class │ │ ├── TestAnonymousParamNames.class │ │ ├── TestAnonymousSignature$1.class │ │ ├── TestAnonymousSignature$2.class │ │ ├── TestAnonymousSignature.class │ │ ├── TestCompoundAssignment.class │ │ ├── TestConstructorReference.class │ │ ├── TestDeprecations$ByAnno.class │ │ ├── TestEnumInit$TestEnum1.class │ │ ├── TestEnumInit$TestEnum2.class │ │ ├── TestGroovyClass$Nested.class │ │ ├── TestInner2$AnotherStatic.class │ │ ├── TestInnerSignature$Inner.class │ │ ├── TestInterfaceSuper$Impl.class │ │ ├── TestKotlinConstructorKt.class │ │ ├── TestLineNumbersMatch$1.class │ │ ├── TestMemberAnnotations$A.class │ │ ├── TestMethodParameters$C1.class │ │ ├── TestMethodParameters$C2.class │ │ ├── TestMethodParametersAttr.class │ │ ├── TestNamedSuspendFun2Kt.class │ │ ├── TestParameterizedTypes.class │ │ ├── TestPrimitiveNarrowing.class │ │ ├── TestShadowingSuperClass.class │ │ ├── TestSuperInnerBase$Inner.class │ │ ├── TestSwitchGuarded2Javac.class │ │ ├── TestSwitchGuardedJavac.class │ │ ├── TestSwitchOnEnum$Example.class │ │ ├── TestSwitchOnEnumEclipse.class │ │ ├── TestSwitchOnStringsEcj.class │ │ ├── TestSwitchOnStringsJavac.class │ │ ├── TestSynchronizedMapping.class │ │ ├── PreserveAssignmentToRecord.class │ │ ├── TestAnonymousClass$Inner$1.class │ │ ├── TestAnonymousParamNames$1.class │ │ ├── TestClassNestedInitializer.class │ │ ├── TestCustomSyntheticRecords.class │ │ ├── TestDeprecations$ByComment.class │ │ ├── TestGroovyClass$_closure1.class │ │ ├── TestGroovyClass$_closure2.class │ │ ├── TestInheritanceChainCycle.class │ │ ├── TestInner2$AnotherStatic2.class │ │ ├── TestInnerClassConstructor.class │ │ ├── TestNestedInheritor$Child.class │ │ ├── TestNestedInheritor$Parent.class │ │ ├── TestSuspendLambdaKt$sl1$1.class │ │ ├── TestSwitchOnEnum$Example$A.class │ │ ├── TestSwitchOnEnum$Example$B.class │ │ ├── TestSwitchWrapReturnJavac.class │ │ ├── TestTryCatchFinallyJsrRet.class │ │ ├── PreserveAssignmentToRecord2.class │ │ ├── TestAnnotationExtendWildcard.class │ │ ├── TestAnonymousClassConstructor.class │ │ ├── TestAnonymousParamNames$Clazz.class │ │ ├── TestClassNestedInitializer$1.class │ │ ├── TestGroovyTrait$Trait$Helper.class │ │ ├── TestInnerClassConstructor$1.class │ │ ├── TestInnerLocal$Inner1Static.class │ │ ├── TestInvertedFloatComparison.class │ │ ├── TestMethodParameters$1Local.class │ │ ├── TestMethodParametersAttr$C1.class │ │ ├── TestMethodParametersAttr$C2.class │ │ ├── TestMethodParametersAttr$C3.class │ │ ├── TestMethodParametersAttr$C4.class │ │ ├── TestMethodParametersAttr$E1.class │ │ ├── TestMethodParametersAttr$I1.class │ │ ├── TestMethodReferenceSameName.class │ │ ├── TestMissingConstructorCallBad.class │ │ ├── TestNamedSuspendFun2Kt$foo2$1.class │ │ ├── TestParameterizedTypes$Inner.class │ │ ├── TestPrivateEmptyConstructor.class │ │ ├── TestSwitchClassReferencesEcj.class │ │ ├── TestSwitchWrapReturnJavac$S$A.class │ │ ├── TestSwitchWrapReturnJavac$S$B.class │ │ ├── TestSwitchWrapReturnJavac$S$C.class │ │ ├── TestSwitchWrapReturnJavac$S.class │ │ ├── TestSynchronizedUnprotected.class │ │ ├── TestSyntheticAccess$Assigner.class │ │ ├── TestTryCatchFinallyMismatched.class │ │ ├── TestAmbiguousCallWithDebugInfo.class │ │ ├── TestAnnotationExtendObjectClass.class │ │ ├── TestAnonymousClassConstructor$1.class │ │ ├── TestAnonymousClassConstructor$2.class │ │ ├── TestAnonymousClassConstructor$3.class │ │ ├── TestAnonymousClassConstructor$4.class │ │ ├── TestAnonymousClassConstructor$5.class │ │ ├── TestAnonymousClassConstructor$6.class │ │ ├── TestAnonymousClassConstructor$7.class │ │ ├── TestAnonymousClassConstructor$8.class │ │ ├── TestAnonymousClassConstructor$9.class │ │ ├── TestClassSimpleBytecodeMapping.class │ │ ├── TestExtendingSubclass$Subclass1.class │ │ ├── TestExtendingSubclass$Subclass2.class │ │ ├── TestInnerClassConstructor$Inner.class │ │ ├── TestInnerSignature$InnerStatic.class │ │ ├── TestMethodParametersAttr$1Local.class │ │ ├── TestMethodReferenceLetterClass.class │ │ ├── TestMethodReferenceSameName$R1.class │ │ ├── TestMissingConstructorCallGood.class │ │ ├── TestSwitchClassReferencesJavac.class │ │ ├── TestSwitchOnEnumEclipse$Example.class │ │ ├── TestSwitchSimpleReferencesJavac.class │ │ ├── TestSyntheticAccess$Incrementer.class │ │ ├── MoreAnnotations$NestedAnnotation.class │ │ ├── PrivateClasses$1$1CapturingLocalR1.class │ │ ├── PrivateClasses$1CapturingLocalM1.class │ │ ├── PrivateClasses$1CapturingLocalM2.class │ │ ├── PrivateClasses$2$1CapturingLocalR1.class │ │ ├── TestAnonymousClass$InnerRecursive.class │ │ ├── TestAnonymousClassConstructor$10.class │ │ ├── TestAnonymousClassConstructor$11.class │ │ ├── TestAnonymousClassConstructor$12.class │ │ ├── TestClassSimpleBytecodeMapping$1.class │ │ ├── TestEnumLowLevel$ExampleNestedEnum.class │ │ ├── TestGroovyTrait$Trait$FieldHelper.class │ │ ├── TestInnerClassConstructor$Another.class │ │ ├── TestShadowingSuperClass$Calendar.class │ │ ├── TestSwitchOnEnumEclipse$Example$A.class │ │ ├── TestSwitchOnEnumEclipse$Example$B.class │ │ ├── PrivateClasses$1NonCapturingLocalM1.class │ │ ├── PrivateClasses$1NonCapturingLocalM2.class │ │ ├── TestSwitchClassReferencesFastExitEcj.class │ │ ├── TestSwitchNestedDeconstructionsJavac.class │ │ ├── PrivateClasses$1$1NonCapturingLocalR1.class │ │ ├── PrivateClasses$2$1NonCapturingLocalR2.class │ │ ├── TestAnnotationExtendObjectStaticMethods.class │ │ ├── TestComplexInstanceOfRecordPatternJavac.class │ │ ├── TestCustomSyntheticRecords$CustomGetter.class │ │ ├── TestNestedInheritor$Child$NestedChild.class │ │ ├── TestNestedInheritor$Parent$NestedParent.class │ │ ├── TestSimpleInstanceOfRecordPatternJavac.class │ │ ├── TestSwitchClassReferencesFastExitJavac.class │ │ ├── TestSwitchNestedDeconstructionsJavac$R1.class │ │ ├── TestSwitchNestedDeconstructionsJavac$R2.class │ │ ├── TestSwitchSimpleReferencesJavac$Numbers.class │ │ ├── TestAnonymousClassConstructor$InnerPublic.class │ │ ├── TestClassSimpleBytecodeMapping$InnerClass.class │ │ ├── TestComplexInstanceOfRecordPatternJavac$R.class │ │ ├── TestInnerLocal$Inner1Static$Inner2Static.class │ │ ├── TestShadowingSuperClass$Calendar$Builder.class │ │ ├── TestSimpleInstanceOfRecordPatternJavac$R.class │ │ ├── TestAnnotationsForParametersWithNestedClass.class │ │ ├── TestAnonymousClassConstructor$InnerPrivate.class │ │ ├── TestClassSimpleBytecodeMapping$InnerClass2.class │ │ ├── TestComplexInstanceOfRecordPatternJavac$R2.class │ │ ├── TestAnonymousClassConstructor$InnerPrivateString.class │ │ ├── TestAnonymousClassConstructor$InnerPublicString.class │ │ ├── TestAnonymousClassConstructor$InnerStaticPrivate.class │ │ ├── TestAnonymousClassConstructor$InnerStaticPublic.class │ │ ├── TestCustomSyntheticRecords$CustomFullConstructor.class │ │ ├── TestSwitchWithDeconstructionsWithoutNestedJavac.class │ │ ├── TestCustomSyntheticRecords$CustomCompactConstructor.class │ │ ├── TestSwitchWithDeconstructionsWithoutNestedJavac$R1.class │ │ ├── TestAnonymousClassConstructor$InnerStaticPrivateString.class │ │ ├── TestAnonymousClassConstructor$InnerStaticPublicString.class │ │ └── TestAnnotationsForParametersWithNestedClass$RunCallback.class │ ├── ext │ │ ├── Shadow.class │ │ ├── Shadow$B.class │ │ ├── TestClashNameIface.class │ │ └── TestClashNameParent.class │ ├── java │ │ └── lang │ │ │ ├── Integer.class │ │ │ └── Integer$IntegerCache.class │ ├── java9 │ │ ├── module-info.class │ │ ├── TestJava9StringConcat.class │ │ └── TestJava9PrivateInterfaceMethod.class │ ├── typeAnnotations │ │ ├── A.class │ │ ├── B.class │ │ ├── C.class │ │ ├── D.class │ │ ├── E.class │ │ ├── F.class │ │ ├── K.class │ │ ├── L.class │ │ ├── P.class │ │ ├── S.class │ │ ├── T.class │ │ ├── V.class │ │ ├── Z.class │ │ ├── Bar.class │ │ ├── Foo.class │ │ ├── P$Q.class │ │ ├── S$T.class │ │ ├── T$Y.class │ │ ├── V$U.class │ │ ├── Z$Y.class │ │ ├── P$Q$R.class │ │ ├── S$T$U.class │ │ ├── T$Y$U$I.class │ │ ├── T$Y$U.class │ │ ├── V$U$T.class │ │ ├── Z$Y$X$W.class │ │ ├── Z$Y$X.class │ │ ├── T$Y$U$I$O.class │ │ ├── BarGeneric.class │ │ ├── ParentInterface.class │ │ ├── SomeFunInterface.class │ │ ├── ArrayTypeAnnotations.class │ │ ├── GenericTypeAnnotations.class │ │ ├── NestedTypeAnnotations.class │ │ ├── ArrayNestedTypeAnnotations.class │ │ ├── ClassSuperTypeAnnotations.class │ │ ├── GenericArrayTypeAnnotations.class │ │ ├── GenericNestedTypeAnnotations.class │ │ ├── InterfaceSuperTypeAnnotations.class │ │ ├── MemberDeclarationTypeAnnotations.class │ │ ├── NestedTypeAnnotationsParameters.class │ │ └── GenericArrayNestedTypeAnnotations.class │ ├── sealed │ │ ├── ClassExtends.class │ │ ├── ClassImplements.class │ │ ├── ClassNonSealed.class │ │ ├── EnumWithOverride.class │ │ ├── EnumWithOverride$1.class │ │ ├── InterfaceNonSealed.class │ │ ├── RootWithClassInner.class │ │ ├── RootWithClassOuter.class │ │ ├── foo │ │ │ └── RootWithModule.class │ │ ├── bar │ │ │ └── BarClassExtends.class │ │ ├── RootWithInterfaceInner.class │ │ ├── RootWithInterfaceOuter.class │ │ ├── RootWithClassInner$Inner.class │ │ ├── RootWithInterfaceInner$Inner.class │ │ ├── ClassNonSealedExtendsImplements.class │ │ ├── RootWithInterfaceInnerAndOuter.class │ │ └── RootWithInterfaceInnerAndOuter$Inner.class │ ├── InvalidMethodSignature.class │ ├── records │ │ ├── TestRecordAnno.class │ │ ├── TestRecordEmpty.class │ │ ├── TestRecordSimple.class │ │ ├── TestRecordVararg.class │ │ ├── TestRecordGenericVararg.class │ │ ├── TestHideConstructorRecordAnno.class │ │ ├── TestHideConstructorRecordEmpty.class │ │ ├── TestHideConstructorRecordSimple.class │ │ ├── TestHideConstructorRecordVararg.class │ │ ├── TestHideConstructorRecordAnnoGetter.class │ │ ├── TestHideConstructorRecordAnnoConstructor.class │ │ ├── TestHideConstructorRecordAnnoGetterType.class │ │ ├── TestHideConstructorRecordDifferentTypes.class │ │ ├── TestHideConstructorRecordAnnoComponentType.class │ │ ├── TestHideConstructorRecordAnnoParameterType.class │ │ └── TestHideConstructorRecordAnnoParameterAndType.class │ ├── java11 │ │ ├── TestJava11StringConcat.class │ │ ├── TestDynamicConstantPoolEntry.class │ │ ├── TestJava11StringConcatEmptyAffix.class │ │ ├── TestUnsupportedConstantPoolEntry.class │ │ └── TestJava11StringConcatSpecialChars.class │ ├── v11 │ │ ├── TestInnerClassConstructor.class │ │ ├── TestInnerClassConstructor$1.class │ │ ├── TestInnerClassConstructor$Inner.class │ │ └── TestInnerClassConstructor$Another.class │ ├── patterns │ │ ├── TestInstanceofWithPattern.class │ │ ├── TestSwitchPatternWithExpression.class │ │ ├── TestInstanceofPatternNotSupported.class │ │ ├── TestSwitchPatternWithExpression$A.class │ │ ├── TestSwitchPatternWithExpression$AA.class │ │ ├── TestSwitchPatternWithExpression$B.class │ │ └── TestSwitchPatternWithExpression$I.class │ └── com │ │ └── intellij │ │ └── tasks │ │ └── context │ │ └── java │ │ └── BreakpointsContextProvider.class └── kt25937 │ └── META-INF │ └── MANIFEST.MF ├── .gitignore ├── gradle.properties ├── NOTICE.txt ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .editorconfig ├── resources └── META-INF │ └── MANIFEST.MF └── src └── org └── jetbrains └── java └── decompiler ├── struct ├── gen │ ├── NewClassNameBuilder.java │ └── generics │ │ └── GenericFieldDescriptor.java ├── IDecompiledData.java └── consts │ └── PooledConstant.java ├── main └── extern │ ├── IBytecodeProvider.java │ ├── IVariableNamingFactory.java │ └── ClassFormatException.java ├── modules └── decompiler │ └── decompose │ ├── IGraphNode.java │ └── IGraph.java ├── ClassNameConstants.java └── code └── ExceptionTable.java /.gitattributes: -------------------------------------------------------------------------------- 1 | *.dec text 2 | -------------------------------------------------------------------------------- /testData/bulk/pkg/res/resource.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | /.gradle/ 3 | /build/ 4 | /out/ -------------------------------------------------------------------------------- /testData/results/TestUnsupportedConstantPoolEntry.dec: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.configuration-cache=true 2 | -------------------------------------------------------------------------------- /testData/obfuscated/ad.java: -------------------------------------------------------------------------------- 1 | public interface ad { 2 | String a(); 3 | } 4 | -------------------------------------------------------------------------------- /testData/obfuscated/af.java: -------------------------------------------------------------------------------- 1 | // $FF: synthetic class 2 | class af { 3 | } 4 | -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- 1 | Copyright © 2014–2025 JetBrains s.r.o. 2 | https://www.jetbrains.com/ -------------------------------------------------------------------------------- /testData/obfuscated/ay.java: -------------------------------------------------------------------------------- 1 | public interface ay { 2 | void a(a0 var1); 3 | } 4 | -------------------------------------------------------------------------------- /testData/obfuscated/f.java: -------------------------------------------------------------------------------- 1 | public interface f { 2 | V a(K var1); 3 | } 4 | -------------------------------------------------------------------------------- /testData/obfuscated/q.java: -------------------------------------------------------------------------------- 1 | public interface q { 2 | void a(p var1); 3 | } 4 | -------------------------------------------------------------------------------- /testData/src/pkg/KotlinDefaultValue.kt: -------------------------------------------------------------------------------- 1 | class KotlinDefaultValue(val age: Int = 1){} -------------------------------------------------------------------------------- /testData/obfuscated/am.java: -------------------------------------------------------------------------------- 1 | public interface am { 2 | void a(k var1); 3 | } 4 | -------------------------------------------------------------------------------- /testData/obfuscated/g.java: -------------------------------------------------------------------------------- 1 | public interface g { 2 | boolean a(V var1); 3 | } 4 | -------------------------------------------------------------------------------- /testData/bulk.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/bulk.jar -------------------------------------------------------------------------------- /testData/obfuscated/ac.java: -------------------------------------------------------------------------------- 1 | public interface ac { 2 | void a() throws Exception; 3 | } 4 | -------------------------------------------------------------------------------- /testData/kt25937.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/kt25937.jar -------------------------------------------------------------------------------- /testData/obfuscated.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/obfuscated.jar -------------------------------------------------------------------------------- /testData/results/package-info.dec: -------------------------------------------------------------------------------- 1 | @PkgAnno("...") 2 | package pkg; 3 | 4 | import ext.PkgAnno; 5 | -------------------------------------------------------------------------------- /testData/src/java9/sample.module/TestClass.java: -------------------------------------------------------------------------------- 1 | package sample.pkg2; 2 | 3 | public class TestClass {} -------------------------------------------------------------------------------- /testData/src/pkg/package-info.java: -------------------------------------------------------------------------------- 1 | @PkgAnno("...") 2 | package pkg; 3 | 4 | import ext.PkgAnno; 5 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/K.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public @interface K { 4 | } 5 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/Bar.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public interface Bar { 4 | } 5 | -------------------------------------------------------------------------------- /testData/bulk/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Created-By: 1.8.0_20 (Oracle Corporation) 3 | 4 | -------------------------------------------------------------------------------- /testData/classes/pkg/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/R.class -------------------------------------------------------------------------------- /testData/src/java9/sample.module/TestService.java: -------------------------------------------------------------------------------- 1 | package sample.pkg1; 2 | 3 | public interface TestService {} -------------------------------------------------------------------------------- /testData/src/typeAnnotations/Foo.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public abstract class Foo { 4 | } 5 | -------------------------------------------------------------------------------- /testData/kt25937/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Created-By: 1.8.0_171 (Oracle Corporation) 3 | 4 | -------------------------------------------------------------------------------- /testData/src/pkg/TestSuspendLambda.kt: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | val sl1: suspend () -> Unit = { 4 | println("SL1") 5 | } -------------------------------------------------------------------------------- /testData/src/records/TestRecordSimple.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestRecordSimple(int x, int y) {} -------------------------------------------------------------------------------- /testData/src/sealed/EnumWithOverride.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | enum EnumWithOverride { 4 | FOO { 5 | }; 6 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /testData/classes/ext/Shadow.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/ext/Shadow.class -------------------------------------------------------------------------------- /testData/classes/pkg/Shadow.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/Shadow.class -------------------------------------------------------------------------------- /testData/src/ext/TestClashNameIface.java: -------------------------------------------------------------------------------- 1 | package ext; 2 | interface TestClashNameIface { 3 | public void foo(); 4 | } 5 | -------------------------------------------------------------------------------- /testData/src/pkg/Shadow.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | // companion class for pkg/TestShadowing.java 4 | public class Shadow { } -------------------------------------------------------------------------------- /testData/src/records/TestRecordVararg.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestRecordVararg(int x, int[]... y) {} -------------------------------------------------------------------------------- /testData/src/sealed/ClassExtends.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | final class ClassExtends extends RootWithClassOuter { 4 | } -------------------------------------------------------------------------------- /testData/classes/ext/Shadow$B.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/ext/Shadow$B.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnum.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInUse.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInUse.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLVT.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLVT.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPPMM.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPPMM.class -------------------------------------------------------------------------------- /testData/results/EnumWithOverride.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | enum EnumWithOverride { 4 | FOO { 5 | }; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/BarGeneric.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public interface BarGeneric { 4 | } 5 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/ParentInterface.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public interface ParentInterface { 4 | } 5 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset=utf-8 3 | end_of_line=lf 4 | insert_final_newline=false 5 | indent_style=space 6 | indent_size=2 7 | -------------------------------------------------------------------------------- /testData/classes/pkg/NestedType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/NestedType.class -------------------------------------------------------------------------------- /testData/classes/pkg/SharedName1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/SharedName1.class -------------------------------------------------------------------------------- /testData/classes/pkg/SharedName2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/SharedName2.class -------------------------------------------------------------------------------- /testData/classes/pkg/SharedName3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/SharedName3.class -------------------------------------------------------------------------------- /testData/classes/pkg/SharedName4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/SharedName4.class -------------------------------------------------------------------------------- /testData/classes/pkg/SharedName5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/SharedName5.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAsserts.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAsserts.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnum$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnum$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnum$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnum$2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestFinally.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestFinally.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInner2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInner2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLambda.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLambda.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestVarType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestVarType.class -------------------------------------------------------------------------------- /testData/classes/java/lang/Integer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java/lang/Integer.class -------------------------------------------------------------------------------- /testData/classes/java9/module-info.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java9/module-info.class -------------------------------------------------------------------------------- /testData/classes/pkg/NestedType$Foo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/NestedType$Foo.class -------------------------------------------------------------------------------- /testData/classes/pkg/NonSharedName.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/NonSharedName.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses.class -------------------------------------------------------------------------------- /testData/classes/pkg/SwitchOnStatic.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/SwitchOnStatic.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClashName.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClashName.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassCast.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassCast.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassLoop.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassLoop.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassTypes.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassTypes.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassVar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassVar.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestConstType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestConstType.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestConstants.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestConstants.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnum$Type.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnum$Type.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnumInit.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnumInit.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestFinally$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestFinally$A.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGenerics.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGenerics.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestHelloWorld.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestHelloWorld.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInner2$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInner2$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerLocal.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerLocal.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestJADNaming.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestJADNaming.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLVTComplex.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLVTComplex.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLVTScoping.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLVTScoping.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLocalClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLocalClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPrimitives.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPrimitives.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestShadowing.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestShadowing.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSuperInner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSuperInner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestUnionType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestUnionType.class -------------------------------------------------------------------------------- /testData/classes/pkg/package-info.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/package-info.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/A.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/B.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/B.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/C.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/C.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/D.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/D.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/E.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/E.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/F.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/F.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/K.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/K.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/L.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/L.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/P.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/P.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/S.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/S.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/T.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/T.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/V.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/V.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/Z.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/Z.class -------------------------------------------------------------------------------- /testData/src/ext/TestClashNameParent.java: -------------------------------------------------------------------------------- 1 | package ext; 2 | 3 | public class TestClashNameParent { 4 | int SharedName3 = 0; 5 | } 6 | -------------------------------------------------------------------------------- /testData/src/java9/sample.module/TestServiceImpl.java: -------------------------------------------------------------------------------- 1 | package sample.pkg1; 2 | 3 | public class TestServiceImpl implements TestService {} -------------------------------------------------------------------------------- /testData/classes/pkg/MoreAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/MoreAnnotations.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$2.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$3.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$4.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$5.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$6.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassFields.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassFields.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassLambda.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassLambda.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassSwitch.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassSwitch.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestDebugSymbols.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestDebugSymbols.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestDeprecations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestDeprecations.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEmptyBlocks.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEmptyBlocks.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnumLowLevel.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnumLowLevel.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestExtendsList.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestExtendsList.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGenericArgs.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGenericArgs.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyTrait.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyTrait.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInitGeneric.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInitGeneric.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestIntVarMerge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestIntVarMerge.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLambdaParams.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLambdaParams.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLocalsNames.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLocalsNames.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLoopMerging.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLoopMerging.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNestedCalls.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNestedCalls.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestStringConcat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestStringConcat.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnum.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchRules.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchRules.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestVarArgCalls.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestVarArgCalls.class -------------------------------------------------------------------------------- /testData/classes/pkg/TypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/sealed/ClassExtends.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/ClassExtends.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/Bar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/Bar.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/Foo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/Foo.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/P$Q.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/P$Q.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/S$T.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/S$T.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/T$Y.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/T$Y.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/V$U.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/V$U.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/Z$Y.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/Z$Y.class -------------------------------------------------------------------------------- /testData/obfuscated/u.java: -------------------------------------------------------------------------------- 1 | public interface u { 2 | void a(Class var1) throws Exception; 3 | 4 | void a() throws Exception; 5 | } 6 | -------------------------------------------------------------------------------- /testData/src/sealed/ClassImplements.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | final class ClassImplements implements RootWithInterfaceOuter { 4 | } 5 | -------------------------------------------------------------------------------- /testData/classes/InvalidMethodSignature.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/InvalidMethodSignature.class -------------------------------------------------------------------------------- /testData/classes/ext/TestClashNameIface.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/ext/TestClashNameIface.class -------------------------------------------------------------------------------- /testData/classes/ext/TestClashNameParent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/ext/TestClashNameParent.class -------------------------------------------------------------------------------- /testData/classes/pkg/KotlinDefaultValue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/KotlinDefaultValue.class -------------------------------------------------------------------------------- /testData/classes/pkg/NestedType$Foo$Bar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/NestedType$Foo$Bar.class -------------------------------------------------------------------------------- /testData/classes/pkg/NestedType$FooBar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/NestedType$FooBar.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1$2.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$2$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$2$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$2$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$2$2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAbstractMethods.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAbstractMethods.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAccessReplace.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAccessReplace.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAmbiguousCall.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAmbiguousCall.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousParams.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousParams.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClashNameIface.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClashNameIface.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClashNameParent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClashNameParent.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestCodeConstructs.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestCodeConstructs.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestConstantsAsIs$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestConstantsAsIs$A.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestConstantsAsIs.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestConstantsAsIs.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGenerics$Maps.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGenerics$Maps.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestIllegalVarName.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestIllegalVarName.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInitGeneric$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInitGeneric$A.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInitGeneric$B.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInitGeneric$B.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInitGeneric$C.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInitGeneric$C.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInner2$Another.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInner2$Another.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInner2$Another2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInner2$Another2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerSignature.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerSignature.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInterfaceFields.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInterfaceFields.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInterfaceSuper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInterfaceSuper.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLVTComplex$Bob.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLVTComplex$Bob.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLocalsSignature.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLocalsSignature.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNestedInheritor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNestedInheritor.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNotNullRecord.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNotNullRecord.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPop2OneLongPop2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPop2OneLongPop2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPop2TwoIntPop2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPop2TwoIntPop2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestStaticNameClash.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestStaticNameClash.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestStringLiterals.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestStringLiterals.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSuperInnerBase.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSuperInnerBase.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSuspendLambdaKt.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSuspendLambdaKt.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnum$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnum$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSyntheticAccess.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSyntheticAccess.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestThrowException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestThrowException.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestTryCatchFinally.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestTryCatchFinally.class -------------------------------------------------------------------------------- /testData/classes/pkg/TryToPreserveCast.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TryToPreserveCast.class -------------------------------------------------------------------------------- /testData/classes/pkg/TypeAnnotations$TA.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TypeAnnotations$TA.class -------------------------------------------------------------------------------- /testData/classes/records/TestRecordAnno.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestRecordAnno.class -------------------------------------------------------------------------------- /testData/classes/records/TestRecordEmpty.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestRecordEmpty.class -------------------------------------------------------------------------------- /testData/classes/sealed/ClassImplements.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/ClassImplements.class -------------------------------------------------------------------------------- /testData/classes/sealed/ClassNonSealed.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/ClassNonSealed.class -------------------------------------------------------------------------------- /testData/classes/sealed/EnumWithOverride.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/EnumWithOverride.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/P$Q$R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/P$Q$R.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/S$T$U.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/S$T$U.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/T$Y$U$I.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/T$Y$U$I.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/T$Y$U.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/T$Y$U.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/V$U$T.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/V$U$T.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/Z$Y$X$W.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/Z$Y$X$W.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/Z$Y$X.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/Z$Y$X.class -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordSimple.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordSimple(int x, int y) {} -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordVararg.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordVararg(int x, int... y) {} -------------------------------------------------------------------------------- /testData/src/sealed/InterfaceNonSealed.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | non-sealed interface InterfaceNonSealed extends RootWithInterfaceOuter { 4 | } -------------------------------------------------------------------------------- /testData/src/typeAnnotations/V.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | class V { 4 | class U { 5 | class T {} 6 | } 7 | } -------------------------------------------------------------------------------- /testData/classes/pkg/NestedType$FooBar$Bar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/NestedType$FooBar$Bar.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$3.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$4.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$5.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$6.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$7.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$7.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$8.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$I.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$I.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousParams$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousParams$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassFields$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassFields$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnhancedForLoops.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnhancedForLoops.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnumInit$TestEnum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnumInit$TestEnum.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestExtendingSubclass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestExtendingSubclass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestFieldSingleAccess.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestFieldSingleAccess.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyClass$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyClass$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestIffSimplification.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestIffSimplification.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerLocal$1Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerLocal$1Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerLocal$2Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerLocal$2Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerLocal$Inner1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerLocal$Inner1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInterfaceMethods.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInterfaceMethods.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLocalClass$1Local.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLocalClass$1Local.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMemberAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMemberAnnotations.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParameters.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParameters.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPop2OneDoublePop2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPop2OneDoublePop2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPop2TwoIntTwoPop.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPop2TwoIntTwoPop.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSuperInner$Inner2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSuperInner$Inner2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchGuardedEcj.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchGuardedEcj.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWrapReturn.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWrapReturn.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestThrowException$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestThrowException$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestTryWithResources.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestTryWithResources.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestWithoutDebugName.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestWithoutDebugName.class -------------------------------------------------------------------------------- /testData/classes/pkg/TypeAnnotations$MixA.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TypeAnnotations$MixA.class -------------------------------------------------------------------------------- /testData/classes/records/TestRecordSimple.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestRecordSimple.class -------------------------------------------------------------------------------- /testData/classes/records/TestRecordVararg.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestRecordVararg.class -------------------------------------------------------------------------------- /testData/classes/sealed/EnumWithOverride$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/EnumWithOverride$1.class -------------------------------------------------------------------------------- /testData/classes/sealed/InterfaceNonSealed.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/InterfaceNonSealed.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithClassInner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithClassInner.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithClassOuter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithClassOuter.class -------------------------------------------------------------------------------- /testData/classes/sealed/foo/RootWithModule.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/foo/RootWithModule.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/T$Y$U$I$O.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/T$Y$U$I$O.class -------------------------------------------------------------------------------- /testData/results/InterfaceNonSealed.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | non-sealed interface InterfaceNonSealed extends RootWithInterfaceOuter { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/classes/java9/TestJava9StringConcat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java9/TestJava9StringConcat.class -------------------------------------------------------------------------------- /testData/classes/pkg/MoreAnnotations$TestEnum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/MoreAnnotations$TestEnum.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$Callable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$Callable.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAccessReplace$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAccessReplace$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousParamNames.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousParamNames.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousSignature$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousSignature$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousSignature$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousSignature$2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousSignature.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousSignature.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestCompoundAssignment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestCompoundAssignment.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestConstructorReference.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestConstructorReference.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestDeprecations$ByAnno.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestDeprecations$ByAnno.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnumInit$TestEnum1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnumInit$TestEnum1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnumInit$TestEnum2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnumInit$TestEnum2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyClass$Nested.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyClass$Nested.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInner2$AnotherStatic.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInner2$AnotherStatic.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerSignature$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerSignature$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInterfaceSuper$Impl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInterfaceSuper$Impl.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestKotlinConstructorKt.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestKotlinConstructorKt.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestLineNumbersMatch$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestLineNumbersMatch$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMemberAnnotations$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMemberAnnotations$A.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParameters$C1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParameters$C1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParameters$C2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParameters$C2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNamedSuspendFun2Kt.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNamedSuspendFun2Kt.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestParameterizedTypes.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestParameterizedTypes.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPrimitiveNarrowing.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPrimitiveNarrowing.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestShadowingSuperClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestShadowingSuperClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSuperInnerBase$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSuperInnerBase$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchGuarded2Javac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchGuarded2Javac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchGuardedJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchGuardedJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnum$Example.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnum$Example.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnumEclipse.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnumEclipse.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnStringsEcj.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnStringsEcj.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnStringsJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnStringsJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSynchronizedMapping.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSynchronizedMapping.class -------------------------------------------------------------------------------- /testData/classes/sealed/bar/BarClassExtends.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/bar/BarClassExtends.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/BarGeneric.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/BarGeneric.class -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordSimple.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordSimple(int x, int y) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordVararg.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordVararg(int x, int... y) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/src/pkg/TestGroovyTrait.groovy: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | trait TestGroovyTrait { 4 | def myField = 42 5 | def myMethod() { 6 | 42 7 | } 8 | } -------------------------------------------------------------------------------- /testData/classes/java/lang/Integer$IntegerCache.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java/lang/Integer$IntegerCache.class -------------------------------------------------------------------------------- /testData/classes/java11/TestJava11StringConcat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java11/TestJava11StringConcat.class -------------------------------------------------------------------------------- /testData/classes/pkg/PreserveAssignmentToRecord.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PreserveAssignmentToRecord.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$Inner$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$Inner$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousParamNames$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousParamNames$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassNestedInitializer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassNestedInitializer.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestCustomSyntheticRecords.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestCustomSyntheticRecords.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestDeprecations$ByComment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestDeprecations$ByComment.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyClass$_closure1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyClass$_closure1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyClass$_closure2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyClass$_closure2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInheritanceChainCycle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInheritanceChainCycle.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInner2$AnotherStatic2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInner2$AnotherStatic2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerClassConstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerClassConstructor.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNestedInheritor$Child.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNestedInheritor$Child.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNestedInheritor$Parent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNestedInheritor$Parent.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSuspendLambdaKt$sl1$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSuspendLambdaKt$sl1$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnum$Example$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnum$Example$A.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnum$Example$B.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnum$Example$B.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWrapReturnJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWrapReturnJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestTryCatchFinallyJsrRet.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestTryCatchFinallyJsrRet.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithInterfaceInner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithInterfaceInner.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithInterfaceOuter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithInterfaceOuter.class -------------------------------------------------------------------------------- /testData/classes/v11/TestInnerClassConstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/v11/TestInnerClassConstructor.class -------------------------------------------------------------------------------- /testData/src/ext/Shadow.java: -------------------------------------------------------------------------------- 1 | package ext; 2 | 3 | // companion class for pkg/TestShadowing.java 4 | public class Shadow { 5 | public static class B { } 6 | } -------------------------------------------------------------------------------- /testData/src/records/TestRecordEmpty.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestRecordEmpty() { 4 | public int hashCode() { 5 | return 0; 6 | } 7 | } -------------------------------------------------------------------------------- /testData/classes/pkg/PreserveAssignmentToRecord2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PreserveAssignmentToRecord2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnnotationExtendWildcard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnnotationExtendWildcard.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousParamNames$Clazz.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousParamNames$Clazz.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassNestedInitializer$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassNestedInitializer$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyTrait$Trait$Helper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyTrait$Trait$Helper.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerClassConstructor$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerClassConstructor$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerLocal$Inner1Static.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerLocal$Inner1Static.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInvertedFloatComparison.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInvertedFloatComparison.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParameters$1Local.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParameters$1Local.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr$C1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr$C1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr$C2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr$C2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr$C3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr$C3.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr$C4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr$C4.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr$E1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr$E1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr$I1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr$I1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodReferenceSameName.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodReferenceSameName.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMissingConstructorCallBad.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMissingConstructorCallBad.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNamedSuspendFun2Kt$foo2$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNamedSuspendFun2Kt$foo2$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestParameterizedTypes$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestParameterizedTypes$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestPrivateEmptyConstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestPrivateEmptyConstructor.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchClassReferencesEcj.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchClassReferencesEcj.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWrapReturnJavac$S$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWrapReturnJavac$S$A.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWrapReturnJavac$S$B.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWrapReturnJavac$S$B.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWrapReturnJavac$S$C.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWrapReturnJavac$S$C.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWrapReturnJavac$S.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWrapReturnJavac$S.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSynchronizedUnprotected.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSynchronizedUnprotected.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSyntheticAccess$Assigner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSyntheticAccess$Assigner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestTryCatchFinallyMismatched.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestTryCatchFinallyMismatched.class -------------------------------------------------------------------------------- /testData/classes/records/TestRecordGenericVararg.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestRecordGenericVararg.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithClassInner$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithClassInner$Inner.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/ParentInterface.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/ParentInterface.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/SomeFunInterface.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/SomeFunInterface.class -------------------------------------------------------------------------------- /testData/classes/v11/TestInnerClassConstructor$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/v11/TestInnerClassConstructor$1.class -------------------------------------------------------------------------------- /testData/classes/java11/TestDynamicConstantPoolEntry.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java11/TestDynamicConstantPoolEntry.class -------------------------------------------------------------------------------- /testData/classes/patterns/TestInstanceofWithPattern.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/patterns/TestInstanceofWithPattern.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAmbiguousCallWithDebugInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAmbiguousCallWithDebugInfo.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnnotationExtendObjectClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnnotationExtendObjectClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$3.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$4.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$5.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$6.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$7.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$7.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$8.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$9.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$9.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassSimpleBytecodeMapping.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassSimpleBytecodeMapping.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestExtendingSubclass$Subclass1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestExtendingSubclass$Subclass1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestExtendingSubclass$Subclass2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestExtendingSubclass$Subclass2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerClassConstructor$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerClassConstructor$Inner.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerSignature$InnerStatic.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerSignature$InnerStatic.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodParametersAttr$1Local.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodParametersAttr$1Local.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodReferenceLetterClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodReferenceLetterClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMethodReferenceSameName$R1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMethodReferenceSameName$R1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestMissingConstructorCallGood.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestMissingConstructorCallGood.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchClassReferencesJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchClassReferencesJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnumEclipse$Example.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnumEclipse$Example.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchSimpleReferencesJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchSimpleReferencesJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSyntheticAccess$Incrementer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSyntheticAccess$Incrementer.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithInterfaceInner$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithInterfaceInner$Inner.class -------------------------------------------------------------------------------- /testData/classes/v11/TestInnerClassConstructor$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/v11/TestInnerClassConstructor$Inner.class -------------------------------------------------------------------------------- /testData/obfuscated/a6.java: -------------------------------------------------------------------------------- 1 | public class a6 { 2 | public static void main(String[] param0) throws Exception { 3 | // $FF: Couldn't be decompiled 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /testData/obfuscated/c.java: -------------------------------------------------------------------------------- 1 | @aa( 2 | a = {ac.class} 3 | ) 4 | public class c implements ac { 5 | public void a() throws Exception { 6 | d.b(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /testData/obfuscated/k.java: -------------------------------------------------------------------------------- 1 | import java.util.Collection; 2 | 3 | public interface k { 4 | void a(T var1); 5 | 6 | void a(Collection var1); 7 | } 8 | -------------------------------------------------------------------------------- /testData/src/java9/TestJava9PrivateInterfaceMethod.java: -------------------------------------------------------------------------------- 1 | package java9; 2 | 3 | public interface TestJava9PrivateInterfaceMethod { 4 | private void privateMethod() {} 5 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestSuperInner.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestSuperInner extends TestSuperInnerBase { 4 | protected abstract class Inner2 extends Inner { } 5 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestSuperInnerBase.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestSuperInnerBase { 4 | protected abstract class Inner { 5 | protected Inner() { } 6 | } 7 | } -------------------------------------------------------------------------------- /testData/src/sealed/ClassNonSealed.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | non-sealed class ClassNonSealed extends RootWithClassOuter implements RootWithInterfaceInnerAndOuter{ 4 | } -------------------------------------------------------------------------------- /testData/classes/java9/TestJava9PrivateInterfaceMethod.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java9/TestJava9PrivateInterfaceMethod.class -------------------------------------------------------------------------------- /testData/classes/pkg/MoreAnnotations$NestedAnnotation.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/MoreAnnotations$NestedAnnotation.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1$1CapturingLocalR1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1$1CapturingLocalR1.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1CapturingLocalM1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1CapturingLocalM1.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1CapturingLocalM2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1CapturingLocalM2.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$2$1CapturingLocalR1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$2$1CapturingLocalR1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClass$InnerRecursive.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClass$InnerRecursive.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$10.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$10.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$11.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$11.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$12.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$12.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassSimpleBytecodeMapping$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassSimpleBytecodeMapping$1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestEnumLowLevel$ExampleNestedEnum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestEnumLowLevel$ExampleNestedEnum.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestGroovyTrait$Trait$FieldHelper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestGroovyTrait$Trait$FieldHelper.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerClassConstructor$Another.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerClassConstructor$Another.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestShadowingSuperClass$Calendar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestShadowingSuperClass$Calendar.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnumEclipse$Example$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnumEclipse$Example$A.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchOnEnumEclipse$Example$B.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchOnEnumEclipse$Example$B.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordAnno.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordAnno.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordEmpty.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordEmpty.class -------------------------------------------------------------------------------- /testData/classes/sealed/ClassNonSealedExtendsImplements.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/ClassNonSealedExtendsImplements.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithInterfaceInnerAndOuter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithInterfaceInnerAndOuter.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/ArrayTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/ArrayTypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/GenericTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/GenericTypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/NestedTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/NestedTypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/v11/TestInnerClassConstructor$Another.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/v11/TestInnerClassConstructor$Another.class -------------------------------------------------------------------------------- /testData/results/ClassNonSealed.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | non-sealed class ClassNonSealed extends RootWithClassOuter implements RootWithInterfaceInnerAndOuter { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/src/sealed/RootWithClassInner.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed class RootWithClassInner { 4 | static final class Inner extends RootWithClassInner { 5 | } 6 | } -------------------------------------------------------------------------------- /testData/classes/java11/TestJava11StringConcatEmptyAffix.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java11/TestJava11StringConcatEmptyAffix.class -------------------------------------------------------------------------------- /testData/classes/java11/TestUnsupportedConstantPoolEntry.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java11/TestUnsupportedConstantPoolEntry.class -------------------------------------------------------------------------------- /testData/classes/patterns/TestSwitchPatternWithExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/patterns/TestSwitchPatternWithExpression.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1NonCapturingLocalM1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1NonCapturingLocalM1.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1NonCapturingLocalM2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1NonCapturingLocalM2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchClassReferencesFastExitEcj.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchClassReferencesFastExitEcj.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchNestedDeconstructionsJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchNestedDeconstructionsJavac.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordSimple.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordSimple.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordVararg.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordVararg.class -------------------------------------------------------------------------------- /testData/results/RootWithClassInner.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed class RootWithClassInner { 4 | static final class Inner extends RootWithClassInner { 5 | } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/src/pkg/TestInterfaceMethods.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public interface TestInterfaceMethods { 4 | static void staticMethod() {} 5 | default void defaultMethod() {} 6 | } -------------------------------------------------------------------------------- /testData/src/sealed/bar/BarClassExtends.java: -------------------------------------------------------------------------------- 1 | package sealed.bar; 2 | 3 | import sealed.foo.RootWithModule; 4 | 5 | final public class BarClassExtends extends RootWithModule { 6 | } -------------------------------------------------------------------------------- /testData/classes/java11/TestJava11StringConcatSpecialChars.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/java11/TestJava11StringConcatSpecialChars.class -------------------------------------------------------------------------------- /testData/classes/patterns/TestInstanceofPatternNotSupported.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/patterns/TestInstanceofPatternNotSupported.class -------------------------------------------------------------------------------- /testData/classes/patterns/TestSwitchPatternWithExpression$A.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/patterns/TestSwitchPatternWithExpression$A.class -------------------------------------------------------------------------------- /testData/classes/patterns/TestSwitchPatternWithExpression$AA.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/patterns/TestSwitchPatternWithExpression$AA.class -------------------------------------------------------------------------------- /testData/classes/patterns/TestSwitchPatternWithExpression$B.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/patterns/TestSwitchPatternWithExpression$B.class -------------------------------------------------------------------------------- /testData/classes/patterns/TestSwitchPatternWithExpression$I.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/patterns/TestSwitchPatternWithExpression$I.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$1$1NonCapturingLocalR1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$1$1NonCapturingLocalR1.class -------------------------------------------------------------------------------- /testData/classes/pkg/PrivateClasses$2$1NonCapturingLocalR2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/PrivateClasses$2$1NonCapturingLocalR2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnnotationExtendObjectStaticMethods.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnnotationExtendObjectStaticMethods.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestComplexInstanceOfRecordPatternJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestComplexInstanceOfRecordPatternJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestCustomSyntheticRecords$CustomGetter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestCustomSyntheticRecords$CustomGetter.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNestedInheritor$Child$NestedChild.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNestedInheritor$Child$NestedChild.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestNestedInheritor$Parent$NestedParent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestNestedInheritor$Parent$NestedParent.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSimpleInstanceOfRecordPatternJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSimpleInstanceOfRecordPatternJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchClassReferencesFastExitJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchClassReferencesFastExitJavac.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchNestedDeconstructionsJavac$R1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchNestedDeconstructionsJavac$R1.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchNestedDeconstructionsJavac$R2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchNestedDeconstructionsJavac$R2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchSimpleReferencesJavac$Numbers.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchSimpleReferencesJavac$Numbers.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordAnnoGetter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordAnnoGetter.class -------------------------------------------------------------------------------- /testData/classes/sealed/RootWithInterfaceInnerAndOuter$Inner.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/sealed/RootWithInterfaceInnerAndOuter$Inner.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/ArrayNestedTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/ArrayNestedTypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/ClassSuperTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/ClassSuperTypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/GenericArrayTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/GenericArrayTypeAnnotations.class -------------------------------------------------------------------------------- /testData/obfuscated/ak.java: -------------------------------------------------------------------------------- 1 | public interface ak { 2 | String a(); 3 | 4 | String b(); 5 | 6 | String c(); 7 | 8 | double d(); 9 | 10 | Double e(); 11 | } 12 | -------------------------------------------------------------------------------- /testData/src/ext/PkgAnno.java: -------------------------------------------------------------------------------- 1 | package ext; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target(ElementType.PACKAGE) 6 | public @interface PkgAnno { 7 | String value(); 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/pkg/TestIllegalVarName.kt: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | class TestIllegalVarName { 4 | fun m(`this`: String, `enum`: Int): String { 5 | return `this` + '/' + `enum` 6 | } 7 | } -------------------------------------------------------------------------------- /testData/src/sealed/RootWithClassOuter.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | abstract sealed class RootWithClassOuter permits ClassExtends, ClassNonSealed, ClassNonSealedExtendsImplements { 4 | } -------------------------------------------------------------------------------- /testData/src/sealed/RootWithInterfaceInner.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed interface RootWithInterfaceInner { 4 | final class Inner implements RootWithInterfaceInner { 5 | } 6 | } -------------------------------------------------------------------------------- /resources/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Main-Class: org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler 3 | Automatic-Module-Name: org.jetbrains.java.decompiler 4 | -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerPublic.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerPublic.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassSimpleBytecodeMapping$InnerClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassSimpleBytecodeMapping$InnerClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestComplexInstanceOfRecordPatternJavac$R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestComplexInstanceOfRecordPatternJavac$R.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestInnerLocal$Inner1Static$Inner2Static.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestInnerLocal$Inner1Static$Inner2Static.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestShadowingSuperClass$Calendar$Builder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestShadowingSuperClass$Calendar$Builder.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSimpleInstanceOfRecordPatternJavac$R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSimpleInstanceOfRecordPatternJavac$R.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/GenericNestedTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/GenericNestedTypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/InterfaceSuperTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/InterfaceSuperTypeAnnotations.class -------------------------------------------------------------------------------- /testData/results/RootWithClassOuter.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | abstract sealed class RootWithClassOuter permits ClassExtends, ClassNonSealed, ClassNonSealedExtendsImplements { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/results/RootWithModule.dec: -------------------------------------------------------------------------------- 1 | package sealed.foo; 2 | 3 | import sealed.bar.BarClassExtends; 4 | 5 | public abstract sealed class RootWithModule permits BarClassExtends { 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/src/pkg/TestNotNullRecord.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | public record TestNotNullRecord(@NotNull Integer integer) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /testData/src/sealed/foo/RootWithModule.java: -------------------------------------------------------------------------------- 1 | package sealed.foo; 2 | 3 | import sealed.bar.BarClassExtends; 4 | 5 | public abstract sealed class RootWithModule permits BarClassExtends { 6 | } -------------------------------------------------------------------------------- /testData/src/typeAnnotations/SomeFunInterface.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | @FunctionalInterface 4 | public interface SomeFunInterface { 5 | void accept(T t, E e); 6 | } 7 | -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnnotationsForParametersWithNestedClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnnotationsForParametersWithNestedClass.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerPrivate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerPrivate.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestClassSimpleBytecodeMapping$InnerClass2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestClassSimpleBytecodeMapping$InnerClass2.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestComplexInstanceOfRecordPatternJavac$R2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestComplexInstanceOfRecordPatternJavac$R2.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordAnnoConstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordAnnoConstructor.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordAnnoGetterType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordAnnoGetterType.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordDifferentTypes.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordDifferentTypes.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/MemberDeclarationTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/MemberDeclarationTypeAnnotations.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/NestedTypeAnnotationsParameters.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/NestedTypeAnnotationsParameters.class -------------------------------------------------------------------------------- /testData/src/pkg/TestHelloWorld.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestHelloWorld { 4 | public static void main(String[] args) { 5 | System.out.println("hello world"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /testData/src/sealed/ClassNonSealedExtendsImplements.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | non-sealed class ClassNonSealedExtendsImplements extends RootWithClassOuter implements RootWithInterfaceOuter { 4 | } -------------------------------------------------------------------------------- /testData/src/sealed/RootWithInterfaceOuter.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed interface RootWithInterfaceOuter permits ClassImplements, InterfaceNonSealed, ClassNonSealedExtendsImplements { 4 | } -------------------------------------------------------------------------------- /testData/src/typeAnnotations/P.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class P { 4 | public static class Q { 5 | public class R { 6 | 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordAnnoComponentType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordAnnoComponentType.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordAnnoParameterType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordAnnoParameterType.class -------------------------------------------------------------------------------- /testData/classes/typeAnnotations/GenericArrayNestedTypeAnnotations.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/typeAnnotations/GenericArrayNestedTypeAnnotations.class -------------------------------------------------------------------------------- /testData/results/RootWithInterfaceOuter.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed interface RootWithInterfaceOuter permits ClassImplements, InterfaceNonSealed, ClassNonSealedExtendsImplements { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/results/TestVarType.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestVarType { 4 | public void byteint() { 5 | int i = 75; 6 | i += 5; 7 | i += 500; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordEmpty.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordEmpty() { 4 | public int hashCode() { 5 | return 0; 6 | } 7 | } -------------------------------------------------------------------------------- /testData/src/records/TestRecordGenericVararg.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestRecordGenericVararg(T first, T... other) { 4 | @SafeVarargs 5 | public TestRecordGenericVararg {} 6 | } -------------------------------------------------------------------------------- /testData/src/typeAnnotations/S.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class S { 4 | public static class T { 5 | public static class U { 6 | 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerPrivateString.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerPrivateString.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerPublicString.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerPublicString.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPrivate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPrivate.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPublic.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPublic.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestCustomSyntheticRecords$CustomFullConstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestCustomSyntheticRecords$CustomFullConstructor.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWithDeconstructionsWithoutNestedJavac.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWithDeconstructionsWithoutNestedJavac.class -------------------------------------------------------------------------------- /testData/classes/records/TestHideConstructorRecordAnnoParameterAndType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/records/TestHideConstructorRecordAnnoParameterAndType.class -------------------------------------------------------------------------------- /testData/results/ClassNonSealedExtendsImplements.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | non-sealed class ClassNonSealedExtendsImplements extends RootWithClassOuter implements RootWithInterfaceOuter { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/results/TestSuperInner.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestSuperInner extends TestSuperInnerBase { 4 | protected abstract class Inner2 extends TestSuperInnerBase.Inner { 5 | } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/classes/pkg/TestCustomSyntheticRecords$CustomCompactConstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestCustomSyntheticRecords$CustomCompactConstructor.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestSwitchWithDeconstructionsWithoutNestedJavac$R1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestSwitchWithDeconstructionsWithoutNestedJavac$R1.class -------------------------------------------------------------------------------- /testData/results/InterfaceSuperTypeAnnotations.dec: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public interface InterfaceSuperTypeAnnotations extends @B Bar, @L @B BarGeneric<@F String, @L @A String @B []> { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/results/RootWithInterfaceInner.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed interface RootWithInterfaceInner { 4 | public static final class Inner implements RootWithInterfaceInner { 5 | } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/classes/com/intellij/tasks/context/java/BreakpointsContextProvider.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/com/intellij/tasks/context/java/BreakpointsContextProvider.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPrivateString.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPrivateString.class -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPublicString.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnonymousClassConstructor$InnerStaticPublicString.class -------------------------------------------------------------------------------- /testData/results/ClassSuperTypeAnnotations.dec: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class ClassSuperTypeAnnotations extends @L @A Foo implements @B Bar, @B BarGeneric<@F String, @L @A String @B []> { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/Z.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class Z { 4 | class Y { 5 | class X { 6 | class W { 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /testData/classes/pkg/TestAnnotationsForParametersWithNestedClass$RunCallback.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains/fernflower/HEAD/testData/classes/pkg/TestAnnotationsForParametersWithNestedClass$RunCallback.class -------------------------------------------------------------------------------- /testData/src/java9/sample.module/TestModuleAnno.java: -------------------------------------------------------------------------------- 1 | package sample.pkg1; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target(ElementType.MODULE) 6 | public @interface TestModuleAnno { 7 | String value(); 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/pkg/TestSynchronizedUnprotected.kt: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | class TestSynchronizedUnprotected { 4 | fun test() { 5 | synchronized(this) { 6 | println("Boom") 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /testData/src/typeAnnotations/InterfaceSuperTypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public interface InterfaceSuperTypeAnnotations extends @B Bar, @L @B BarGeneric<@F String, @L @A String @B []> { 4 | } 5 | -------------------------------------------------------------------------------- /testData/obfuscated/a_.java: -------------------------------------------------------------------------------- 1 | class a_ extends RuntimeException { 2 | private static final long serialVersionUID = -7454219131982518216L; 3 | final bc a; 4 | 5 | a_(bc var1) { 6 | this.a = var1; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordAnnoComponentType.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.util.Map; 4 | 5 | public record TestHideConstructorRecordAnnoComponentType(Map<@Anno String, String> b2) { 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/A.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target(ElementType.TYPE_USE) 7 | public @interface A { 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/B.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target(ElementType.TYPE_USE) 7 | public @interface B { 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/C.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target(ElementType.TYPE_USE) 7 | public @interface C { 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/ClassSuperTypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class ClassSuperTypeAnnotations extends @L @A Foo implements @B Bar, @B BarGeneric<@F String, @L @A String @B []> { 4 | } 5 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/D.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target(ElementType.TYPE_USE) 7 | public @interface D { 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/E.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target(ElementType.TYPE_USE) 7 | public @interface E { 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/F.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target(ElementType.TYPE_USE) 7 | public @interface F { 8 | } 9 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordAnnoParameterAndType.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.util.Map; 4 | 5 | public record TestHideConstructorRecordAnnoParameterAndType(@Anno Map b2) { 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/src/pkg/TestInterfaceFields.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public interface TestInterfaceFields { 6 | BigDecimal BIG_ZERO = BigDecimal.ZERO; 7 | int MAX_BYTE_VALUE = Byte.MAX_VALUE; 8 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestKotlinConstructor.kt: -------------------------------------------------------------------------------- 1 | private fun foo(list: Collection): List { 2 | return list.map { 3 | Mapping(it as String) 4 | }.toList() 5 | } 6 | 7 | class Mapping(c: String) { 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/pkg/TestEnumLowLevel.java: -------------------------------------------------------------------------------- 1 | public class TestEnumLowLevel { 2 | public static void main(String[] args) { 3 | System.out.println("hello"); 4 | } 5 | 6 | public enum ExampleNestedEnum {RED, GREEN, BLUE} 7 | } -------------------------------------------------------------------------------- /testData/results/TestInterfaceFields.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public interface TestInterfaceFields { 6 | BigDecimal BIG_ZERO = BigDecimal.ZERO; 7 | int MAX_BYTE_VALUE = 127; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /testData/src/pkg/PreserveAssignmentToRecord.java: -------------------------------------------------------------------------------- 1 | package org.example; 2 | 3 | public record PreserveAssignmentToRecord(int x, int y){ 4 | public PreserveAssignmentToRecord(int x, int y){ 5 | this.x = 52122221; 6 | this.y = 52122223; 7 | } 8 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestPrivateEmptyConstructor.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public final class TestPrivateEmptyConstructor { 4 | private TestPrivateEmptyConstructor() {} 5 | 6 | public final void test() { 7 | System.out.println("test"); 8 | } 9 | } -------------------------------------------------------------------------------- /testData/results/TestShadowing.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestShadowing extends TestShadowingSuperClass { 4 | ext.Shadow.B instanceOfB = new ext.Shadow.B(); 5 | java.util.Calendar.Builder calBuilder = new java.util.Calendar.Builder(); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/L.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target({ElementType.TYPE_USE, ElementType.FIELD}) 7 | public @interface L { 8 | } 9 | 10 | -------------------------------------------------------------------------------- /testData/src/sealed/RootWithInterfaceInnerAndOuter.java: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed interface RootWithInterfaceInnerAndOuter permits RootWithInterfaceInnerAndOuter.Inner, ClassNonSealed { 4 | final class Inner implements RootWithInterfaceInnerAndOuter { 5 | } 6 | } -------------------------------------------------------------------------------- /testData/results/RootWithInterfaceInnerAndOuter.dec: -------------------------------------------------------------------------------- 1 | package sealed; 2 | 3 | sealed interface RootWithInterfaceInnerAndOuter permits RootWithInterfaceInnerAndOuter.Inner, ClassNonSealed { 4 | public static final class Inner implements RootWithInterfaceInnerAndOuter { 5 | } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /testData/src/pkg/TestUnionType.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.io.Serializable; 4 | import java.util.Comparator; 5 | 6 | public interface TestUnionType { 7 | public static Comparator comparingInt() { 8 | return (Comparator & Serializable)(c1, c2) -> 1; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordDifferentTypes.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordDifferentTypes(String a, int... l) { 4 | public TestHideConstructorRecordDifferentTypes(String a, int l) { 5 | this(a, new int[]{l}); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /testData/src/pkg/TestStaticNameClash.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestStaticNameClash { 4 | 5 | public static String property; 6 | 7 | public static void setProperty(final String property) { 8 | TestStaticNameClash.property = property; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /testData/bulk/pkg/Main.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import pkg.res.Loader; 4 | 5 | public class Main { 6 | public static void main(String[] args) { 7 | Loader loader = new Loader(); 8 | String resource = loader.getResource(); 9 | System.out.println(resource); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /testData/src/pkg/TestAnnotationExtendObjectClass.java: -------------------------------------------------------------------------------- 1 | package org.example; 2 | 3 | import org.jetbrains.annotations.Nullable; 4 | 5 | public class TestAnnotationExtendObjectClass { 6 | public static void main(String[] args) { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /testData/src/typeAnnotations/T.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class T { 4 | public static class Y { 5 | public class U { 6 | public class I { 7 | public class O { 8 | 9 | } 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /testData/src/pkg/TestInterfaceSuper.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public interface TestInterfaceSuper { 4 | default void defaultMethod() {} 5 | 6 | class Impl implements TestInterfaceSuper { 7 | public void defaultMethod() { 8 | TestInterfaceSuper.super.defaultMethod(); 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /testData/obfuscated/w.java: -------------------------------------------------------------------------------- 1 | import java.lang.annotation.ElementType; 2 | import java.lang.annotation.Retention; 3 | import java.lang.annotation.RetentionPolicy; 4 | import java.lang.annotation.Target; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Target({ElementType.FIELD}) 8 | public @interface w { 9 | } 10 | -------------------------------------------------------------------------------- /testData/src/pkg/TestNamedSuspendFun2.kt: -------------------------------------------------------------------------------- 1 | 2 | suspend fun foo2(): Int { 3 | while (true) { 4 | try { 5 | val x = bar() 6 | if (x == 0) break 7 | } finally { 8 | bar() 9 | } 10 | } 11 | return 1 12 | } 13 | 14 | suspend fun bar(): Int = 0 15 | -------------------------------------------------------------------------------- /testData/results/ArrayNestedTypeAnnotations.dec: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class ArrayNestedTypeAnnotations { 4 | @A Z.Y.X.W[] w1; 5 | Z.@B Y.X.W[] @E [] w2; 6 | Z.Y.@C X.W @F [] @A [] @B [] w3; 7 | Z.Y.X.@D W @D [] w4; 8 | @A Z.@B Y.@C X.@D W[][] w5; 9 | @L Z.Y.X.@L W[] @L [] w6; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /testData/obfuscated/aa.java: -------------------------------------------------------------------------------- 1 | import java.lang.annotation.ElementType; 2 | import java.lang.annotation.Retention; 3 | import java.lang.annotation.RetentionPolicy; 4 | import java.lang.annotation.Target; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Target({ElementType.TYPE}) 8 | public @interface aa { 9 | Class[] a(); 10 | } 11 | -------------------------------------------------------------------------------- /testData/obfuscated/x.java: -------------------------------------------------------------------------------- 1 | import java.lang.annotation.ElementType; 2 | import java.lang.annotation.Retention; 3 | import java.lang.annotation.RetentionPolicy; 4 | import java.lang.annotation.Target; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Target({ElementType.FIELD}) 8 | public @interface x { 9 | Class a(); 10 | } 11 | -------------------------------------------------------------------------------- /testData/results/TestRecordEmpty.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestRecordEmpty() { 4 | public int hashCode() { 5 | return 0;// 5 6 | } 7 | } 8 | 9 | class 'records/TestRecordEmpty' { 10 | method 'hashCode ()I' { 11 | 0 4 12 | 1 4 13 | } 14 | } 15 | 16 | Lines mapping: 17 | 5 <-> 5 18 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/ArrayNestedTypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class ArrayNestedTypeAnnotations { 4 | @A Z.Y.X.W[] w1; 5 | Z.@B Y.X.W[] @E [] w2; 6 | Z.Y.@C X.W @F [] @A [] @B [] w3; 7 | Z.Y.X.@D W @D [] w4; 8 | @A Z.@B Y.@C X.@D W[][] w5; 9 | @L Z. Y.X.@L W[] @L [] w6; 10 | } 11 | -------------------------------------------------------------------------------- /testData/results/TestParameterizedTypes.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public abstract class TestParameterizedTypes

{ 4 | abstract TestParameterizedTypes

.Inner getUnspecificInner(); 5 | 6 | abstract TestParameterizedTypes.Inner getSpecificInner(); 7 | 8 | public abstract class Inner { 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /testData/results/TestJava9PrivateInterfaceMethod.dec: -------------------------------------------------------------------------------- 1 | package java9; 2 | 3 | public interface TestJava9PrivateInterfaceMethod { 4 | private void privateMethod() { 5 | }// 4 6 | } 7 | 8 | class 'java9/TestJava9PrivateInterfaceMethod' { 9 | method 'privateMethod ()V' { 10 | 0 4 11 | } 12 | } 13 | 14 | Lines mapping: 15 | 4 <-> 5 16 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/struct/gen/NewClassNameBuilder.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.struct.gen; 3 | 4 | public interface NewClassNameBuilder { 5 | String buildNewClassname(String className); 6 | } 7 | -------------------------------------------------------------------------------- /testData/results/NestedTypeAnnotations.dec: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class NestedTypeAnnotations { 4 | @A Z.Y.X.W w1; 5 | Z.@B Y.X.W w2; 6 | Z.Y.@C X.W w3; 7 | Z.Y.X.@D W w4; 8 | @A Z.@B Y.@C X.@D W w5; 9 | @L Z.Y.X.W w6; 10 | P.@A Q.R r1; 11 | P.Q.@B R r2; 12 | S.T.@C U u1; 13 | T.@A Y.U.I.O o1; 14 | } 15 | 16 | -------------------------------------------------------------------------------- /testData/obfuscated/i.java: -------------------------------------------------------------------------------- 1 | import java.util.Collection; 2 | 3 | public abstract class i implements k { 4 | public void a(Collection var1) { 5 | boolean var4 = n.c; 6 | 7 | for(Object var3 : var1) { 8 | this.a(var3); 9 | if (var4) { 10 | break; 11 | } 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /testData/src/pkg/TestExtendingSubclass.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class TestExtendingSubclass { 6 | 7 | class Subclass1 { 8 | Subclass1(String name) { 9 | } 10 | } 11 | 12 | class Subclass2 extends Subclass1 { 13 | Subclass2(String name) { 14 | super(name); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /testData/src/pkg/TestInUse.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestInUse { 4 | public int getInt() { 5 | return 42; 6 | } 7 | 8 | protected int reuse() { 9 | int i = 0, d = 0; 10 | int result = 0; 11 | do { 12 | d = getInt(); 13 | result -= d; 14 | } 15 | while (++i < 10); 16 | return result; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /testData/results/TestConstructorReference.dec: -------------------------------------------------------------------------------- 1 | public class TestConstructorReference { 2 | void boo() { 3 | Runnable aNew = TestConstructorReference::new;// 22 4 | }// 23 5 | } 6 | 7 | class 'TestConstructorReference' { 8 | method 'boo ()V' { 9 | 5 2 10 | 6 3 11 | } 12 | } 13 | 14 | Lines mapping: 15 | 22 <-> 3 16 | 23 <-> 4 17 | -------------------------------------------------------------------------------- /testData/src/pkg/TestGroovyClass.groovy: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | import java.util.concurrent.Callable 4 | 5 | class TestGroovyClass { 6 | static class Nested { } 7 | class Inner { } 8 | 9 | final Nested n = new Nested() 10 | final Inner i = new Inner() 11 | final Runnable r = { println("I'm runnable") } 12 | final Callable c = { "I'm callable" } 13 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestShadowing.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestShadowing extends TestShadowingSuperClass { 4 | ext.Shadow.B instanceOfB = new ext.Shadow.B(); 5 | java.util.Calendar.Builder calBuilder = new java.util.Calendar.Builder(); 6 | } 7 | 8 | class TestShadowingSuperClass { 9 | static class Calendar { 10 | static class Builder { } 11 | } 12 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestJADNaming.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.io.File; 4 | 5 | public class TestJADNaming { 6 | public void Func() { 7 | int a = 1000, b = 2000, c = 3000, d = 4000; 8 | if (a == b || c == d); 9 | boolean flag1 = true, flag2 = false, flag3 = true, flag4 = false; 10 | if (flag1 == flag2 || flag3 == flag4); 11 | } 12 | } -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordAnnoComponentType.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | import java.util.Map; 6 | 7 | public record TestHideConstructorRecordAnnoComponentType(Map<@Anno String, String> b2) { 8 | } 9 | 10 | @Target({ElementType.TYPE_USE}) 11 | @interface Anno { 12 | } 13 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/NestedTypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class NestedTypeAnnotations { 4 | @A Z.Y.X.W w1; 5 | Z.@B Y.X.W w2; 6 | Z.Y.@C X.W w3; 7 | Z.Y.X.@D W w4; 8 | @A Z.@B Y.@C X.@D W w5; 9 | @L Z.Y.X.W w6; 10 | P.@A Q.R r1; 11 | P. Q. @B R r2; 12 | S.T. @C U u1; 13 | T. @A Y.U.I.O o1; 14 | } 15 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordEmpty.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordEmpty() { 4 | public int hashCode() { 5 | return 0;// 5 6 | } 7 | } 8 | 9 | class 'records/TestHideConstructorRecordEmpty' { 10 | method 'hashCode ()I' { 11 | 0 4 12 | 1 4 13 | } 14 | } 15 | 16 | Lines mapping: 17 | 5 <-> 5 18 | -------------------------------------------------------------------------------- /testData/src/pkg/TestSynchronizedMapping.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.lang.Override; 4 | import java.lang.Runnable; 5 | 6 | public class TestSynchronizedMapping { 7 | public int test(int a) { 8 | synchronized (this) { 9 | a++; 10 | } 11 | return a++; 12 | } 13 | 14 | public void test2(String a) { 15 | System.out.println(a); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /testData/obfuscated/a9.java: -------------------------------------------------------------------------------- 1 | public class a9 extends RuntimeException { 2 | private static final long serialVersionUID = 1180433275280350911L; 3 | 4 | public a9(String var1, Throwable var2) { 5 | super(var1, var2); 6 | } 7 | 8 | public a9(Throwable var1) { 9 | super(var1); 10 | } 11 | 12 | public a9(String var1) { 13 | super(var1); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /testData/results/TestGroovyTrait.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import groovy.transform.Trait; 4 | import org.codehaus.groovy.transform.trait.Traits.Implemented; 5 | 6 | @Trait 7 | public interface TestGroovyTrait { 8 | @Implemented 9 | Object myMethod(); 10 | 11 | @Implemented 12 | Object getMyField(); 13 | 14 | @Implemented 15 | void setMyField(Object var1); 16 | } 17 | 18 | -------------------------------------------------------------------------------- /testData/src/pkg/TryToPreserveCast.java: -------------------------------------------------------------------------------- 1 | import java.nio.Buffer; 2 | import java.nio.ByteBuffer; 3 | 4 | public class TryToPreserveCast { 5 | public TryToPreserveCast() { 6 | } 7 | 8 | public static void main(String[] args) { 9 | 10 | } 11 | 12 | public void test(ByteBuffer buffer) { 13 | ((Buffer) buffer).limit(1); 14 | (buffer).limit(2); 15 | } 16 | } -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordAnnoGetter.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | public record TestHideConstructorRecordAnnoGetter(String b2) { 7 | @Anno 8 | public String b2() { 9 | return b2; 10 | } 11 | } 12 | 13 | @Target({ElementType.METHOD}) 14 | @interface Anno { 15 | } 16 | -------------------------------------------------------------------------------- /testData/src/pkg/TestMemberAnnotations.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.lang.annotation.*; 4 | 5 | class TestMemberAnnotations { 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @interface A { String value() default ""; } 8 | 9 | @A("const") public static final int CONST = 42; 10 | @A("field") private int f; 11 | 12 | @A("return") private int f(@A("arg") int i) { return i + f + CONST; } 13 | } -------------------------------------------------------------------------------- /testData/obfuscated/y.java: -------------------------------------------------------------------------------- 1 | public class y

{ 2 | private P a; 3 | private Class

b; 4 | private boolean c; 5 | public static int d; 6 | 7 | private y(Class

var1) { 8 | this.b = var1; 9 | } 10 | 11 | public static

y

a(Class

var0) { 12 | return new y

(var0); 13 | } 14 | 15 | public P a() { 16 | // $FF: Couldn't be decompiled 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /testData/results/TestMethodReferenceLetterClass.dec: -------------------------------------------------------------------------------- 1 | import java.util.function.Consumer; 2 | 3 | public class TestMethodReferenceLetterClass { 4 | void boo() { 5 | Consumer var1 = R::foo;// 21 6 | }// 22 7 | } 8 | 9 | class 'TestMethodReferenceLetterClass' { 10 | method 'boo ()V' { 11 | 5 4 12 | 6 5 13 | } 14 | } 15 | 16 | Lines mapping: 17 | 21 <-> 5 18 | 22 <-> 6 19 | -------------------------------------------------------------------------------- /testData/src/pkg/TestIntVarMerge.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestIntVarMerge { 4 | public int test1() { 5 | int hash = 7; 6 | hash = 23 * hash; 7 | hash *= 23; 8 | return hash; 9 | } 10 | 11 | public void test2() { 12 | int k = 3; 13 | System.out.println(k); 14 | k++; 15 | System.out.println(k); 16 | ++k; 17 | System.out.println(k); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testData/src/pkg/TestWithoutDebugName.java: -------------------------------------------------------------------------------- 1 | package org.example; 2 | 3 | import java.util.LinkedList; 4 | import java.util.Queue; 5 | 6 | public class TestWithoutDebugName { 7 | 8 | private Queue queue = new LinkedList<>(); 9 | 10 | public Queue getQueue() { 11 | return queue; 12 | } 13 | 14 | public void setQueue(Queue queue) { 15 | this.queue = queue; 16 | } 17 | } -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordAnnoParameterAndType.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | import java.util.Map; 6 | 7 | public record TestHideConstructorRecordAnnoParameterAndType(@Anno Map b2) { 8 | } 9 | 10 | @Target({ElementType.TYPE_USE, ElementType.PARAMETER}) 11 | @interface Anno { 12 | } 13 | -------------------------------------------------------------------------------- /testData/src/pkg/TestAbstractMethods.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.lang.Override; 4 | import java.lang.Runnable; 5 | 6 | public abstract class TestAbstractMethods { 7 | 8 | public abstract void foo(); 9 | 10 | public int test(int a) { 11 | return a; 12 | } 13 | 14 | protected abstract void foo1(); 15 | 16 | public void test2(String a) { 17 | System.out.println(a); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testData/src/records/TestRecordAnno.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.*; 4 | 5 | public record TestRecordAnno(@TA @RC int x, @M @P int y) {} 6 | 7 | @Target(ElementType.TYPE_USE) 8 | @interface TA {} 9 | 10 | @Target(ElementType.RECORD_COMPONENT) 11 | @interface RC {} 12 | 13 | @Target(ElementType.METHOD) 14 | @interface M {} 15 | 16 | @Target(ElementType.PARAMETER) 17 | @interface P {} 18 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/struct/IDecompiledData.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.struct; 3 | 4 | public interface IDecompiledData { 5 | 6 | String getClassEntryName(StructClass cl, String entryname); 7 | 8 | String getClassContent(StructClass cl); 9 | } 10 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/main/extern/IBytecodeProvider.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.main.extern; 3 | 4 | import java.io.IOException; 5 | 6 | public interface IBytecodeProvider { 7 | byte[] getBytecode(String externalPath, String internalPath) throws IOException; 8 | } 9 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/main/extern/IVariableNamingFactory.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. 2 | package org.jetbrains.java.decompiler.main.extern; 3 | 4 | import org.jetbrains.java.decompiler.struct.StructMethod; 5 | 6 | public interface IVariableNamingFactory { 7 | IVariableNameProvider createFactory(StructMethod structMethod); 8 | } 9 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/modules/decompiler/decompose/IGraphNode.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.modules.decompiler.decompose; 3 | 4 | import java.util.List; 5 | 6 | public interface IGraphNode { 7 | List getPredecessorNodes(); 8 | } 9 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/main/extern/ClassFormatException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.main.extern; 3 | 4 | public class ClassFormatException extends RuntimeException { 5 | public ClassFormatException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordAnno.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.*; 4 | 5 | public record TestHideConstructorRecordAnno(@TA @RC int x, @M @P int y) {} 6 | 7 | @Target(ElementType.TYPE_USE) 8 | @interface TA {} 9 | 10 | @Target(ElementType.RECORD_COMPONENT) 11 | @interface RC {} 12 | 13 | @Target(ElementType.METHOD) 14 | @interface M {} 15 | 16 | @Target(ElementType.PARAMETER) 17 | @interface P {} 18 | -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordAnnoConstructor.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | public record TestHideConstructorRecordAnnoConstructor(String b2) { 7 | @Anno 8 | public TestHideConstructorRecordAnnoConstructor(String b2) { 9 | this.b2 = b2; 10 | } 11 | } 12 | 13 | @Target({ElementType.CONSTRUCTOR}) 14 | @interface Anno { 15 | } 16 | -------------------------------------------------------------------------------- /testData/obfuscated/l.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.Collection; 3 | import java.util.List; 4 | 5 | public class l implements k { 6 | private List a = new ArrayList(); 7 | 8 | public void a(T var1) { 9 | this.a.add(var1); 10 | } 11 | 12 | public void a(Collection var1) { 13 | this.a.addAll(var1); 14 | } 15 | 16 | public List a() { 17 | return this.a; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testData/results/TestInterfaceMethods.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public interface TestInterfaceMethods { 4 | static void staticMethod() { 5 | }// 4 6 | 7 | default void defaultMethod() { 8 | }// 5 9 | } 10 | 11 | class 'pkg/TestInterfaceMethods' { 12 | method 'staticMethod ()V' { 13 | 0 4 14 | } 15 | 16 | method 'defaultMethod ()V' { 17 | 0 7 18 | } 19 | } 20 | 21 | Lines mapping: 22 | 4 <-> 5 23 | 5 <-> 8 24 | -------------------------------------------------------------------------------- /testData/src/java9/sample.module/module-info.java: -------------------------------------------------------------------------------- 1 | import sample.pkg1.TestModuleAnno; 2 | 3 | @TestModuleAnno("...") 4 | module sample.module { 5 | requires java.desktop; 6 | 7 | uses java.util.spi.ToolProvider; 8 | 9 | provides sample.pkg1.TestService with sample.pkg1.TestServiceImpl; 10 | 11 | exports sample.pkg1; 12 | 13 | exports sample.pkg2 to java.base; 14 | 15 | opens sample.pkg1; 16 | 17 | opens sample.pkg2 to java.base; 18 | } 19 | -------------------------------------------------------------------------------- /testData/src/pkg/TestThrowException.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.lang.Override; 4 | import java.lang.Runnable; 5 | 6 | public class TestThrowException { 7 | Runnable r; 8 | public TestThrowException(int a) { 9 | if (a > 0) { 10 | throw new IllegalArgumentException("xxx"); 11 | } 12 | r = new Runnable() { 13 | @Override 14 | public void run() { 15 | int a = 5; 16 | } 17 | }; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordAnnoGetterType.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | import java.util.Map; 6 | 7 | public record TestHideConstructorRecordAnnoGetterType(Map<@Anno String, String> b2) { 8 | public Map b2() { 9 | return b2; 10 | } 11 | } 12 | 13 | @Target({ElementType.TYPE_USE}) 14 | @interface Anno { 15 | } 16 | -------------------------------------------------------------------------------- /testData/obfuscated/m.java: -------------------------------------------------------------------------------- 1 | import java.util.Collection; 2 | import java.util.LinkedHashSet; 3 | import java.util.Set; 4 | 5 | public class m implements k { 6 | private Set a = new LinkedHashSet(); 7 | 8 | public void a(T var1) { 9 | this.a.add(var1); 10 | } 11 | 12 | public void a(Collection var1) { 13 | this.a.addAll(var1); 14 | } 15 | 16 | public Set a() { 17 | return this.a; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testData/results/GenericNestedTypeAnnotations.dec: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class GenericNestedTypeAnnotations { 4 | @A V.U.T t1; 5 | V.@B U.T t2; 6 | V.U.@C T t3; 7 | V.U<@D String>.T t4; 8 | V.U.T<@E Boolean, @F Integer, Float> t5; 9 | @L V.U.T<@L Boolean, @F Integer, Float> t6; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /testData/obfuscated/z.java: -------------------------------------------------------------------------------- 1 | import java.util.List; 2 | 3 | public class z

{ 4 | private List

a; 5 | private Class

b; 6 | 7 | private z(Class

var1) { 8 | this.b = var1; 9 | } 10 | 11 | public static

z

a(Class

var0) { 12 | return new z

(var0); 13 | } 14 | 15 | public List

a() { 16 | // $FF: Couldn't be decompiled 17 | } 18 | 19 | public List

b() { 20 | return t.b(this.b); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /testData/results/module-info.dec: -------------------------------------------------------------------------------- 1 | import sample.pkg1.TestModuleAnno; 2 | 3 | @TestModuleAnno("...") 4 | module sample.module { 5 | requires java.desktop; 6 | 7 | exports sample.pkg1; 8 | exports sample.pkg2 to 9 | java.base; 10 | 11 | opens sample.pkg1; 12 | opens sample.pkg2 to 13 | java.base; 14 | 15 | uses java.util.spi.ToolProvider; 16 | 17 | provides sample.pkg1.TestService with 18 | sample.pkg1.TestServiceImpl; 19 | } 20 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/struct/consts/PooledConstant.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.struct.consts; 3 | 4 | public class PooledConstant { 5 | public final int type; 6 | 7 | public PooledConstant(int type) { 8 | this.type = type; 9 | } 10 | 11 | public void resolveConstant(ConstantPool pool) { } 12 | } 13 | -------------------------------------------------------------------------------- /testData/src/pkg/TestNestedCalls.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.util.function.BiFunction; 4 | 5 | public class TestNestedCalls { 6 | public static void main(String[] args) { 7 | 8 | } 9 | 10 | V merge(V a1, BiFunction func, V a2) { 11 | Object var5 = a2 == null ? a1 : func.apply(a2, a1); 12 | if (var5 == null) { 13 | return a2; 14 | } 15 | return (V) var5; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/GenericNestedTypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class GenericNestedTypeAnnotations { 4 | @A V.U.T t1; 5 | V.@B U.T t2; 6 | V.U.@C T t3; 7 | V.U<@D String>.T t4; 8 | V.U.T<@E Boolean, @F Integer, Float> t5; 9 | @L V.U.T<@L Boolean, @F Integer, Float> t6; 10 | } 11 | -------------------------------------------------------------------------------- /testData/src/pkg/TestGenericArgs.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestGenericArgs { 4 | private static void genericSingle(Class param) { } 5 | 6 | private static void genericVarArgs(Class... param) { } 7 | 8 | private static void genericArray(Class[] param) { } 9 | 10 | private static void single(Class param) { } 11 | 12 | private static void varArgs(Class... param) { } 13 | 14 | private static void array(Class[] param) { } 15 | } -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/ClassNameConstants.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. 2 | package org.jetbrains.java.decompiler; 3 | 4 | public interface ClassNameConstants { 5 | String JAVA_LANG_STRING = "java/lang/String"; 6 | String JAVA_LANG_CHARACTER = "java/lang/Character"; 7 | String JAVA_UTIL_OBJECTS = "java/util/Objects"; 8 | String JAVA_LANG_OBJECT = "java/lang/Object"; 9 | } 10 | -------------------------------------------------------------------------------- /testData/results/TestAnnotationExtendObjectClass.dec: -------------------------------------------------------------------------------- 1 | package org.example; 2 | 3 | import org.jetbrains.annotations.Nullable; 4 | 5 | public class TestAnnotationExtendObjectClass { 6 | public static void main(String[] args) { 7 | }// 8 8 | } 9 | 10 | class 'org/example/TestAnnotationExtendObjectClass' { 11 | method 'main ([Ljava/lang/String;)V' { 12 | 0 6 13 | } 14 | } 15 | 16 | Lines mapping: 17 | 8 <-> 7 18 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordAnnoGetter.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordAnnoGetter(String b2) { 4 | @Anno 5 | public String b2() { 6 | return this.b2;// 9 7 | } 8 | } 9 | 10 | class 'records/TestHideConstructorRecordAnnoGetter' { 11 | method 'b2 ()Ljava/lang/String;' { 12 | 0 5 13 | 1 5 14 | 2 5 15 | 3 5 16 | 4 5 17 | } 18 | } 19 | 20 | Lines mapping: 21 | 9 <-> 6 22 | -------------------------------------------------------------------------------- /testData/src/pkg/TestClassFields.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestClassFields { 4 | private static class Inner { 5 | private static int staticMutable; 6 | } 7 | 8 | private static int[] sizes; 9 | private static String[] names; 10 | 11 | private static final int SIZE; 12 | 13 | static { 14 | names = new String[]{"name1", "name2"}; 15 | sizes = new int[names.length]; 16 | 17 | Inner.staticMutable = 3; 18 | SIZE = Inner.staticMutable; 19 | } 20 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestLocalClass.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.lang.Override; 4 | import java.lang.Runnable; 5 | 6 | public abstract class TestLocalClass { 7 | void foo() { 8 | int a =5; 9 | class Local{ 10 | void foo() { 11 | int b = 5; 12 | int v = 5; 13 | } 14 | }; 15 | Local l = new Local(); 16 | l.foo(); 17 | } 18 | 19 | void boo() { 20 | int a =5; 21 | } 22 | 23 | void zoo() { 24 | int a =5; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /testData/obfuscated/ar.java: -------------------------------------------------------------------------------- 1 | public class ar extends ap { 2 | private final String d; 3 | private final double e; 4 | 5 | public ar(String var1, String var2, String var3, double var4) { 6 | super(var1, var2); 7 | this.d = var3; 8 | this.e = var4; 9 | } 10 | 11 | public String c() { 12 | return this.d; 13 | } 14 | 15 | public double d() { 16 | return this.e; 17 | } 18 | 19 | public Double e() { 20 | return null; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/modules/decompiler/decompose/IGraph.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.modules.decompiler.decompose; 3 | 4 | import java.util.List; 5 | import java.util.Set; 6 | 7 | public interface IGraph { 8 | 9 | List getReversePostOrderList(); 10 | 11 | Set getRoots(); 12 | } 13 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/struct/gen/generics/GenericFieldDescriptor.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. 2 | package org.jetbrains.java.decompiler.struct.gen.generics; 3 | 4 | import org.jetbrains.java.decompiler.struct.gen.VarType; 5 | 6 | public class GenericFieldDescriptor { 7 | public final VarType type; 8 | 9 | public GenericFieldDescriptor(VarType type) { 10 | this.type = type; 11 | } 12 | } -------------------------------------------------------------------------------- /testData/obfuscated/au.java: -------------------------------------------------------------------------------- 1 | class au extends ap { 2 | private long d; 3 | private long e; 4 | final an f; 5 | 6 | au(an var1, String var2, String var3) { 7 | super(var2, var3); 8 | this.f = var1; 9 | this.d = 0L; 10 | this.e = 0L; 11 | } 12 | 13 | public double d() { 14 | // $FF: Couldn't be decompiled 15 | } 16 | 17 | public String c() { 18 | return "%"; 19 | } 20 | 21 | public Double e() { 22 | return 100.0; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /testData/obfuscated/av.java: -------------------------------------------------------------------------------- 1 | class av extends ap { 2 | private long d; 3 | private long e; 4 | final an f; 5 | 6 | av(an var1, String var2, String var3) { 7 | super(var2, var3); 8 | this.f = var1; 9 | this.d = 0L; 10 | this.e = 0L; 11 | } 12 | 13 | public double d() { 14 | // $FF: Couldn't be decompiled 15 | } 16 | 17 | public String c() { 18 | return "%"; 19 | } 20 | 21 | public Double e() { 22 | return 100.0; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /testData/src/records/TestHideConstructorRecordAnnoParameterType.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | import java.util.Map; 6 | 7 | public record TestHideConstructorRecordAnnoParameterType(Map<@Anno String, String> b2) { 8 | public TestHideConstructorRecordAnnoParameterType(Map b2) { 9 | this.b2 = b2; 10 | } 11 | } 12 | 13 | @Target({ElementType.TYPE_USE}) 14 | @interface Anno { 15 | } 16 | -------------------------------------------------------------------------------- /testData/src/pkg/TestAmbiguousCall.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestAmbiguousCall { 4 | void m1(RuntimeException e, String s) { } 5 | void m1(IllegalArgumentException e, String s) { } 6 | 7 | void test() { 8 | IllegalArgumentException iae = new IllegalArgumentException(); 9 | m1((RuntimeException)iae, "RE"); 10 | m1(iae, "IAE"); 11 | 12 | RuntimeException re = new IllegalArgumentException(); 13 | m1(re, "RE"); 14 | m1((IllegalArgumentException)re, "IAE"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /testData/src/pkg/TestNestedInheritor.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestNestedInheritor { 4 | 5 | public static class Parent { 6 | public class NestedParent { 7 | 8 | } 9 | } 10 | 11 | public static class Child extends Parent { 12 | public class NestedChild extends Child { 13 | Integer myInteger; 14 | 15 | public NestedChild(Integer i) { 16 | myInteger = i; 17 | } 18 | } 19 | } 20 | 21 | 22 | public static void main(String[] args) { 23 | } 24 | } -------------------------------------------------------------------------------- /testData/results/GenericArrayNestedTypeAnnotations.dec: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class GenericArrayNestedTypeAnnotations { 4 | @A V.U.T @A [] t1; 5 | V.@B U.T[] t2; 6 | V.U.@C T @B [] @D [] t3; 7 | V.U<@D String>.T @F [] t4; 8 | @B V.@A U<@A String>.@A T<@E Boolean, @F Integer, Float>[] t5; 9 | @L V.U.T[][] t6; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /testData/results/TestAnonymousParamNames.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestAnonymousParamNames { 4 | private final Clazz reference = new Clazz(0L, false) { 5 | }; 6 | 7 | private class Clazz { 8 | public Clazz(long paramL, boolean paramB) { 9 | }// 25 10 | } 11 | } 12 | 13 | class 'pkg/TestAnonymousParamNames$Clazz' { 14 | method ' (Lpkg/TestAnonymousParamNames;JZ)V' { 15 | 9 8 16 | } 17 | } 18 | 19 | Lines mapping: 20 | 25 <-> 9 21 | Not mapped: 22 | 24 23 | -------------------------------------------------------------------------------- /testData/obfuscated/ao.java: -------------------------------------------------------------------------------- 1 | public class ao implements Comparable { 2 | protected String a; 3 | protected Thread.State b; 4 | protected double c; 5 | protected long d; 6 | protected long e; 7 | 8 | public String a() { 9 | return this.a; 10 | } 11 | 12 | public Thread.State b() { 13 | return this.b; 14 | } 15 | 16 | public double c() { 17 | return this.c; 18 | } 19 | 20 | public int a(ao param1) { 21 | // $FF: Couldn't be decompiled 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/GenericArrayNestedTypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class GenericArrayNestedTypeAnnotations { 4 | @A V.U.T @A [] t1; 5 | V.@B U.T[] t2; 6 | V.U.@C T @B [] @D [] t3; 7 | V.U<@D String>.T @F [] t4; 8 | @B V.@A U<@A String>.@A T<@E Boolean, @F Integer, Float>[] t5; 9 | @L V.U.T[][] t6; 10 | } 11 | -------------------------------------------------------------------------------- /testData/results/TestHelloWorld.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestHelloWorld { 4 | public static void main(String[] var0) { 5 | System.out.println("hello world");// 5 6 | }// 6 7 | } 8 | 9 | class 'pkg/TestHelloWorld' { 10 | method 'main ([Ljava/lang/String;)V' { 11 | 0 4 12 | 1 4 13 | 2 4 14 | 3 4 15 | 4 4 16 | 5 4 17 | 6 4 18 | 7 4 19 | 8 5 20 | } 21 | } 22 | 23 | Lines mapping: 24 | 5 <-> 5 25 | 6 <-> 6 -------------------------------------------------------------------------------- /testData/src/pkg/TestInnerClassConstructor.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestInnerClassConstructor { 4 | void l() { 5 | new Inner("text"); 6 | } 7 | 8 | void m() { 9 | new Another(3, 4); 10 | } 11 | 12 | void n(String s) { 13 | System.out.println("n(): " + s); 14 | } 15 | 16 | final class Inner { 17 | private Inner(String s) { 18 | n(s); 19 | } 20 | } 21 | 22 | private class Another { 23 | private Another(int a, int b) { 24 | n(a + "+" + b); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/ArrayTypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package typeAnnotations; 2 | 3 | public class ArrayTypeAnnotations implements ParentInterface { 4 | @A String[] s1 = new String[0]; 5 | String @B [] s2 = new String[0]; 6 | String @C [][] s3 = new String[0][0]; 7 | String [] @D [] s4 = new String[0][0]; 8 | @A String[] s5() { return null; } 9 | String @B [] s6() { return null; } 10 | @A String @B [] @C [] @D [] s7() { return null; } 11 | @L String @L [][] @L [] s8() { return null; } 12 | } 13 | -------------------------------------------------------------------------------- /testData/results/TestStaticNameClash.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestStaticNameClash { 4 | public static String property; 5 | 6 | public static void setProperty(String property) { 7 | TestStaticNameClash.property = property;// 8 8 | }// 9 9 | } 10 | 11 | class 'pkg/TestStaticNameClash' { 12 | method 'setProperty (Ljava/lang/String;)V' { 13 | 0 6 14 | 1 6 15 | 2 6 16 | 3 6 17 | 4 7 18 | } 19 | } 20 | 21 | Lines mapping: 22 | 8 <-> 7 23 | 9 <-> 8 24 | -------------------------------------------------------------------------------- /testData/src/patterns/TestInstanceofPatternNotSupported.java: -------------------------------------------------------------------------------- 1 | package decompiler; 2 | 3 | public class TestInstanceofPatternNotSupported { 4 | void typePattern(Object str) { 5 | if (!(str instanceof String)) { 6 | System.out.println("no"); 7 | return; 8 | } 9 | String s = (String) str; 10 | if (s.length() > 3) { 11 | System.out.println(s); 12 | } else if (s.startsWith("a")) { 13 | System.out.println(s + ""); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /testData/src/pkg/TestPrimitiveNarrowing.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestPrimitiveNarrowing { 4 | 5 | TestPrimitiveNarrowing(Short value) { 6 | } 7 | 8 | static void invocations() { 9 | withInteger(null); 10 | withShort(null); 11 | withByte(null); 12 | new TestPrimitiveNarrowing(null); 13 | } 14 | 15 | static void withByte(Byte defaultValue) { 16 | } 17 | 18 | static void withInteger(Integer defaultValue) { 19 | } 20 | 21 | static void withShort(Short defaultValue) { 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /testData/src/pkg/TestDebugSymbols.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | // compile with `javac -g ...` 4 | class TestDebugSymbols { 5 | private int m() { 6 | String text = "text"; 7 | long prolonged = 42L; 8 | float decimated = prolonged / 10.0f; 9 | double doubled = 2 * decimated; 10 | return (text + ":" + prolonged + ":" + decimated + ":" + doubled).length(); 11 | } 12 | 13 | public void test() { 14 | int i = 0; 15 | int count = 0; 16 | do { 17 | i += count++; 18 | } while( i < 10 ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /testData/src/pkg/TypeAnnotations.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.lang.annotation.*; 4 | import java.util.*; 5 | 6 | class TypeAnnotations { 7 | @Target(ElementType.TYPE_USE) 8 | @interface TA { String value(); } 9 | 10 | @Target({ElementType.FIELD, ElementType.TYPE_USE}) 11 | @interface MixA { String value(); } 12 | 13 | private @TA("field type") String f1; 14 | 15 | private @MixA("field and type") String f2; 16 | 17 | @TA("return type") int m1() { 18 | return 42; 19 | } 20 | 21 | void m2(@TA("parameter") int i) { } 22 | } -------------------------------------------------------------------------------- /testData/obfuscated/a0.java: -------------------------------------------------------------------------------- 1 | import java.util.List; 2 | import javax.xml.xpath.XPathExpressionException; 3 | 4 | public interface a0 { 5 | a0 a(String var1) throws XPathExpressionException; 6 | 7 | List b(String var1) throws XPathExpressionException; 8 | 9 | a0[] c(String var1) throws XPathExpressionException; 10 | 11 | String d(String var1) throws XPathExpressionException; 12 | 13 | o e(String var1) throws XPathExpressionException; 14 | 15 | boolean f(String var1) throws XPathExpressionException; 16 | 17 | String a(); 18 | } 19 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordAnnoGetterType.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.util.Map; 4 | 5 | public record TestHideConstructorRecordAnnoGetterType(Map<@Anno String, String> b2) { 6 | public Map b2() { 7 | return this.b2;// 9 8 | } 9 | } 10 | 11 | class 'records/TestHideConstructorRecordAnnoGetterType' { 12 | method 'b2 ()Ljava/util/Map;' { 13 | 0 6 14 | 1 6 15 | 2 6 16 | 3 6 17 | 4 6 18 | } 19 | } 20 | 21 | Lines mapping: 22 | 9 <-> 7 23 | -------------------------------------------------------------------------------- /testData/src/java11/TestJava11StringConcatSpecialChars.java: -------------------------------------------------------------------------------- 1 | package java11; 2 | 3 | public class TestJava11StringConcatSpecialChars { 4 | 5 | public String testOrdinaryInfix(String first, String second, String last) { 6 | return "BEGIN " + first + " (first infix) " + second + " (second infix) " + last + " END"; 7 | } 8 | 9 | public String testSpecialCharsInfix(String first, String second, String last) { 10 | return "BEGIN " + first + " (first\u0001infix) " + second + " (second\u0002infix) " + last + " END"; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestInner2.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestInner2 { 4 | private TestInner2() {} 5 | private TestInner2(int a) {} 6 | 7 | class Another extends TestInner2 { 8 | Another() { 9 | } 10 | } 11 | 12 | static class AnotherStatic extends TestInner2 { 13 | AnotherStatic() { 14 | } 15 | } 16 | 17 | class Another2 extends TestInner2 { 18 | Another2() { 19 | super(2); 20 | } 21 | } 22 | 23 | static class AnotherStatic2 extends TestInner2 { 24 | AnotherStatic2() { 25 | super(2); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /testData/src/pkg/TestLambda.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.util.function.Consumer; 4 | 5 | public interface TestLambda { 6 | public static void main(String[] args) { 7 | Consumer a = b -> System.out.println(b); 8 | Consumer a1 = b -> { 9 | System.out.println(b); 10 | System.out.println(b); 11 | System.out.println(b); 12 | }; 13 | Consumer a2 = System.out::println; 14 | Consumer a3 = TestLambda::test; 15 | } 16 | 17 | 18 | static void test(String a) { 19 | System.out.println(a); 20 | } 21 | } -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordDifferentTypes.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordDifferentTypes(String a, int... l) { 4 | public TestHideConstructorRecordDifferentTypes(String a, int l) { 5 | this(a, l);// 5 6 | }// 6 7 | } 8 | 9 | class 'records/TestHideConstructorRecordDifferentTypes' { 10 | method ' (Ljava/lang/String;I)V' { 11 | 1 4 12 | 7 4 13 | 9 4 14 | a 4 15 | b 4 16 | c 5 17 | } 18 | } 19 | 20 | Lines mapping: 21 | 5 <-> 5 22 | 6 <-> 6 23 | -------------------------------------------------------------------------------- /testData/src/typeAnnotations/NestedTypeAnnotationsParameters.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class NestedTypeAnnotationsParameters { 4 | public static void doSomething( 5 | @A Z.Y.X.W w1, 6 | Z.@B Y.X.W w2, 7 | Z.Y.@C X.W w3, 8 | Z.Y.X.@D W w4, 9 | @A Z.@B Y.@C X.@D W w5, 10 | @L Z.Y.X.W w6, 11 | P.@A Q.R r1, 12 | P.Q.@B R r2, 13 | S.T.@C U u1, 14 | T.@A Y.U.I.O o1 15 | ) { 16 | 17 | } 18 | 19 | public static void main(String[] args) { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordAnnoConstructor.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record TestHideConstructorRecordAnnoConstructor(String b2) { 4 | @Anno 5 | public TestHideConstructorRecordAnnoConstructor(String b2) { 6 | this.b2 = b2;// 9 7 | }// 10 8 | } 9 | 10 | class 'records/TestHideConstructorRecordAnnoConstructor' { 11 | method ' (Ljava/lang/String;)V' { 12 | 4 5 13 | 5 5 14 | 6 5 15 | 7 5 16 | 8 5 17 | 9 6 18 | } 19 | } 20 | 21 | Lines mapping: 22 | 9 <-> 6 23 | 10 <-> 7 24 | Not mapped: 25 | 8 26 | -------------------------------------------------------------------------------- /testData/results/TestInheritanceChainCycle.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestInheritanceChainCycle extends TestInheritanceChainCycle { 4 | public void printMessage() { 5 | System.out.println("Hello, bug!");// 21 22 23 6 | }// 24 7 | } 8 | 9 | class 'pkg/TestInheritanceChainCycle' { 10 | method 'printMessage ()V' { 11 | 0 4 12 | 1 4 13 | 2 4 14 | 3 4 15 | 4 4 16 | 5 4 17 | 6 4 18 | 7 4 19 | 8 5 20 | } 21 | } 22 | 23 | Lines mapping: 24 | 21 <-> 5 25 | 22 <-> 5 26 | 23 <-> 5 27 | 24 <-> 6 28 | -------------------------------------------------------------------------------- /testData/src/pkg/TestEnumInit.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestEnumInit { 4 | 5 | public static void main(String[] args) { 6 | 7 | } 8 | 9 | enum TestEnum { 10 | A, B, C; 11 | } 12 | 13 | enum TestEnum1 { 14 | 15 | A(0), 16 | B(1), 17 | C(2); 18 | 19 | private final int anInt; 20 | 21 | TestEnum1(int i) { 22 | anInt = i; 23 | } 24 | } 25 | 26 | enum TestEnum2 { 27 | 28 | A(0, "0"), 29 | B(1, "1"), 30 | C(2, "2"); 31 | 32 | private final int anInt; 33 | 34 | TestEnum2(int i, String s) { 35 | anInt = i; 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestFinally.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | 4 | import java.util.List; 5 | 6 | public class TestFinally { 7 | 8 | public class A{ 9 | 10 | } 11 | public void test(List> a) { 12 | try { 13 | testThrow(); 14 | 15 | }catch (Exception e) { 16 | e.printStackTrace(); 17 | } catch (Throwable e) { 18 | throw new RuntimeException(e); 19 | } 20 | finally { 21 | for (A s : a) { 22 | String a2 = s.toString(); 23 | System.out.println(a2); 24 | } 25 | } 26 | } 27 | 28 | public void testThrow() { 29 | 30 | } 31 | } -------------------------------------------------------------------------------- /testData/obfuscated/a.java: -------------------------------------------------------------------------------- 1 | import java.util.Date; 2 | import java.util.Iterator; 3 | import java.util.List; 4 | 5 | public interface a { 6 | String a(); 7 | 8 | int b(); 9 | 10 | int c(); 11 | 12 | long d(); 13 | 14 | List e(); 15 | 16 | Long f(); 17 | 18 | List g(); 19 | 20 | Date h(); 21 | 22 | void i(); 23 | 24 | void j(); 25 | 26 | V a(K var1); 27 | 28 | V a(K var1, f var2); 29 | 30 | void a(K var1, V var2); 31 | 32 | void b(K var1); 33 | 34 | boolean c(K var1); 35 | 36 | Iterator k(); 37 | 38 | List> l(); 39 | } 40 | -------------------------------------------------------------------------------- /testData/results/TestDynamicConstantPoolEntry.dec: -------------------------------------------------------------------------------- 1 | package java11; 2 | 3 | public class TestDynamicConstantPoolEntry { 4 | public static void main(String... var0) { 5 | System.out.println("This class file contains constant pool entry of type CONSTANT_Dynamic, not used in the bytecode."); 6 | } 7 | } 8 | 9 | class 'java11/TestDynamicConstantPoolEntry' { 10 | method 'main ([Ljava/lang/String;)V' { 11 | 0 4 12 | 1 4 13 | 2 4 14 | 3 4 15 | 4 4 16 | 5 4 17 | 6 4 18 | 7 4 19 | 8 5 20 | } 21 | } 22 | 23 | Lines mapping: 24 | -------------------------------------------------------------------------------- /testData/results/TestExtendsList.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestExtendsList { 4 | static > T m1(T var0) { 5 | return null;// 20 6 | } 7 | 8 | static > T m2(T var0) { 9 | return null;// 24 10 | } 11 | } 12 | 13 | class 'pkg/TestExtendsList' { 14 | method 'm1 (Ljava/lang/Comparable;)Ljava/lang/Comparable;' { 15 | 0 4 16 | 1 4 17 | } 18 | 19 | method 'm2 (Ljava/lang/Object;)Ljava/lang/Object;' { 20 | 0 8 21 | 1 8 22 | } 23 | } 24 | 25 | Lines mapping: 26 | 20 <-> 5 27 | 24 <-> 9 28 | -------------------------------------------------------------------------------- /testData/src/pkg/TestSwitchWrapReturnJavac.java: -------------------------------------------------------------------------------- 1 | class TestSwitchWrapReturnJavac { 2 | sealed interface S { 3 | record A() implements S { 4 | } 5 | 6 | record B() implements S { 7 | } 8 | 9 | record C() implements S { 10 | } 11 | } 12 | 13 | public static void main(String[] args) { 14 | System.out.println(test(new S.A())); 15 | } 16 | 17 | private static int test(S a) { 18 | switch (a) { 19 | case S.A a1 -> { 20 | return 1; 21 | } 22 | case S.B b -> { 23 | return 2; 24 | } 25 | case S.C c -> { 26 | return 3; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /testData/results/TestHideConstructorRecordAnnoParameterType.dec: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import java.util.Map; 4 | 5 | public record TestHideConstructorRecordAnnoParameterType(Map<@Anno String, String> b2) { 6 | public TestHideConstructorRecordAnnoParameterType(Map b2) { 7 | this.b2 = b2;// 9 8 | }// 10 9 | } 10 | 11 | class 'records/TestHideConstructorRecordAnnoParameterType' { 12 | method ' (Ljava/util/Map;)V' { 13 | 4 6 14 | 5 6 15 | 6 6 16 | 7 6 17 | 8 6 18 | 9 7 19 | } 20 | } 21 | 22 | Lines mapping: 23 | 9 <-> 7 24 | 10 <-> 8 25 | Not mapped: 26 | 8 27 | -------------------------------------------------------------------------------- /testData/results/TestUnionType.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.io.Serializable; 4 | import java.util.Comparator; 5 | 6 | public interface TestUnionType { 7 | static Comparator comparingInt() { 8 | return (Comparator & Serializable)((c1, c2) -> {// 8 9 | return 1; 10 | })); 11 | } 12 | } 13 | 14 | class 'pkg/TestUnionType' { 15 | method 'lambda$comparingInt$ff46620a$1 (Ljava/lang/Object;Ljava/lang/Object;)I' { 16 | 0 8 17 | 1 8 18 | } 19 | 20 | method 'comparingInt ()Ljava/util/Comparator;' { 21 | 5 7 22 | 8 7 23 | b 7 24 | } 25 | } 26 | 27 | Lines mapping: 28 | 8 <-> 8 29 | -------------------------------------------------------------------------------- /testData/results/TestLocalsSignature.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class TestLocalsSignature { 7 | public static void main(String[] args) { 8 | List s = new ArrayList();// 24 9 | s.add("xxx");// 25 10 | }// 26 11 | } 12 | 13 | class 'pkg/TestLocalsSignature' { 14 | method 'main ([Ljava/lang/String;)V' { 15 | 7 7 16 | 8 8 17 | 9 8 18 | a 8 19 | b 8 20 | c 8 21 | d 8 22 | e 8 23 | f 8 24 | 11 9 25 | } 26 | } 27 | 28 | Lines mapping: 29 | 24 <-> 8 30 | 25 <-> 9 31 | 26 <-> 10 32 | -------------------------------------------------------------------------------- /testData/results/TestPrivateEmptyConstructor.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public final class TestPrivateEmptyConstructor { 4 | private TestPrivateEmptyConstructor() { 5 | }// 4 6 | 7 | public final void test() { 8 | System.out.println("test");// 7 9 | }// 8 10 | } 11 | 12 | class 'pkg/TestPrivateEmptyConstructor' { 13 | method ' ()V' { 14 | 4 4 15 | } 16 | 17 | method 'test ()V' { 18 | 0 7 19 | 1 7 20 | 2 7 21 | 3 7 22 | 4 7 23 | 5 7 24 | 6 7 25 | 7 7 26 | 8 8 27 | } 28 | } 29 | 30 | Lines mapping: 31 | 4 <-> 5 32 | 7 <-> 8 33 | 8 <-> 9 34 | -------------------------------------------------------------------------------- /testData/src/pkg/TestCustomSyntheticRecords.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | 4 | public class TestCustomSyntheticRecords { 5 | 6 | public record CustomGetter(String a, String a22) { 7 | @Override 8 | public String a() { 9 | return a + "1"; 10 | } 11 | } 12 | 13 | public record CustomCompactConstructor(String a, String a22) { 14 | public CustomCompactConstructor { 15 | if (a.equals("a")) { 16 | throw new AssertionError(); 17 | } 18 | } 19 | } 20 | public record CustomFullConstructor(String a, String a22) { 21 | public CustomFullConstructor(String a, String a22) { 22 | this.a = a; 23 | this.a22 = a; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestAnnotationExtendWildcard.java: -------------------------------------------------------------------------------- 1 | package org.example; 2 | 3 | import org.jetbrains.annotations.Nullable; 4 | 5 | import java.util.List; 6 | 7 | public class TestAnnotationExtendWildcard { 8 | public static void main(String[] args) { 9 | 10 | } 11 | 12 | List getA() { 13 | return null; 14 | } 15 | 16 | List getA5() { 17 | return null; 18 | } 19 | 20 | List getA3() { 21 | return null; 22 | } 23 | 24 | List getA2() { 25 | return null; 26 | } 27 | 28 | List getA4() { 29 | return null; 30 | } 31 | } -------------------------------------------------------------------------------- /testData/src/pkg/TestSyntheticAccess.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class TestSyntheticAccess { 4 | 5 | private static int s; 6 | private int i; 7 | 8 | private class Incrementer { 9 | void orI() { 10 | i|=1; 11 | } 12 | 13 | void incrementI() { 14 | i++; 15 | } 16 | 17 | void decrementI() { 18 | --i; 19 | } 20 | 21 | void incrementS() { 22 | ++s; 23 | } 24 | 25 | void decrementS() { 26 | s--; 27 | } 28 | } 29 | 30 | private class Assigner { 31 | void assignI(int newValue) { 32 | i = newValue; 33 | } 34 | 35 | void assignS(int newValue) { 36 | s = newValue; 37 | } 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/org/jetbrains/java/decompiler/code/ExceptionTable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. 2 | package org.jetbrains.java.decompiler.code; 3 | 4 | import java.util.Collections; 5 | import java.util.List; 6 | 7 | public class ExceptionTable { 8 | public static final ExceptionTable EMPTY = new ExceptionTable(Collections.emptyList()); 9 | 10 | private final List handlers; 11 | 12 | public ExceptionTable(List handlers) { 13 | this.handlers = handlers; 14 | } 15 | 16 | public List getHandlers() { 17 | return handlers; 18 | } 19 | } -------------------------------------------------------------------------------- /testData/results/TestAsserts.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public class TestAsserts { 4 | public static int foo() { 5 | byte var0 = 1;// 21 6 | 7 | assert var0 > 1;// 22 8 | 9 | assert var0 > 1 && var0 < 5;// 23 10 | 11 | return 1;// 24 12 | } 13 | } 14 | 15 | class 'pkg/TestAsserts' { 16 | method 'foo ()I' { 17 | 0 4 18 | 1 4 19 | 8 6 20 | 9 6 21 | a 6 22 | 1b 8 23 | 1c 8 24 | 1d 8 25 | 20 8 26 | 21 8 27 | 22 8 28 | 2d 10 29 | 2e 10 30 | } 31 | } 32 | 33 | Lines mapping: 34 | 21 <-> 5 35 | 22 <-> 7 36 | 23 <-> 9 37 | 24 <-> 11 38 | -------------------------------------------------------------------------------- /testData/results/TestInterfaceSuper.dec: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | public interface TestInterfaceSuper { 4 | default void defaultMethod() { 5 | }// 4 6 | 7 | public static class Impl implements TestInterfaceSuper { 8 | public void defaultMethod() { 9 | TestInterfaceSuper.super.defaultMethod();// 8 10 | }// 9 11 | } 12 | } 13 | 14 | class 'pkg/TestInterfaceSuper' { 15 | method 'defaultMethod ()V' { 16 | 0 4 17 | } 18 | } 19 | 20 | class 'pkg/TestInterfaceSuper$Impl' { 21 | method 'defaultMethod ()V' { 22 | 1 8 23 | 2 8 24 | 3 8 25 | 4 9 26 | } 27 | } 28 | 29 | Lines mapping: 30 | 4 <-> 5 31 | 8 <-> 9 32 | 9 <-> 10 33 | --------------------------------------------------------------------------------