├── doc ├── .gitignore ├── CNAME ├── _layouts │ └── none.html ├── favicon.ico ├── images │ ├── gui.png │ ├── spoon.jpg │ ├── smplgui.png │ ├── spoonTeam.jpg │ ├── code-elements.png │ ├── jenkins-badge.png │ ├── smplgui-modes.png │ ├── spoonpowered.jpg │ ├── lille-grandplace.jpg │ ├── spoon-models.graffle │ ├── spoonpowered_big.jpg │ ├── references-elements.png │ ├── structural-elements.png │ ├── spoon-models-elements.png │ └── spoon_javadoc_ansi_print.png ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── css │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── _presentations │ ├── images │ │ ├── PR.png │ │ ├── 25406.png │ │ ├── 60504.png │ │ ├── logo.png │ │ ├── 5040-200.png │ │ ├── PR_black.png │ │ ├── binary.png │ │ ├── Gradle-01.png │ │ ├── git-branch.png │ │ ├── travis-ci.png │ │ ├── GitHub-Mark.png │ │ ├── Octicons-star.png │ │ ├── spanner-512.png │ │ ├── Git-Logo-2Color.png │ │ ├── java-logo-large.png │ │ ├── source_code1600.png │ │ ├── 2000px-Maven_logo.png │ │ ├── logomark-orange@2x.png │ │ └── ic_history_48px-512.png │ ├── flyer │ │ ├── flyer-fosdem17.pdf │ │ └── flyer-fosdem17.indd │ ├── poster │ │ ├── poster_FOSDEM17.pdf │ │ ├── poster_FOSDEM17.indd │ │ ├── poster_adt_Gerard_Paligot.pdf │ │ └── poster_adt_Gerard_Paligot.indd │ └── code_transformation │ │ ├── CodeTransformationWithSpoon.pdf │ │ └── CodeTransformationWithSpoon.zip ├── _data │ └── tags_doc.yml ├── doc_homepage.md ├── _includes │ ├── linkrefs.html │ └── footer.html ├── 404.md ├── _release │ ├── changelog_generator │ │ ├── README.md │ │ └── package.json │ ├── deploy_local.sh │ └── upgrade-license.md └── index.md ├── src ├── test │ ├── resources │ │ ├── unresolved │ │ │ ├── UtilUnresolved.java │ │ │ ├── Unresolved.java │ │ │ └── UnresolvedImport.java │ │ ├── multiclass │ │ │ ├── module1 │ │ │ │ └── A.java │ │ │ └── module2 │ │ │ │ └── A.java │ │ ├── spoon │ │ │ └── test │ │ │ │ ├── exceptions │ │ │ │ ├── README │ │ │ │ └── ClassWithError.java │ │ │ │ ├── api │ │ │ │ ├── Foo.java │ │ │ │ └── CommentedClass.java │ │ │ │ ├── module │ │ │ │ ├── code-multiple-modules │ │ │ │ │ ├── bar │ │ │ │ │ │ ├── module-info-tpl │ │ │ │ │ │ └── packbar │ │ │ │ │ │ │ └── BarClass.java │ │ │ │ │ └── foo │ │ │ │ │ │ ├── module-info-tpl │ │ │ │ │ │ └── packfoo │ │ │ │ │ │ └── FooClass.java │ │ │ │ ├── overlapping-packages │ │ │ │ │ ├── second │ │ │ │ │ │ ├── module-info-tpl │ │ │ │ │ │ └── test │ │ │ │ │ │ │ └── parent │ │ │ │ │ │ │ └── Bar.java │ │ │ │ │ └── first │ │ │ │ │ │ ├── module-info-tpl │ │ │ │ │ │ └── test │ │ │ │ │ │ └── parent │ │ │ │ │ │ └── nested │ │ │ │ │ │ └── Foo.java │ │ │ │ └── simple_module_with_code │ │ │ │ │ ├── module-info-tpl │ │ │ │ │ └── fr │ │ │ │ │ └── simplemodule │ │ │ │ │ └── pack │ │ │ │ │ └── SimpleClass.java │ │ │ │ ├── noclasspath │ │ │ │ ├── fields │ │ │ │ │ └── Toto.java │ │ │ │ └── targeted │ │ │ │ │ ├── StaticFieldReadOnly.java │ │ │ │ │ └── Outer.java │ │ │ │ ├── duplicateclasses │ │ │ │ ├── Foo.java │ │ │ │ └── Bar.java │ │ │ │ ├── processor │ │ │ │ └── test │ │ │ │ │ ├── sub │ │ │ │ │ └── A.java │ │ │ │ │ └── B.java │ │ │ │ ├── visitor │ │ │ │ ├── ConditionalRes.java │ │ │ │ └── Assignments.java │ │ │ │ ├── inheritance │ │ │ │ ├── MyInterface.java │ │ │ │ ├── AnotherClass.java │ │ │ │ ├── MyAbstractClass.java │ │ │ │ └── MyClass.java │ │ │ │ ├── template │ │ │ │ ├── SimpleAssert.java │ │ │ │ └── SimpleIfAsserted.java │ │ │ │ ├── sourcePosition │ │ │ │ ├── ClassWithAnnotation.java │ │ │ │ ├── SourcePartitionValidator.java │ │ │ │ ├── FieldType.java │ │ │ │ └── TestAnnotation.java │ │ │ │ ├── imports │ │ │ │ └── testclasses2 │ │ │ │ │ ├── toto │ │ │ │ │ └── ImportSameName.java │ │ │ │ │ ├── ImportSameName.java │ │ │ │ │ ├── apachetestsuite │ │ │ │ │ ├── LangTestSuite.java │ │ │ │ │ ├── enum2 │ │ │ │ │ │ └── EnumTestSuite.java │ │ │ │ │ └── enums │ │ │ │ │ │ └── EnumTestSuite.java │ │ │ │ │ ├── StaticWithNested.java │ │ │ │ │ └── JavaLangConflict.java │ │ │ │ ├── var │ │ │ │ └── VarInLambda.java │ │ │ │ ├── variable │ │ │ │ └── Tacos.java │ │ │ │ └── intercession │ │ │ │ └── insertBefore │ │ │ │ └── InsertBeforeExample2.java │ │ ├── simple-module │ │ │ ├── module-info.java │ │ │ └── spoonmod │ │ │ │ └── TestClass.java │ │ ├── incremental │ │ │ ├── original-files │ │ │ │ ├── D.java │ │ │ │ ├── C.java │ │ │ │ ├── B.java │ │ │ │ └── A.java │ │ │ └── changed-files │ │ │ │ ├── C.java │ │ │ │ └── D.java │ │ ├── duplicate-package-info │ │ │ ├── subproj-A │ │ │ │ └── org │ │ │ │ │ └── pkg │ │ │ │ │ └── package-info.java │ │ │ └── subproj-B │ │ │ │ └── org │ │ │ │ └── pkg │ │ │ │ └── package-info.java │ │ ├── modules │ │ │ ├── 5324 │ │ │ │ ├── mypkg │ │ │ │ │ └── Dummy.java │ │ │ │ └── module-info.java │ │ │ └── error-reporting-java-1.0.1.jar │ │ ├── reference-test │ │ │ ├── Foo.java │ │ │ ├── EnumJar.jar │ │ │ ├── ReferenceTest.jar │ │ │ ├── InterfaceWithEnumJar.jar │ │ │ ├── InterfaceWithEnum.java │ │ │ ├── EnumsRef.java │ │ │ ├── MultipleDeclarationsOfLocalVariable.java │ │ │ ├── InterfaceEnumRef.java │ │ │ └── reference │ │ │ │ └── spoon │ │ │ │ └── test │ │ │ │ └── reference │ │ │ │ └── ReferencedClass.java │ │ ├── compilation2 │ │ │ └── InvalidClass.java │ │ ├── logback-test.xml │ │ ├── serialization │ │ │ └── SomeClass.java │ │ ├── no-copy-resources │ │ │ ├── fr │ │ │ │ ├── inria │ │ │ │ │ ├── A.java │ │ │ │ │ └── package.html │ │ │ │ └── package.html │ │ │ └── package.html │ │ ├── Bidon.class │ │ ├── indentation │ │ │ ├── NoTypeMembers.java │ │ │ ├── singletypemember │ │ │ │ ├── Tabs.java │ │ │ │ ├── TwoSpaces.java │ │ │ │ └── FourSpaces.java │ │ │ ├── Tabs.java │ │ │ ├── TwoSpaces.java │ │ │ └── FourSpaces.java │ │ ├── noclasspath │ │ │ ├── Foo4.java │ │ │ ├── MultipleClasses.java │ │ │ ├── IsoEncoding.java │ │ │ ├── Demo2.java │ │ │ ├── ternary-bug │ │ │ │ └── data │ │ │ │ │ └── IssueType.java │ │ │ ├── Demo5.java │ │ │ ├── FieldAccessRes.java │ │ │ ├── TestNullable.java │ │ │ ├── same-package │ │ │ │ ├── A.java │ │ │ │ └── B.java │ │ │ ├── app │ │ │ │ └── Test.java │ │ │ ├── A5.java │ │ │ ├── lambdas │ │ │ │ ├── imported │ │ │ │ │ └── SeparateInterfaceWithField.java │ │ │ │ └── TypeAccessInLambda.java │ │ │ ├── Demo4.java │ │ │ ├── QualifiedArrayType.java │ │ │ ├── UnqualifiedStaticMethodCall.java │ │ │ ├── issue5208 │ │ │ │ └── p20 │ │ │ │ │ ├── ClassT3.java │ │ │ │ │ ├── ClassT1.java │ │ │ │ │ └── ClassT2.java │ │ │ ├── ExtendsObject.java │ │ │ ├── CatchQualifiedReference.java │ │ │ ├── A6.java │ │ │ ├── UnqualifiedExternalTypeMemberAccess.java │ │ │ ├── Demo.java │ │ │ ├── Tacos.java │ │ │ ├── Foo2.java │ │ │ ├── Simple.java │ │ │ └── TypeAccessStarImport.java │ │ ├── records │ │ │ ├── EmptyRecord.java │ │ │ ├── GenericRecord.java │ │ │ ├── SingleParameter.java │ │ │ ├── MultiParameter.java │ │ │ ├── PartiallyAnnotations.java │ │ │ ├── NoClasspathAnnotations.java │ │ │ ├── DeriveAnnotations.java │ │ │ ├── ExplicitAccessor.java │ │ │ ├── MultipleConstructors.java │ │ │ ├── NonCompactCanonicalConstructor.java │ │ │ └── RecordWithInterface.java │ │ ├── Enclosing.class │ │ ├── maven-launcher │ │ │ ├── source-directory │ │ │ │ ├── test │ │ │ │ │ └── Test.java │ │ │ │ └── source │ │ │ │ │ └── code │ │ │ │ │ └── Test.java │ │ │ ├── very-simple │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── Test.java │ │ │ ├── system-dependency │ │ │ │ ├── src │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── Test.java │ │ │ │ └── lib │ │ │ │ │ └── bridge-method-annotation-1.13.jar │ │ │ └── hierarchy │ │ │ │ └── child │ │ │ │ └── src │ │ │ │ └── Test.java │ │ ├── ClassWithSingleImport.java │ │ ├── duplicates-in-submodules │ │ │ ├── README.md │ │ │ ├── moduleA │ │ │ │ └── duplicates │ │ │ │ │ ├── Duplicate.java │ │ │ │ │ ├── WithNestedEnum.java │ │ │ │ │ └── Main.java │ │ │ └── moduleB │ │ │ │ └── duplicates │ │ │ │ ├── Duplicate.java │ │ │ │ └── AlsoWithNestedEnum.java │ │ ├── sourceJar │ │ │ └── test.jar │ │ ├── JavaCode.java │ │ ├── encodings │ │ │ ├── Cp1251.java │ │ │ └── Utf8.java │ │ ├── sealedclasses │ │ │ ├── EnumWithAnonymousValue.java │ │ │ ├── SealedClassWithPermits.java │ │ │ ├── ExtendingClass.java │ │ │ ├── OtherExtendingClass.java │ │ │ ├── SealedInterfaceWithPermits.java │ │ │ ├── SealedClassWithNestedSubclasses.java │ │ │ └── SealedInterfaceWithNestedSubclasses.java │ │ ├── ArithmeticExpression.java │ │ ├── Enclosing$Nested.class │ │ ├── classloader-test │ │ │ ├── spoontest │ │ │ │ ├── IFoo.java │ │ │ │ └── Foo.java │ │ │ ├── LauncherUser.java │ │ │ └── spoon │ │ │ │ └── Launcher.class │ │ ├── folderWithJar │ │ │ └── jarFile.jar │ │ ├── parameter │ │ │ └── ParameterResource.java │ │ ├── sniperPrinter │ │ │ ├── DeleteAnnotation.java │ │ │ ├── arrayInitialisation │ │ │ │ ├── ToNull.java │ │ │ │ ├── GenericTypeArray.java │ │ │ │ ├── FiveIntegers.java │ │ │ │ ├── ToNullElements.java │ │ │ │ ├── MultiDimension.java │ │ │ │ └── AsLocalVariable.java │ │ │ ├── SpaceAfterFinal.java │ │ │ └── Overriding.java │ │ ├── visibility │ │ │ └── snakeyaml-1.9.jar │ │ ├── ArithmeticExpressionWithSpaces.java │ │ ├── inherit-static-method │ │ │ ├── Base.java │ │ │ └── Derived.java │ │ ├── keywordCompliance │ │ │ └── enum │ │ │ │ └── Foo.java │ │ ├── npe │ │ │ ├── SneakyCrashy.java │ │ │ └── SneakySubclass.java │ │ ├── reference-test-2 │ │ │ ├── ReferenceTest2.jar │ │ │ └── spoontest │ │ │ │ ├── c │ │ │ │ └── ClassC.java │ │ │ │ ├── a │ │ │ │ └── ClassA.java │ │ │ │ └── b │ │ │ │ └── ClassB.java │ │ ├── snippet │ │ │ ├── UnnamedPackageSnippetResource.java │ │ │ └── SnippetResources.java │ │ ├── path with spaces +and+ plusses │ │ │ ├── lib │ │ │ │ └── bar.jar │ │ │ └── Foo.java │ │ ├── reference-package │ │ │ └── Panini.java │ │ ├── importCleaner │ │ │ ├── WildCardImport.java │ │ │ ├── DoNotRemoveSubType.java │ │ │ └── StaticImports.java │ │ ├── printer-test │ │ │ ├── DefaultPrettyPrinterDependency.jar │ │ │ ├── spoon │ │ │ │ └── test │ │ │ │ │ └── prettyprinter │ │ │ │ │ └── DefaultPrettyPrinterDependency.java │ │ │ └── ShadowFieldRead.java │ │ ├── compilation │ │ │ ├── compilation-tests │ │ │ │ ├── IBar.java │ │ │ │ └── Bar.java │ │ │ └── ClassWithStaticFields.java │ │ ├── extendsStaticInnerType │ │ │ ├── FooBar.java │ │ │ └── BarBaz.java │ │ ├── ForLoop.java │ │ ├── receiver │ │ │ ├── InnerClassCtor.java │ │ │ ├── SimpleReceiverParameter.java │ │ │ └── Outer.java │ │ ├── patternmatching │ │ │ └── InstanceofPatternMatch.java │ │ ├── layornos │ │ │ └── AllocationStorage.java │ │ ├── typeannotations │ │ │ ├── p02 │ │ │ │ └── InterfaceExtends.java │ │ │ ├── TypeUseA.java │ │ │ ├── TypeUseB.java │ │ │ └── p01 │ │ │ │ └── ExtendsAndImplements.java │ │ ├── import-resources │ │ │ ├── fr │ │ │ │ └── inria │ │ │ │ │ ├── MissingImport.java │ │ │ │ │ └── FooNoClassPath.java │ │ │ └── ImportAndExtendWithPackageName.java │ │ ├── static-method-and-type │ │ │ ├── imports-are-here │ │ │ │ └── Bar.java │ │ │ └── Main.java │ │ ├── nestedInInterface │ │ │ └── NestedInterfaceMembersArePublic.java │ │ ├── executable-reference │ │ │ └── Foo.java │ │ ├── dollar-and-nested-classes │ │ │ └── $Poor$Name.java │ │ ├── localtypes │ │ │ └── LocalTypesHolder.java │ │ ├── jdtimportbuilder │ │ │ ├── ItfImport.java │ │ │ └── itf │ │ │ │ └── DumbItf.java │ │ ├── simple-import │ │ │ └── TestClass.java │ │ ├── MultipleTopLevelTypes.java │ │ ├── target-functional-interface-in-lambda │ │ │ ├── TargetsFunctionalInterface.java │ │ │ └── HasFunctionalInterface.java │ │ ├── compilation3 │ │ │ ├── A.java │ │ │ └── subpackage │ │ │ │ └── B.java │ │ ├── annotated-parameter-on-nested-class-constructor │ │ │ └── Caller.java │ │ ├── inner-class │ │ │ ├── constants │ │ │ │ └── Constants.java │ │ │ └── Main.java │ │ ├── import-with-generics │ │ │ └── TestWithGenerics.java │ │ ├── ReferenceBuilder-null-pointer │ │ │ └── Foo.java │ │ ├── methodimport │ │ │ └── ClassWithStaticMethod.java │ │ ├── duplicateClass │ │ │ └── DuplicateInnerClass.java │ │ ├── deprecated │ │ │ ├── input │ │ │ │ └── Bar.java │ │ │ └── correctResult │ │ │ │ ├── Bar.java │ │ │ │ └── Foo.java │ │ ├── reference-to-child-class │ │ │ ├── ReferenceToChildClass.java │ │ │ └── ProblemReferenceToChildClass.java │ │ ├── fieldImport │ │ │ ├── StaticFieldImport.java │ │ │ └── UtilityLibrary.java │ │ ├── TypeMemberComments.java │ │ └── constructorcall-type │ │ │ └── ConstructorCallWithTypesNotOnClasspath.java │ └── java │ │ └── spoon │ │ ├── test │ │ ├── pkg │ │ │ ├── testclasses │ │ │ │ ├── package-info.java │ │ │ │ ├── internal │ │ │ │ │ └── package-info.java │ │ │ │ └── Foo.java │ │ │ ├── name │ │ │ │ └── PackageTestClass.java │ │ │ ├── package-info.java │ │ │ ├── cyclic │ │ │ │ ├── indirect │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── Indirect.java │ │ │ │ ├── direct │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── Cyclic.java │ │ │ │ └── Outside.java │ │ │ ├── annotate │ │ │ │ └── package-info.java │ │ │ └── test_templates │ │ │ │ └── FakeTemplate.java │ │ ├── factory │ │ │ ├── testclasses2 │ │ │ │ └── Baz.java │ │ │ ├── testclasses4 │ │ │ │ └── Bar.java │ │ │ ├── testclasses3 │ │ │ │ ├── Cooking.java │ │ │ │ └── Prepare.java │ │ │ └── testclasses │ │ │ │ └── Foo.java │ │ ├── generics │ │ │ ├── testclasses5 │ │ │ │ ├── B.java │ │ │ │ └── A.java │ │ │ ├── testclasses │ │ │ │ ├── ITacos.java │ │ │ │ ├── IBurritos.java │ │ │ │ ├── Lunch.java │ │ │ │ ├── rxjava │ │ │ │ │ ├── Try.java │ │ │ │ │ ├── Processor.java │ │ │ │ │ ├── Publisher.java │ │ │ │ │ ├── Subject.java │ │ │ │ │ └── Subscriber.java │ │ │ │ ├── Banana.java │ │ │ │ ├── Panini.java │ │ │ │ ├── EnumSetOf.java │ │ │ │ └── Mole.java │ │ │ ├── testclasses3 │ │ │ │ ├── Bar.java │ │ │ │ ├── UpperBoundedWildcard.java │ │ │ │ ├── UpperBoundedWildcardUser.java │ │ │ │ ├── ClassThatDefinesANewTypeArgument.java │ │ │ │ ├── InstanceOfMapEntryGeneric.java │ │ │ │ ├── GenericConstructor.java │ │ │ │ └── SimilarSignatureMethodes.java │ │ │ ├── testclasses6 │ │ │ │ └── A.java │ │ │ ├── testclasses4 │ │ │ │ ├── C.java │ │ │ │ └── A.java │ │ │ └── testclasses2 │ │ │ │ └── LikeCtClass.java │ │ ├── position │ │ │ └── testclasses │ │ │ │ ├── Foo.java │ │ │ │ ├── FooClazz.java │ │ │ │ ├── TestSingleLineClass.java │ │ │ │ ├── TestCommentedOutClass.java │ │ │ │ ├── NoMethodModifiers.java │ │ │ │ ├── FooClazz2.java │ │ │ │ ├── SomeEnum.java │ │ │ │ ├── FooAbstractMethod.java │ │ │ │ ├── TestSimpleClass.java │ │ │ │ ├── TypeParameter.java │ │ │ │ ├── FooEnum.java │ │ │ │ ├── NewArrayList.java │ │ │ │ ├── FooClazzWithComments.java │ │ │ │ ├── FooInterface.java │ │ │ │ ├── AnnotationWithAngleBracket.java │ │ │ │ ├── FooLambda.java │ │ │ │ ├── ImplicitBlock.java │ │ │ │ ├── FooField.java │ │ │ │ └── Kokos.java │ │ ├── loop │ │ │ └── testclasses │ │ │ │ ├── Condition.java │ │ │ │ └── EmptyLoops.java │ │ ├── template │ │ │ └── testclasses │ │ │ │ ├── replace │ │ │ │ └── Item.java │ │ │ │ ├── inheritance │ │ │ │ ├── SuperClass.java │ │ │ │ ├── SubClass.java │ │ │ │ └── SuperTemplate.java │ │ │ │ ├── types │ │ │ │ ├── AnEnumModel.java │ │ │ │ └── AnIfaceModel.java │ │ │ │ ├── constructors │ │ │ │ └── C1.java │ │ │ │ ├── match │ │ │ │ └── Check.java │ │ │ │ ├── bounds │ │ │ │ └── FooBound.java │ │ │ │ ├── InnerClassTemplate.java │ │ │ │ └── FlowMatcher.java │ │ ├── enums │ │ │ └── testclasses │ │ │ │ ├── Foo.java │ │ │ │ ├── AnonEnum.java │ │ │ │ ├── Burritos.java │ │ │ │ ├── Performable.java │ │ │ │ ├── EnumWithMembers.java │ │ │ │ └── Regular.java │ │ ├── imports │ │ │ └── testclasses │ │ │ │ ├── internal3 │ │ │ │ ├── Bar.java │ │ │ │ └── Foo.java │ │ │ │ ├── internal4 │ │ │ │ ├── Foo.java │ │ │ │ └── Constants.java │ │ │ │ ├── memberaccess │ │ │ │ ├── DoesnotExtendA.java │ │ │ │ ├── Iface.java │ │ │ │ ├── A.java │ │ │ │ └── ExtendsA.java │ │ │ │ ├── memberaccess2 │ │ │ │ └── DoesnotExtendA.java │ │ │ │ ├── internal2 │ │ │ │ ├── Menudo.java │ │ │ │ └── Chimichanga.java │ │ │ │ ├── A.java │ │ │ │ ├── badimportissue3320 │ │ │ │ └── source │ │ │ │ │ └── other │ │ │ │ │ └── SomeObjectDto.java │ │ │ │ ├── Kun.java │ │ │ │ ├── internal │ │ │ │ ├── PublicSuperClass.java │ │ │ │ ├── ChildClass.java │ │ │ │ └── PublicInterface2.java │ │ │ │ ├── SuperClass.java │ │ │ │ ├── Pozole.java │ │ │ │ ├── Reflection.java │ │ │ │ ├── Tacos.java │ │ │ │ ├── multiplecu │ │ │ │ ├── A.java │ │ │ │ └── B.java │ │ │ │ ├── Mole.java │ │ │ │ ├── B.java │ │ │ │ ├── ToBeModified.java │ │ │ │ ├── NotImportExecutableType.java │ │ │ │ └── SubClass.java │ │ ├── serializable │ │ │ └── testclasses │ │ │ │ └── Dummy.java │ │ ├── compilation │ │ │ └── testclasses │ │ │ │ ├── Ifoo.java │ │ │ │ ├── IBar.java │ │ │ │ └── Bar.java │ │ ├── method_overriding │ │ │ ├── testclasses │ │ │ │ └── IA.java │ │ │ └── testclasses2 │ │ │ │ └── ObjectInterface.java │ │ ├── annotation │ │ │ └── testclasses │ │ │ │ ├── BasicAnnotation.java │ │ │ │ ├── TestAnnotation.java │ │ │ │ ├── InnerAnnot.java │ │ │ │ ├── TestInterface.java │ │ │ │ ├── shadow │ │ │ │ ├── StandardRetention.java │ │ │ │ ├── ClassRetention.java │ │ │ │ └── RuntimeRetention.java │ │ │ │ ├── Summary.java │ │ │ │ ├── package-info.java │ │ │ │ ├── repeatable │ │ │ │ ├── Tags.java │ │ │ │ ├── Tag.java │ │ │ │ └── Repeated.java │ │ │ │ ├── CustomAnnotation.java │ │ │ │ ├── Inception.java │ │ │ │ ├── repeatandarrays │ │ │ │ ├── TagsArrays.java │ │ │ │ ├── TagArrays.java │ │ │ │ └── RepeatedArrays.java │ │ │ │ ├── Bar.java │ │ │ │ ├── notrepeatable │ │ │ │ └── StringAnnot.java │ │ │ │ ├── AnnotationDefaultAnnotation.java │ │ │ │ ├── AnnotParam.java │ │ │ │ ├── SuperAnnotation.java │ │ │ │ ├── AnnotationMethodModifiers.java │ │ │ │ ├── Pozole.java │ │ │ │ ├── AnnotParamTypeEnum.java │ │ │ │ ├── Bound.java │ │ │ │ ├── typeandfield │ │ │ │ ├── SimpleClass.java │ │ │ │ └── AnnotTypeAndField.java │ │ │ │ └── AnnotArray.java │ │ ├── interfaces │ │ │ └── testclasses │ │ │ │ ├── EmptyInterface.java │ │ │ │ ├── RedefinesStaticMethodInterface.java │ │ │ │ ├── RedefinesDefaultMethodInterface.java │ │ │ │ └── ExtendsStaticMethodInterface.java │ │ ├── reference │ │ │ ├── testclasses │ │ │ │ ├── Bar.java │ │ │ │ ├── SuperFoo.java │ │ │ │ ├── Kuu.java │ │ │ │ ├── Parameter.java │ │ │ │ ├── Foo.java │ │ │ │ ├── Burritos.java │ │ │ │ ├── Mole.java │ │ │ │ ├── ParamRefs.java │ │ │ │ ├── Tortillas.java │ │ │ │ ├── MyClass3.java │ │ │ │ ├── Stream.java │ │ │ │ ├── Pozole.java │ │ │ │ ├── SuperAccess.java │ │ │ │ ├── Tacos.java │ │ │ │ └── EnumValue.java │ │ │ ├── Foo.java │ │ │ └── Enum.java │ │ ├── constructor │ │ ├── type │ │ │ └── testclasses │ │ │ │ └── Mole.java │ │ ├── fieldaccesses │ │ │ └── testclasses │ │ │ │ ├── Mole.java │ │ │ │ ├── Kuu.java │ │ │ │ ├── A.java │ │ │ │ ├── internal │ │ │ │ └── Foo.java │ │ │ │ ├── B.java │ │ │ │ ├── BCUBug20140402.java │ │ │ │ ├── BUG20160112.java │ │ │ │ └── TargetedAccessPosition.java │ │ ├── visibility │ │ │ ├── packageprotected │ │ │ │ ├── NonAccessibleInterf.java │ │ │ │ └── AccessibleClassFromNonAccessibleInterf.java │ │ │ └── testclasses │ │ │ │ └── Tacos.java │ │ ├── refactoring │ │ │ ├── parameter │ │ │ │ └── testclasses │ │ │ │ │ ├── IFaceK.java │ │ │ │ │ ├── TypeM.java │ │ │ │ │ ├── IFaceL.java │ │ │ │ │ ├── TypeK.java │ │ │ │ │ ├── IFaceB.java │ │ │ │ │ ├── IFaceT.java │ │ │ │ │ ├── TypeR.java │ │ │ │ │ ├── TypeL.java │ │ │ │ │ ├── TypeA.java │ │ │ │ │ └── TypeC.java │ │ │ └── testclasses │ │ │ │ ├── AbstractClass.java │ │ │ │ ├── InterfaceRenaming.java │ │ │ │ └── MethodGenericRenaming.java │ │ ├── invocations │ │ │ └── testclasses │ │ │ │ ├── Bar.java │ │ │ │ └── Foo.java │ │ ├── prettyprinter │ │ │ └── testclasses │ │ │ │ ├── difftest │ │ │ │ ├── EnumTest.java │ │ │ │ ├── EnumComment.java │ │ │ │ └── ExceptionTest.java │ │ │ │ ├── DefaultMethod.java │ │ │ │ ├── Throw.java │ │ │ │ ├── DoubleBound.java │ │ │ │ ├── asserttest │ │ │ │ ├── AssertNOK.java │ │ │ │ └── AssertOk.java │ │ │ │ ├── A.java │ │ │ │ ├── InvocationReplacement.java │ │ │ │ ├── RefactorCast.java │ │ │ │ ├── DoubleForInitializer.java │ │ │ │ ├── Simple.java │ │ │ │ ├── innertype │ │ │ │ ├── InnerTypeOk2.java │ │ │ │ ├── InnerTypeOk.java │ │ │ │ └── InnerTypeCrash.java │ │ │ │ ├── sub │ │ │ │ ├── TypeIdentifierCollision.java │ │ │ │ └── Constants.java │ │ │ │ ├── loop │ │ │ │ ├── WhileNoBraces.java │ │ │ │ ├── ForNoBraces.java │ │ │ │ ├── WhileWithBraces.java │ │ │ │ └── ForEachNoBraces.java │ │ │ │ ├── OneLineMultipleVariableDeclaration.java │ │ │ │ └── ArrayRealVector.java │ │ ├── field │ │ │ └── testclasses │ │ │ │ ├── BaseClass.java │ │ │ │ ├── AnnoWithConst.java │ │ │ │ └── AddFieldAtTop.java │ │ ├── staticFieldAccess2 │ │ │ └── testclasses │ │ │ │ ├── ALong.java │ │ │ │ └── Constants.java │ │ ├── comment │ │ │ └── testclasses │ │ │ │ ├── OtherJavaDoc.java │ │ │ │ ├── package-info.java │ │ │ │ ├── TypeParameterComments.java │ │ │ │ ├── Comment2.java │ │ │ │ ├── WindowsEOL.java │ │ │ │ ├── JavaDocEmptyCommentAndTags.java │ │ │ │ ├── BinaryOperatorComments.java │ │ │ │ ├── ArrayAccessComments.java │ │ │ │ ├── Comment1.java │ │ │ │ └── WithIfBlock.java │ │ ├── varargs │ │ │ └── testclasses │ │ │ │ └── VarArgsSample.java │ │ ├── jdtimportbuilder │ │ │ └── testclasses │ │ │ │ ├── fullpack │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ └── C.java │ │ │ │ ├── staticimport │ │ │ │ └── DependencySubClass.java │ │ │ │ ├── StaticImport.java │ │ │ │ └── StarredImport.java │ │ ├── replace │ │ │ └── testclasses │ │ │ │ ├── Mole.java │ │ │ │ └── Tacos.java │ │ ├── executable │ │ │ └── testclasses │ │ │ │ ├── AnonymousExecutableSample.java │ │ │ │ ├── WithEnum.java │ │ │ │ ├── MyIntf.java │ │ │ │ └── Pozole.java │ │ ├── model │ │ │ └── testclasses │ │ │ │ ├── InterfaceWrithFields.java │ │ │ │ └── InterfaceSuperclass.java │ │ ├── issue3321 │ │ │ └── SomeObjectDto.java │ │ ├── change │ │ │ └── testclasses │ │ │ │ └── SubjectOfChange.java │ │ ├── control │ │ │ └── testclasses │ │ │ │ └── DoWhile.java │ │ ├── main │ │ │ └── testclasses │ │ │ │ └── Test.java │ │ ├── trycatch │ │ │ └── testclasses │ │ │ │ └── internal │ │ │ │ ├── MyException.java │ │ │ │ └── MyException2.java │ │ ├── sourcePosition │ │ │ └── testclasses │ │ │ │ └── Brambora.java │ │ ├── variable │ │ │ └── testclasses │ │ │ │ ├── ArrayAccessSample.java │ │ │ │ ├── StackedAssignmentSample.java │ │ │ │ ├── RHSSample.java │ │ │ │ ├── VariableAccessSample.java │ │ │ │ ├── Tacos.java │ │ │ │ ├── BurritosWithLoop.java │ │ │ │ └── FieldAccessSample.java │ │ ├── ctElement │ │ │ └── testclasses │ │ │ │ └── Returner.java │ │ ├── spoonifier │ │ │ └── testclasses │ │ │ │ └── ArrayRealVector.java │ │ ├── staticFieldAccess │ │ │ └── internal │ │ │ │ ├── Extends.java │ │ │ │ └── Origin.java │ │ ├── initializers │ │ │ └── testclasses │ │ │ │ └── InternalClassStaticFieldInit.java │ │ ├── lambda │ │ │ └── testclasses │ │ │ │ └── Kuu.java │ │ ├── method │ │ │ └── testclasses │ │ │ │ └── Tacos.java │ │ ├── modifiers │ │ │ └── testclasses │ │ │ │ └── StaticMethod.java │ │ ├── literal │ │ │ └── testclasses │ │ │ │ └── Tacos.java │ │ ├── ctClass │ │ │ └── testclasses │ │ │ │ ├── Foo.java │ │ │ │ └── Pozole.java │ │ ├── targeted │ │ │ └── testclasses │ │ │ │ └── InternalSuperCall.java │ │ └── arrays │ │ │ └── testclasses │ │ │ ├── NewArrayWithComment.java │ │ │ └── VaragParam.java │ │ ├── testing │ │ ├── testclasses │ │ │ ├── Bar.java │ │ │ └── Foo.java │ │ └── assertions │ │ │ ├── CtPatternAssertInterface.java │ │ │ ├── CtBreakAssertInterface.java │ │ │ ├── CtResourceAssertInterface.java │ │ │ ├── CtTextBlockAssertInterface.java │ │ │ ├── CtArrayReadAssertInterface.java │ │ │ ├── CtCFlowBreakAssertInterface.java │ │ │ └── CtContinueAssertInterface.java │ │ ├── support │ │ ├── compiler │ │ │ └── jdt │ │ │ │ └── testclasses │ │ │ │ ├── Foo.java │ │ │ │ └── ExtendedStringLiteralTestClass.java │ │ └── visitor │ │ │ └── java │ │ │ └── testclasses │ │ │ └── UnsatisfiedLinkErrorInStaticInit.java │ │ └── reflect │ │ ├── declaration │ │ └── testclasses │ │ │ ├── TestInterface.java │ │ │ ├── Subinterface.java │ │ │ └── ExtendsArrayList.java │ │ └── visitor │ │ └── testclasses │ │ └── simpleNestedClassWithFields.java └── main │ └── resources │ ├── spoon.properties │ └── properties.dtd ├── spoon-dataflow ├── settings.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties └── src │ ├── main │ └── java │ │ └── fr │ │ └── inria │ │ └── spoon │ │ └── dataflow │ │ └── misc │ │ └── ConditionStatus.java │ └── test │ └── java │ └── fr │ └── inria │ └── spoon │ └── dataflow │ └── testcases │ └── TestGenerics.java ├── spoon-visualisation ├── src │ ├── test │ │ └── resources │ │ │ └── mockito-extensions │ │ │ └── org.mockito.plugins.MockMaker │ └── main │ │ └── java │ │ └── spoon │ │ └── visualisation │ │ └── Launcher.java └── doc │ ├── props.png │ ├── appAuto.png │ ├── appExp.png │ ├── appFeat.png │ ├── openDoc.png │ ├── appFeat2.png │ ├── appClassElt.png │ └── appStatement.png ├── spoon-smpl ├── src │ └── test │ │ └── resources │ │ ├── C4JGetColor.zip │ │ ├── C4JGetHeight.zip │ │ ├── C4JSetTextSize.zip │ │ ├── C4JShouldVibrate.zip │ │ ├── endtoend │ │ └── README.md │ │ ├── C4JOnConsoleMessage.zip │ │ └── C4JSendStickyBroadcast.zip └── tools │ └── smplcli.sh ├── chore └── logback.xml ├── .github └── FUNDING.yml ├── spoon-decompiler └── src │ └── test │ └── resources │ ├── jarLauncher │ └── helloworld-1.0-SNAPSHOT.jar │ └── agent │ └── classes │ └── se │ └── kth │ └── castor │ └── TransformMe.class ├── .mvn ├── extensions.xml └── gradle-enterprise.xml ├── LICENSE-short.txt └── ROADMAP.md /doc/.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | -------------------------------------------------------------------------------- /doc/CNAME: -------------------------------------------------------------------------------- 1 | spoon.gforge.inria.fr 2 | -------------------------------------------------------------------------------- /doc/_layouts/none.html: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | {{content}} -------------------------------------------------------------------------------- /src/test/resources/unresolved/UtilUnresolved.java: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/test/resources/multiclass/module1/A.java: -------------------------------------------------------------------------------- 1 | class A { } -------------------------------------------------------------------------------- /src/test/resources/multiclass/module2/A.java: -------------------------------------------------------------------------------- 1 | class A { } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/exceptions/README: -------------------------------------------------------------------------------- 1 | used in ResourceTest -------------------------------------------------------------------------------- /doc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/spoon.properties: -------------------------------------------------------------------------------- 1 | application.version=${project.version} 2 | -------------------------------------------------------------------------------- /src/test/resources/simple-module/module-info.java: -------------------------------------------------------------------------------- 1 | module spoonmod { 2 | 3 | } -------------------------------------------------------------------------------- /doc/images/gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/gui.png -------------------------------------------------------------------------------- /doc/images/spoon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/spoon.jpg -------------------------------------------------------------------------------- /spoon-dataflow/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'fr.inria.spoon.dataflow' 2 | 3 | -------------------------------------------------------------------------------- /src/test/resources/incremental/original-files/D.java: -------------------------------------------------------------------------------- 1 | public class D { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /doc/images/smplgui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/smplgui.png -------------------------------------------------------------------------------- /src/test/resources/duplicate-package-info/subproj-A/org/pkg/package-info.java: -------------------------------------------------------------------------------- 1 | package org.pkg; -------------------------------------------------------------------------------- /src/test/resources/duplicate-package-info/subproj-B/org/pkg/package-info.java: -------------------------------------------------------------------------------- 1 | package org.pkg; -------------------------------------------------------------------------------- /src/test/resources/modules/5324/mypkg/Dummy.java: -------------------------------------------------------------------------------- 1 | package mypkg; 2 | 3 | class Dummy { 4 | } -------------------------------------------------------------------------------- /src/test/resources/reference-test/Foo.java: -------------------------------------------------------------------------------- 1 | public class Foo { 2 | KJHKY l; 3 | } 4 | 5 | -------------------------------------------------------------------------------- /doc/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /doc/images/spoonTeam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/spoonTeam.jpg -------------------------------------------------------------------------------- /src/test/resources/compilation2/InvalidClass.java: -------------------------------------------------------------------------------- 1 | 2 | public class InvalidClass { 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/test/resources/incremental/original-files/C.java: -------------------------------------------------------------------------------- 1 | public class C { 2 | 3 | int val; 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/test/resources/serialization/SomeClass.java: -------------------------------------------------------------------------------- 1 | public class SomeClass { 2 | public int a; 3 | } -------------------------------------------------------------------------------- /doc/images/code-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/code-elements.png -------------------------------------------------------------------------------- /doc/images/jenkins-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/jenkins-badge.png -------------------------------------------------------------------------------- /doc/images/smplgui-modes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/smplgui-modes.png -------------------------------------------------------------------------------- /doc/images/spoonpowered.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/spoonpowered.jpg -------------------------------------------------------------------------------- /src/test/resources/incremental/changed-files/C.java: -------------------------------------------------------------------------------- 1 | public class C { 2 | 3 | float val; 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/no-copy-resources/fr/inria/A.java: -------------------------------------------------------------------------------- 1 | package fr.inria; 2 | 3 | public class A { 4 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/api/Foo.java: -------------------------------------------------------------------------------- 1 | // for API test 2 | public class Foo{} 3 | class Bar{} 4 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/code-multiple-modules/bar/module-info-tpl: -------------------------------------------------------------------------------- 1 | module bar { 2 | 3 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/code-multiple-modules/foo/module-info-tpl: -------------------------------------------------------------------------------- 1 | module foo { 2 | 3 | } -------------------------------------------------------------------------------- /doc/css/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/css/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /spoon-visualisation/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline -------------------------------------------------------------------------------- /src/test/resources/Bidon.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/Bidon.class -------------------------------------------------------------------------------- /doc/_presentations/images/PR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/PR.png -------------------------------------------------------------------------------- /doc/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /doc/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /doc/images/lille-grandplace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/lille-grandplace.jpg -------------------------------------------------------------------------------- /doc/images/spoon-models.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/spoon-models.graffle -------------------------------------------------------------------------------- /doc/images/spoonpowered_big.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/spoonpowered_big.jpg -------------------------------------------------------------------------------- /spoon-visualisation/doc/props.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/props.png -------------------------------------------------------------------------------- /src/test/resources/indentation/NoTypeMembers.java: -------------------------------------------------------------------------------- 1 | package indentation; 2 | 3 | public class NoTypeMembers { 4 | } -------------------------------------------------------------------------------- /src/test/resources/modules/5324/module-info.java: -------------------------------------------------------------------------------- 1 | module dummy.module { 2 | requires error.reporting.java; 3 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Foo4.java: -------------------------------------------------------------------------------- 1 | class Foo4 { 2 | static { 3 | System.out.println("fooo"); 4 | } 5 | } -------------------------------------------------------------------------------- /src/test/resources/records/EmptyRecord.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record EmptyRecord() { 4 | } 5 | -------------------------------------------------------------------------------- /doc/_presentations/images/25406.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/25406.png -------------------------------------------------------------------------------- /doc/_presentations/images/60504.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/60504.png -------------------------------------------------------------------------------- /doc/_presentations/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/logo.png -------------------------------------------------------------------------------- /doc/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /doc/images/references-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/references-elements.png -------------------------------------------------------------------------------- /doc/images/structural-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/structural-elements.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appAuto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/appAuto.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appExp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/appExp.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appFeat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/appFeat.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/openDoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/openDoc.png -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/testclasses/package-info.java: -------------------------------------------------------------------------------- 1 | @Deprecated 2 | package spoon.test.pkg.testclasses; 3 | -------------------------------------------------------------------------------- /src/test/resources/Enclosing.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/Enclosing.class -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/source-directory/test/Test.java: -------------------------------------------------------------------------------- 1 | public class Test { 2 | int field = 42; 3 | } -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/very-simple/src/main/java/Test.java: -------------------------------------------------------------------------------- 1 | public class Test { 2 | int field = 42; 3 | } -------------------------------------------------------------------------------- /doc/_presentations/images/5040-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/5040-200.png -------------------------------------------------------------------------------- /doc/_presentations/images/PR_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/PR_black.png -------------------------------------------------------------------------------- /doc/_presentations/images/binary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/binary.png -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /doc/images/spoon-models-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/spoon-models-elements.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appFeat2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/appFeat2.png -------------------------------------------------------------------------------- /src/test/java/spoon/testing/testclasses/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.testclasses; 2 | 3 | public class Bar { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.testclasses; 2 | 3 | public class Foo { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/ClassWithSingleImport.java: -------------------------------------------------------------------------------- 1 | import java.util.Set; 2 | 3 | public class ClassWithSingleImport { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/duplicates-in-submodules/README.md: -------------------------------------------------------------------------------- 1 | Test files to replicate https://github.com/INRIA/spoon/issues/3707 -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/source-directory/source/code/Test.java: -------------------------------------------------------------------------------- 1 | public class Test { 2 | int field = 42; 3 | } -------------------------------------------------------------------------------- /src/test/resources/records/GenericRecord.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record GenericRecord(T a, T b) {} 4 | -------------------------------------------------------------------------------- /src/test/resources/sourceJar/test.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/sourceJar/test.jar -------------------------------------------------------------------------------- /doc/_presentations/images/Gradle-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/Gradle-01.png -------------------------------------------------------------------------------- /doc/_presentations/images/git-branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/git-branch.png -------------------------------------------------------------------------------- /doc/_presentations/images/travis-ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/travis-ci.png -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/css/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /doc/images/spoon_javadoc_ansi_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/images/spoon_javadoc_ansi_print.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appClassElt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/appClassElt.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appStatement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-visualisation/doc/appStatement.png -------------------------------------------------------------------------------- /src/test/resources/JavaCode.java: -------------------------------------------------------------------------------- 1 | public class HelloWorld { 2 | void testMethod() {} 3 | private int testVariable; 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/encodings/Cp1251.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/encodings/Cp1251.java -------------------------------------------------------------------------------- /src/test/resources/encodings/Utf8.java: -------------------------------------------------------------------------------- 1 | public class Utf8 { 2 | String s1 = "Привет мир"; 3 | String s2 = "ГДЕ" 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/system-dependency/src/main/java/Test.java: -------------------------------------------------------------------------------- 1 | public class Test { 2 | int field = 42; 3 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/MultipleClasses.java: -------------------------------------------------------------------------------- 1 | class A {} 2 | 3 | class D {} 4 | 5 | class C {} 6 | 7 | class B {} 8 | -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/EnumWithAnonymousValue.java: -------------------------------------------------------------------------------- 1 | public enum EnumWithAnonymousValue { 2 | VALUE { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /doc/_presentations/flyer/flyer-fosdem17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/flyer/flyer-fosdem17.pdf -------------------------------------------------------------------------------- /doc/_presentations/images/GitHub-Mark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/GitHub-Mark.png -------------------------------------------------------------------------------- /doc/_presentations/images/Octicons-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/Octicons-star.png -------------------------------------------------------------------------------- /doc/_presentations/images/spanner-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/spanner-512.png -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/test/java/spoon/test/factory/testclasses2/Baz.java: -------------------------------------------------------------------------------- 1 | package spoon.test.factory.testclasses2; 2 | 3 | public class Baz { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses5/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses5; 2 | 3 | public class B { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public class Foo { 4 | 5 | } -------------------------------------------------------------------------------- /src/test/resources/ArithmeticExpression.java: -------------------------------------------------------------------------------- 1 | class ArithmeticExpression { 2 | double value = ((double) (3 / 2)) / 2; 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/Enclosing$Nested.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/Enclosing$Nested.class -------------------------------------------------------------------------------- /src/test/resources/classloader-test/spoontest/IFoo.java: -------------------------------------------------------------------------------- 1 | package spoontest; 2 | 3 | public interface IFoo 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/duplicates-in-submodules/moduleA/duplicates/Duplicate.java: -------------------------------------------------------------------------------- 1 | package duplicates; 2 | 3 | public class Duplicate {} -------------------------------------------------------------------------------- /src/test/resources/duplicates-in-submodules/moduleB/duplicates/Duplicate.java: -------------------------------------------------------------------------------- 1 | package duplicates; 2 | 3 | public class Duplicate {} -------------------------------------------------------------------------------- /src/test/resources/incremental/original-files/B.java: -------------------------------------------------------------------------------- 1 | public class B { 2 | 3 | void func(C c) { 4 | c.val = 42; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/records/SingleParameter.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record SingleParameter(int value) { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/overlapping-packages/second/module-info-tpl: -------------------------------------------------------------------------------- 1 | module second { 2 | exports test.parent; 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/overlapping-packages/second/test/parent/Bar.java: -------------------------------------------------------------------------------- 1 | package test.parent; 2 | 3 | class Bar {} 4 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/noclasspath/fields/Toto.java: -------------------------------------------------------------------------------- 1 | 2 | public class Toto extends Truc { 3 | String t = machin().field; 4 | } -------------------------------------------------------------------------------- /doc/_presentations/flyer/flyer-fosdem17.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/flyer/flyer-fosdem17.indd -------------------------------------------------------------------------------- /doc/_presentations/images/Git-Logo-2Color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/Git-Logo-2Color.png -------------------------------------------------------------------------------- /doc/_presentations/images/java-logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/java-logo-large.png -------------------------------------------------------------------------------- /doc/_presentations/images/source_code1600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/source_code1600.png -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_FOSDEM17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/poster/poster_FOSDEM17.pdf -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JGetColor.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-smpl/src/test/resources/C4JGetColor.zip -------------------------------------------------------------------------------- /src/test/resources/folderWithJar/jarFile.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/folderWithJar/jarFile.jar -------------------------------------------------------------------------------- /src/test/resources/parameter/ParameterResource.java: -------------------------------------------------------------------------------- 1 | public class ParameterResource { 2 | public void empty(int parameter) { } 3 | } -------------------------------------------------------------------------------- /src/test/resources/reference-test/EnumJar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/reference-test/EnumJar.jar -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/DeleteAnnotation.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter; 2 | 3 | @abc.def.xyz 4 | class DeleteAnnotation { } 5 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/overlapping-packages/first/module-info-tpl: -------------------------------------------------------------------------------- 1 | module first { 2 | exports test.parent.nested; 3 | } 4 | -------------------------------------------------------------------------------- /chore/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /doc/_presentations/images/2000px-Maven_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/2000px-Maven_logo.png -------------------------------------------------------------------------------- /doc/_presentations/images/logomark-orange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/logomark-orange@2x.png -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_FOSDEM17.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/poster/poster_FOSDEM17.indd -------------------------------------------------------------------------------- /spoon-dataflow/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-dataflow/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JGetHeight.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-smpl/src/test/resources/C4JGetHeight.zip -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JSetTextSize.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-smpl/src/test/resources/C4JSetTextSize.zip -------------------------------------------------------------------------------- /src/test/java/spoon/test/loop/testclasses/Condition.java: -------------------------------------------------------------------------------- 1 | package spoon.test.loop.testclasses; 2 | 3 | public class Condition { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/name/PackageTestClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.pkg.name; 2 | 3 | public class PackageTestClass 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This is test 3 | * JavaDoc. 4 | */ 5 | @Deprecated 6 | package spoon.test.pkg; 7 | -------------------------------------------------------------------------------- /src/test/resources/incremental/changed-files/D.java: -------------------------------------------------------------------------------- 1 | public class D { 2 | 3 | int a; 4 | String b; 5 | 6 | void func() { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/indentation/singletypemember/Tabs.java: -------------------------------------------------------------------------------- 1 | package indentation.singletypemember; 2 | 3 | public class Tabs { 4 | int x; 5 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/IsoEncoding.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/noclasspath/IsoEncoding.java -------------------------------------------------------------------------------- /src/test/resources/simple-module/spoonmod/TestClass.java: -------------------------------------------------------------------------------- 1 | package spoonmod; 2 | 3 | public class TestClass { 4 | public TestClass() {} 5 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/duplicateclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.exceptions; 2 | 3 | //also defined in Bar.java 4 | class Foo {} -------------------------------------------------------------------------------- /src/test/resources/spoon/test/processor/test/sub/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.processing.testclasses.test.sub; 2 | 3 | public class A { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/visibility/snakeyaml-1.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/visibility/snakeyaml-1.9.jar -------------------------------------------------------------------------------- /doc/_data/tags_doc.yml: -------------------------------------------------------------------------------- 1 | allowed-tags: 2 | - getting-started 3 | - usage 4 | - meta-model 5 | - quering 6 | - processor 7 | - template 8 | -------------------------------------------------------------------------------- /doc/_presentations/images/ic_history_48px-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/images/ic_history_48px-512.png -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JShouldVibrate.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-smpl/src/test/resources/C4JShouldVibrate.zip -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/endtoend/README.md: -------------------------------------------------------------------------------- 1 | TODO: document the format, particularly the "skip" and "intentionally-does-not-compile" tags 2 | -------------------------------------------------------------------------------- /src/test/java/spoon/support/compiler/jdt/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.support.compiler.jdt.testclasses; 2 | 3 | public class Foo { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/ITacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | public interface ITacos { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/replace/Item.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.replace; 2 | 3 | interface Item { 4 | } -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/hierarchy/child/src/Test.java: -------------------------------------------------------------------------------- 1 | package maven-launcher.hierarchy.child.src; 2 | 3 | public class Test { 4 | 5 | } -------------------------------------------------------------------------------- /src/test/resources/records/MultiParameter.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record MultiParameter(int first, float second) { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/code-multiple-modules/bar/packbar/BarClass.java: -------------------------------------------------------------------------------- 1 | package packbar; 2 | 3 | public class BarClass { 4 | 5 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/code-multiple-modules/foo/packfoo/FooClass.java: -------------------------------------------------------------------------------- 1 | package packfoo; 2 | 3 | public class FooClass { 4 | 5 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/overlapping-packages/first/test/parent/nested/Foo.java: -------------------------------------------------------------------------------- 1 | package test.parent.nested; 2 | 3 | class Foo {} 4 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/visitor/ConditionalRes.java: -------------------------------------------------------------------------------- 1 | public class ConditionalRes { 2 | 3 | byte [] b = new byte [] { true ? 1 : 2}; 4 | 5 | } -------------------------------------------------------------------------------- /doc/doc_homepage.md: -------------------------------------------------------------------------------- 1 | This defaul page (index.html) of spoon.gforge.inria.fr/ is populated with the top-level README. 2 | It simplifies maintenance. 3 | -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JOnConsoleMessage.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-smpl/src/test/resources/C4JOnConsoleMessage.zip -------------------------------------------------------------------------------- /src/test/java/spoon/test/enums/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.enums.testclasses; 2 | 3 | public enum Foo { 4 | @Deprecated 5 | Bar; 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal3/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal3; 2 | 3 | public class Bar { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/serializable/testclasses/Dummy.java: -------------------------------------------------------------------------------- 1 | package spoon.test.serializable.testclasses; 2 | 3 | public class Dummy { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/ArithmeticExpressionWithSpaces.java: -------------------------------------------------------------------------------- 1 | class ArithmeticExpressionWithSpaces { 2 | double value = ( (double) (3 / 2)) / 2; 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/classloader-test/LauncherUser.java: -------------------------------------------------------------------------------- 1 | import spoon.Launcher; 2 | 3 | public class LauncherUser { 4 | Launcher launcher; 5 | 6 | } -------------------------------------------------------------------------------- /src/test/resources/indentation/singletypemember/TwoSpaces.java: -------------------------------------------------------------------------------- 1 | package indentation.singletypemember; 2 | 3 | public class TwoSpaces { 4 | int x; 5 | } -------------------------------------------------------------------------------- /src/test/resources/inherit-static-method/Base.java: -------------------------------------------------------------------------------- 1 | public class Base { 2 | public static int getMeaning() { 3 | return 42; 4 | } 5 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Demo2.java: -------------------------------------------------------------------------------- 1 | 2 | public class Demo2 implements example.FooBar>.Bar> { 3 | 4 | } -------------------------------------------------------------------------------- /src/test/resources/records/PartiallyAnnotations.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record PartiallyAnnotations(@Override int a) { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/reference-test/ReferenceTest.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/reference-test/ReferenceTest.jar -------------------------------------------------------------------------------- /src/test/resources/spoon/test/inheritance/MyInterface.java: -------------------------------------------------------------------------------- 1 | package org.myorganization; 2 | 3 | public interface MyInterface { 4 | void method(); 5 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/simple_module_with_code/module-info-tpl: -------------------------------------------------------------------------------- 1 | module simple_module_with_code { 2 | exports fr.simplemodule.pack; 3 | } -------------------------------------------------------------------------------- /doc/_includes/linkrefs.html: -------------------------------------------------------------------------------- 1 | {% include custom/conditions.html %} 2 | {% include {{link}} %} 3 | {% include alerts.html %} 4 | {% include callouts.html %} -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_adt_Gerard_Paligot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/poster/poster_adt_Gerard_Paligot.pdf -------------------------------------------------------------------------------- /src/test/java/spoon/test/enums/testclasses/AnonEnum.java: -------------------------------------------------------------------------------- 1 | package spoon.test.enums.testclasses; 2 | 3 | public enum AnonEnum { 4 | A { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/incremental/original-files/A.java: -------------------------------------------------------------------------------- 1 | public class A { 2 | 3 | int a; 4 | 5 | int func(int x, int y) { 6 | return x + y; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/indentation/singletypemember/FourSpaces.java: -------------------------------------------------------------------------------- 1 | package indentation.singletypemember; 2 | 3 | public class FourSpaces { 4 | int x; 5 | } -------------------------------------------------------------------------------- /src/test/resources/keywordCompliance/enum/Foo.java: -------------------------------------------------------------------------------- 1 | package keywordCompliance.enum; 2 | 3 | public class Foo { 4 | 5 | public Foo() { 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/ternary-bug/data/IssueType.java: -------------------------------------------------------------------------------- 1 | package de.uni_bremen.st.quide.persistence.data; 2 | 3 | public enum IssueType { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/npe/SneakyCrashy.java: -------------------------------------------------------------------------------- 1 | package npe; 2 | 3 | public interface SneakyCrashy { 4 | void sneakyThrows() throws T; 5 | } -------------------------------------------------------------------------------- /src/test/resources/npe/SneakySubclass.java: -------------------------------------------------------------------------------- 1 | package npe; 2 | 3 | public interface SneakySubclass extends SneakyCrashy { 4 | void iForceTypeAdaption(); 5 | } -------------------------------------------------------------------------------- /src/test/resources/reference-test-2/ReferenceTest2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/reference-test-2/ReferenceTest2.jar -------------------------------------------------------------------------------- /src/test/resources/spoon/test/template/SimpleAssert.java: -------------------------------------------------------------------------------- 1 | class SimpleAssert { 2 | public void main() { 3 | assert 6 * 7 == 42; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_adt_Gerard_Paligot.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/poster/poster_adt_Gerard_Paligot.indd -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JSendStickyBroadcast.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-smpl/src/test/resources/C4JSendStickyBroadcast.zip -------------------------------------------------------------------------------- /src/test/java/spoon/test/compilation/testclasses/Ifoo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.compilation.testclasses; 2 | 3 | public interface Ifoo { 4 | int foo(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/factory/testclasses4/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.factory.testclasses4; 2 | 3 | public class Bar { 4 | 5 | public void foo() { } 6 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/method_overriding/testclasses/IA.java: -------------------------------------------------------------------------------- 1 | package spoon.test.method_overriding.testclasses; 2 | 3 | public interface IA { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooClazz.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | @Deprecated 4 | public class FooClazz { 5 | 6 | } -------------------------------------------------------------------------------- /src/test/resources/classloader-test/spoon/Launcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/classloader-test/spoon/Launcher.class -------------------------------------------------------------------------------- /src/test/resources/modules/error-reporting-java-1.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/modules/error-reporting-java-1.0.1.jar -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Demo5.java: -------------------------------------------------------------------------------- 1 | public class Demo5 { 2 | public void foo() { 3 | A.B b = new A.B() { 4 | D d = new D(); 5 | }; 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/FieldAccessRes.java: -------------------------------------------------------------------------------- 1 | public class FieldAccessRes { 2 | 3 | void method() { 4 | A a = new A(); 5 | a.l = 5; 6 | } 7 | 8 | } -------------------------------------------------------------------------------- /src/test/resources/reference-test/InterfaceWithEnumJar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/reference-test/InterfaceWithEnumJar.jar -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/SealedClassWithPermits.java: -------------------------------------------------------------------------------- 1 | public sealed class SealedClassWithPermits 2 | permits ExtendingClass, OtherExtendingClass { 3 | } -------------------------------------------------------------------------------- /src/test/resources/snippet/UnnamedPackageSnippetResource.java: -------------------------------------------------------------------------------- 1 | public class UnnamedPackageSnippetResource { 2 | 3 | public void method() { 4 | 5 | } 6 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/duplicateclasses/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.exceptions; 2 | public class Bar{} 3 | 4 | // also defined in Foo.java 5 | class Foo {} -------------------------------------------------------------------------------- /doc/404.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Page Not Found" 3 | description: "Page not found." 4 | --- 5 | 6 | Sorry, but the page you were trying to view does not exist. 7 | 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/BasicAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public interface BasicAnnotation { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/TestAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface TestAnnotation 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/factory/testclasses3/Cooking.java: -------------------------------------------------------------------------------- 1 | package spoon.test.factory.testclasses3; 2 | 3 | public interface Cooking { 4 | class Tacos {} 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/interfaces/testclasses/EmptyInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.interfaces.testclasses; 2 | 3 | public interface EmptyInterface { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/TestSingleLineClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; public class TestSingleLineClass { int x; int y; int z; } -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class Bar { 4 | public Bar(int i) { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/SuperFoo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public interface SuperFoo { 4 | void m(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/TestNullable.java: -------------------------------------------------------------------------------- 1 | import javax.annotation.Nullable; 2 | import com.google.common.collect.Lists; 3 | 4 | public class TestNullable { 5 | } -------------------------------------------------------------------------------- /src/test/java/spoon/reflect/declaration/testclasses/TestInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.reflect.declaration.testclasses; 2 | 3 | public interface TestInterface { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/constructor/testclasses/ImplicitConstructor.java: -------------------------------------------------------------------------------- 1 | package spoon.test.constructor.testclasses; 2 | 3 | public class ImplicitConstructor { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses3/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | public interface Bar { 4 | O transform(I input); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal4/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal4; 2 | 3 | public class Foo { 4 | public int foo; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/cyclic/indirect/package-info.java: -------------------------------------------------------------------------------- 1 | @Cyclic 2 | package spoon.test.pkg.cyclic.indirect; 3 | 4 | import spoon.test.pkg.cyclic.direct.Cyclic; 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/TestCommentedOutClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | //public class TestCommentedOutClass { 4 | //} 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Kuu.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public interface Kuu { 4 | default void m() { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Parameter.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public @interface Parameter { 4 | String value(); 5 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/type/testclasses/Mole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.type.testclasses; 2 | 3 | public class Mole> { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/classloader-test/spoontest/Foo.java: -------------------------------------------------------------------------------- 1 | package spoontest; 2 | 3 | public class Foo implements IFoo 4 | { 5 | public Foo() 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/path with spaces +and+ plusses/lib/bar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/path with spaces +and+ plusses/lib/bar.jar -------------------------------------------------------------------------------- /src/test/resources/reference-package/Panini.java: -------------------------------------------------------------------------------- 1 | 2 | import com.awesome.Burritos; 3 | 4 | public class Panini { 5 | public Burritos m() { 6 | return null; 7 | } 8 | } -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/ExtendingClass.java: -------------------------------------------------------------------------------- 1 | public final class ExtendingClass extends SealedClassWithPermits implements SealedInterfaceWithPermits { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/arrayInitialisation/ToNull.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class ToNull { 4 | int array[]; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/inheritance/AnotherClass.java: -------------------------------------------------------------------------------- 1 | package org.acme; 2 | 3 | import fr.acme.MyClass; 4 | 5 | public class AnotherClass { 6 | MyClass field; 7 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/Mole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses; 2 | 3 | class Mole { 4 | public class Delicious { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/NoMethodModifiers.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public interface NoMethodModifiers { 4 | void m(); 5 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/inheritance/SuperClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.inheritance; 2 | 3 | public class SuperClass { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/visibility/packageprotected/NonAccessibleInterf.java: -------------------------------------------------------------------------------- 1 | package spoon.test.visibility.packageprotected; 2 | 3 | interface NonAccessibleInterf { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/OtherExtendingClass.java: -------------------------------------------------------------------------------- 1 | public final class OtherExtendingClass extends SealedClassWithPermits implements SealedInterfaceWithPermits { 2 | } 3 | -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/SealedInterfaceWithPermits.java: -------------------------------------------------------------------------------- 1 | public sealed interface SealedInterfaceWithPermits 2 | permits ExtendingClass, OtherExtendingClass { 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/sourcePosition/ClassWithAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.sourcePosition 2 | 3 | @TestAnnotation("/*") 4 | public class ClassWithAnnotation { } -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/InnerAnnot.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface InnerAnnot 4 | { 5 | String value(); 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/enums/testclasses/Burritos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.enums.testclasses; 2 | 3 | public enum Burritos { 4 | ; 5 | public static void m() { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/memberaccess/DoesnotExtendA.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.memberaccess; 2 | 3 | public class DoesnotExtendA { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/memberaccess2/DoesnotExtendA.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.memberaccess2; 2 | 3 | public class DoesnotExtendA { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/IFaceK.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public interface IFaceK { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/importCleaner/WildCardImport.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class WildCardImport { 4 | private static List x = new ArrayList<>(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/same-package/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.same; 2 | 3 | public class A { 4 | 5 | public B createB() { 6 | return new B(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/printer-test/DefaultPrettyPrinterDependency.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/printer-test/DefaultPrettyPrinterDependency.jar -------------------------------------------------------------------------------- /src/test/resources/records/NoClasspathAnnotations.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | 4 | @Deprecated 5 | public record NoClasspathAnnotations(@A @B String bar) { 6 | 7 | 8 | } 9 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # file such that Spoon is considered as sponsorable by Github 2 | github: [spoonlabs] 3 | # https://opencollective.com/spoon-java 4 | open_collective: spoon-java 5 | -------------------------------------------------------------------------------- /doc/_presentations/code_transformation/CodeTransformationWithSpoon.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/code_transformation/CodeTransformationWithSpoon.pdf -------------------------------------------------------------------------------- /doc/_presentations/code_transformation/CodeTransformationWithSpoon.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/doc/_presentations/code_transformation/CodeTransformationWithSpoon.zip -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/TestInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | @TestAnnotation 4 | public interface TestInterface 5 | { 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/shadow/StandardRetention.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.shadow; 2 | 3 | public @interface StandardRetention { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/IBurritos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | public interface IBurritos { 4 | IBurritos make(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/memberaccess/Iface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.memberaccess; 2 | 3 | public interface Iface { 4 | int field = 1; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/invocations/testclasses/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.invocations.testclasses; 2 | 3 | public class Bar { 4 | public static void staticMethod() { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/cyclic/direct/package-info.java: -------------------------------------------------------------------------------- 1 | @Cyclic 2 | @Indirect 3 | package spoon.test.pkg.cyclic.direct; 4 | 5 | import spoon.test.pkg.cyclic.indirect.Indirect; 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooClazz2.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | /** getLine starts at api documentation */ 4 | public class FooClazz2 {} 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/TypeM.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public class TypeM extends TypeL { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference; 2 | 3 | public interface Foo extends Sup { 4 | void foo(); 5 | } 6 | 7 | interface Sup { 8 | void sup(); 9 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public interface Foo extends SuperFoo { 4 | @Override 5 | void m(); 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/types/AnEnumModel.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.types; 2 | 3 | public enum AnEnumModel { 4 | case1, case2; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/Summary.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface Summary { 4 | String title(); 5 | String date(); 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/package-info.java: -------------------------------------------------------------------------------- 1 | @AnnotationRepeated("Package 1") 2 | @AnnotationRepeated("Package 2") 3 | package spoon.test.annotation.testclasses; 4 | 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/repeatable/Tags.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.repeatable; 2 | 3 | public @interface Tags { 4 | Tag[] value(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/difftest/EnumTest.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.difftest; 2 | 3 | public enum EnumTest { 4 | TEST1, TEST2 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/constructors/C1.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.constructors; 2 | 3 | public class C1 { 4 | 5 | int[][][] myArray; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/inheritance/SubClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.inheritance; 2 | 3 | public class SubClass extends SuperClass { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/compilation/compilation-tests/IBar.java: -------------------------------------------------------------------------------- 1 | package compilation; 2 | 3 | /** 4 | * Created by thomas on 28/10/16. 5 | */ 6 | public interface IBar { 7 | int m(); 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/extendsStaticInnerType/FooBar.java: -------------------------------------------------------------------------------- 1 | package extendsStaticInnerType; 2 | 3 | public class FooBar { 4 | 5 | public interface Crashy { 6 | 7 | String foo(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/app/Test.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public class Test { 4 | public static void main(String[] args){ 5 | System.out.println("test"); 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/same-package/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.same; 2 | 3 | public class B { 4 | 5 | public String getName() { 6 | return "This is B."; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/records/DeriveAnnotations.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | import javax.validation.constraints.NotNull; 4 | 5 | public record DeriveAnnotations(@NotNull int a) { 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/reference-test/InterfaceWithEnum.java: -------------------------------------------------------------------------------- 1 | 2 | public interface InterfaceWithEnum { 3 | 4 | public static enum Colors { Red, Black, White }; 5 | String someMethod(); 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/sourcePosition/SourcePartitionValidator.java: -------------------------------------------------------------------------------- 1 | package sourcePosition; 2 | 3 | class SourcePartitionValidator { 4 | public enum MatchingStrategy { } 5 | } 6 | -------------------------------------------------------------------------------- /spoon-decompiler/src/test/resources/jarLauncher/helloworld-1.0-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-decompiler/src/test/resources/jarLauncher/helloworld-1.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/CustomAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface CustomAnnotation { 4 | String something(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/factory/testclasses3/Prepare.java: -------------------------------------------------------------------------------- 1 | package spoon.test.factory.testclasses3; 2 | 3 | public class Prepare { 4 | interface Tacos {} 5 | public interface Pozole {} 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/Kuu.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses; 2 | 3 | public class Kuu { 4 | public void m(Mole.Delicious delicious) { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal2/Menudo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal2; 2 | 3 | public class Menudo { 4 | public static void m() { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Burritos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class Burritos { 4 | public Tacos m() { 5 | return null; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/ForLoop.java: -------------------------------------------------------------------------------- 1 | public class ForLoop { 2 | public void forLoop() { 3 | for (int i = 0; i < 10; i++) { 4 | System.out.println(i); 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/A5.java: -------------------------------------------------------------------------------- 1 | public class A5 extends UnknownKlass { 2 | 3 | T a; 4 | 5 | void m1() { 6 | X x; 7 | someMethod(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/path with spaces +and+ plusses/Foo.java: -------------------------------------------------------------------------------- 1 | import bar.Bar; 2 | 3 | public class Foo { 4 | Foo() { 5 | } 6 | 7 | Bar foo() { 8 | return new Bar(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/printer-test/spoon/test/prettyprinter/DefaultPrettyPrinterDependency.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter; 2 | 3 | public class DefaultPrettyPrinterDependency { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/receiver/InnerClassCtor.java: -------------------------------------------------------------------------------- 1 | package receiver; 2 | public class Outer { 3 | class Inner { 4 | public Inner(Outer Outer.this) { 5 | 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/arrayInitialisation/GenericTypeArray.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class GenericTypeArray { 4 | Class array[]; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/field/testclasses/BaseClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.field.testclasses; 2 | 3 | public class BaseClass { 4 | public final static String PREFIX = "BasePrefix"; 5 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/Lunch.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | public class Lunch { 4 | void eatMe(A paramA, B paramB, C paramC){} 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses3/UpperBoundedWildcard.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | public class UpperBoundedWildcard> { } 4 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | public class A { 4 | 5 | public class ArrayList extends java.util.ArrayList { 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/SomeEnum.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public enum SomeEnum { 4 | X { 5 | void m() {}; 6 | }; 7 | 8 | abstract void m(); 9 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/IFaceL.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public interface IFaceL extends IFaceB { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Mole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class Mole { 4 | private void make(Parameter p) { 5 | p.value(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/staticFieldAccess2/testclasses/ALong.java: -------------------------------------------------------------------------------- 1 | package spoon.test.staticFieldAccess2.testclasses; 2 | 3 | public @interface ALong 4 | { 5 | public long number() default 7; 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/duplicates-in-submodules/moduleA/duplicates/WithNestedEnum.java: -------------------------------------------------------------------------------- 1 | package duplicates; 2 | 3 | class WithNestedEnum { 4 | public enum NestedEnum { 5 | YES; 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/records/ExplicitAccessor.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record ExplicitAccessor(String b) { 4 | 5 | public String b() { 6 | return b; 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/reference-test-2/spoontest/c/ClassC.java: -------------------------------------------------------------------------------- 1 | package spoontest.c; 2 | 3 | public class ClassC { 4 | public String name(Object o) { 5 | return o.getClass().getName(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/arrayInitialisation/FiveIntegers.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class FiveIntegers { 4 | int array[] = {1, 2, 3, 4, 5}; 5 | } 6 | -------------------------------------------------------------------------------- /doc/_release/changelog_generator/README.md: -------------------------------------------------------------------------------- 1 | # Changelog Generator 2 | 3 | ## Usage 4 | ``` 5 | cd doc/_release/changelog_generator 6 | npm install 7 | node changelog.js 8 | ``` 9 | -------------------------------------------------------------------------------- /spoon-smpl/tools/smplcli.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script runs the spoon-smpl CLI application 4 | 5 | java -cp $(for f in ./target/*.jar; do echo -n $f:; done) spoon.smpl.CommandlineApplication $@ 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal3/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal3; 2 | 3 | public class Foo { 4 | public Bar bar() { 5 | return null; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/testclasses/AbstractClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.testclasses; 2 | 3 | public abstract class AbstractClass { 4 | public AbstractClass() { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/ParamRefs.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class ParamRefs { 4 | public ParamRefs(int param) { 5 | if(param == 0){} 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/patternmatching/InstanceofPatternMatch.java: -------------------------------------------------------------------------------- 1 | class X { 2 | String typePattern(Object obj) { 3 | if (obj instanceof String s) { 4 | return s; 5 | } 6 | return ""; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/arrayInitialisation/ToNullElements.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class ToNullElements { 4 | String array[] = new String[42]; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/api/CommentedClass.java: -------------------------------------------------------------------------------- 1 | //package spoon.test.api.testclasses; 2 | // 3 | ///** 4 | // * Created by urli on 03/05/2017. 5 | // */ 6 | //public class CommentedClass { 7 | //} 8 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/exceptions/ClassWithError.java: -------------------------------------------------------------------------------- 1 | package spoon.test.exceptions; 2 | 3 | class ClassWithError { 4 | void foo() { 5 | int x = KJHIZGR.f; // this is the error 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /spoon-decompiler/src/test/resources/agent/classes/se/kth/castor/TransformMe.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/spoon-decompiler/src/test/resources/agent/classes/se/kth/castor/TransformMe.class -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/OtherJavaDoc.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | /** 4 | * A short description without a proper end 5 | */ 6 | public class OtherJavaDoc { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/compilation/testclasses/IBar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.compilation.testclasses; 2 | 3 | /** 4 | * Created by thomas on 28/10/16. 5 | */ 6 | public interface IBar { 7 | int m(); 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses3/UpperBoundedWildcardUser.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | public class UpperBoundedWildcardUser { 4 | UpperBoundedWildcard x; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/testclasses/internal/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Test 3 | */ 4 | /* 5 | * Test 2 6 | */ 7 | // Test 3 8 | @Deprecated 9 | package spoon.test.pkg.testclasses.internal; 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/DefaultMethod.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public interface DefaultMethod { 4 | default public void test() { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/staticFieldAccess2/testclasses/Constants.java: -------------------------------------------------------------------------------- 1 | package spoon.test.staticFieldAccess2.testclasses; 2 | 3 | public class Constants 4 | { 5 | public static final long PRIO = 1; 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/varargs/testclasses/VarArgsSample.java: -------------------------------------------------------------------------------- 1 | package spoon.test.varargs.testclasses; 2 | 3 | public class VarArgsSample { 4 | 5 | void foo(int arg0, String... args) { 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/indentation/Tabs.java: -------------------------------------------------------------------------------- 1 | package indentation; 2 | 3 | public class Tabs { 4 | private int x = 1; 5 | private int y = 2; 6 | 7 | public int sum() { 8 | return x + y; 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/resources/layornos/AllocationStorage.java: -------------------------------------------------------------------------------- 1 | public class AllocationStorage 2 | { 3 | 4 | public void initContainerTemplate() 5 | { 6 | Class component; 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/no-copy-resources/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/lambdas/imported/SeparateInterfaceWithField.java: -------------------------------------------------------------------------------- 1 | package imported; 2 | 3 | public interface SeparateInterfaceWithField { 4 | String fieldInSeparateInterface = "spoon"; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/Inception.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface Inception { 4 | InnerAnnot value(); 5 | InnerAnnot[] values() default {}; 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/repeatandarrays/TagsArrays.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.repeatandarrays; 2 | 3 | public @interface TagsArrays { 4 | TagArrays[] value(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses; 2 | 3 | public class A { 4 | public static int myField = 3; 5 | public static final int myfinalField = 3; 6 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/rxjava/Try.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses.rxjava; 2 | 3 | 4 | /** 5 | * Created by urli on 07/06/2017. 6 | */ 7 | public final class Try { 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses3/ClassThatDefinesANewTypeArgument.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | public class ClassThatDefinesANewTypeArgument { 4 | void foo(T t){} 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/badimportissue3320/source/other/SomeObjectDto.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.badimportissue3320.source.other; 2 | 3 | public class SomeObjectDto { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/jdtimportbuilder/testclasses/fullpack/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.jdtimportbuilder.testclasses.fullpack; 2 | 3 | /** 4 | * Created by urli on 09/08/2017. 5 | */ 6 | public class A { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/jdtimportbuilder/testclasses/fullpack/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.jdtimportbuilder.testclasses.fullpack; 2 | 3 | /** 4 | * Created by urli on 09/08/2017. 5 | */ 6 | public class B { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/jdtimportbuilder/testclasses/fullpack/C.java: -------------------------------------------------------------------------------- 1 | package spoon.test.jdtimportbuilder.testclasses.fullpack; 2 | 3 | /** 4 | * Created by urli on 09/08/2017. 5 | */ 6 | public class C { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooAbstractMethod.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public abstract class FooAbstractMethod { 4 | 5 | public abstract void m(final int parm1); 6 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/TestSimpleClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; public class TestSimpleClass { 2 | public int x; 3 | public int y; 4 | public int z; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/no-copy-resources/fr/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Demo4.java: -------------------------------------------------------------------------------- 1 | 2 | import example.A; 3 | import example.B; 4 | 5 | public class Demo4 extends B { 6 | A a; 7 | private void doSomething() { 8 | a.foo().bar(b); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/QualifiedArrayType.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class QualifiedArrayType { 4 | java.lang.Object[] builtinTypeArray; 5 | java.util.Collection[] importedTypeArray; 6 | } -------------------------------------------------------------------------------- /src/test/resources/typeannotations/p02/InterfaceExtends.java: -------------------------------------------------------------------------------- 1 | package typeannotations.p02; 2 | 3 | import typeannotations.TypeUseA; 4 | 5 | public interface InterfaceExtends extends @TypeUseA Cloneable { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/properties.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | /** 4 | * Created by urli on 03/05/2017. 5 | */ 6 | public class Bar { 7 | public void bidule() {} 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/notrepeatable/StringAnnot.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.notrepeatable; 2 | 3 | public @interface StringAnnot { 4 | String value() default ""; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/Kun.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import static spoon.reflect.path.CtRole.NAME; 4 | 5 | public class Kun { 6 | String field = NAME.toString(); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/loop/testclasses/EmptyLoops.java: -------------------------------------------------------------------------------- 1 | package spoon.test.loop.testclasses; 2 | 3 | public class EmptyLoops { 4 | void m1() { 5 | int x = 0; 6 | for (;;) x = 5; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/TypeParameter.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | import java.util.List; 4 | 5 | public interface TypeParameter { 6 | > void m(); 7 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/replace/testclasses/Mole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.replace.testclasses; 2 | 3 | public class Mole { 4 | void m() { 5 | try { 6 | int i; 7 | } finally { 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/import-resources/fr/inria/MissingImport.java: -------------------------------------------------------------------------------- 1 | 2 | package fr.inria; 3 | import fr.inria.internal.Abcd; 4 | 5 | public class MissingImport { 6 | 7 | private final Abcd abcd = new Abcd(); 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/no-copy-resources/fr/inria/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/test/resources/records/MultipleConstructors.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record MultipleConstructors(int i) { 4 | 5 | public MultipleConstructors(String s) { 6 | this(Integer.parseInt(s)); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/sourcePosition/FieldType.java: -------------------------------------------------------------------------------- 1 | package sourcePosition; 2 | 3 | public class FieldType { 4 | private SourcePartitionValidator.MatchingStrategy pleaseAttachSourcePositionToMyType; 5 | } 6 | -------------------------------------------------------------------------------- /spoon-dataflow/src/main/java/fr/inria/spoon/dataflow/misc/ConditionStatus.java: -------------------------------------------------------------------------------- 1 | package fr.inria.spoon.dataflow.misc; 2 | 3 | public enum ConditionStatus 4 | { 5 | ALWAYS_TRUE, 6 | ALWAYS_FALSE, 7 | OK, 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/reflect/declaration/testclasses/Subinterface.java: -------------------------------------------------------------------------------- 1 | package spoon.reflect.declaration.testclasses; 2 | 3 | public interface Subinterface extends TestInterface, Comparable { 4 | void foo(); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal/PublicSuperClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal; 2 | 3 | public class PublicSuperClass { 4 | public T visit() { 5 | return null; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal4/Constants.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal4; 2 | 3 | public interface Constants { 4 | Foo CONSTANT = new Foo(); 5 | 6 | void mamethode(); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/invocations/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.invocations.testclasses; 2 | 3 | public class Foo { 4 | public Foo() { 5 | String.valueOf(0); 6 | java.lang.String.valueOf(0); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/TypeK.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public class TypeK implements IFaceK { 4 | 5 | public TypeK() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/match/Check.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.match; 2 | 3 | public @interface Check { 4 | long timeout() default 0L; 5 | String value() default "def"; 6 | } -------------------------------------------------------------------------------- /src/test/resources/indentation/TwoSpaces.java: -------------------------------------------------------------------------------- 1 | package indentation; 2 | 3 | public class TwoSpaces { 4 | private int x = 1; 5 | private int y = 2; 6 | 7 | public int sum() { 8 | return x + y; 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/system-dependency/lib/bridge-method-annotation-1.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/HEAD/src/test/resources/maven-launcher/system-dependency/lib/bridge-method-annotation-1.13.jar -------------------------------------------------------------------------------- /src/test/resources/noclasspath/UnqualifiedStaticMethodCall.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | class UnqualifiedStaticMethodCall { 4 | public static void main(String[] args) { 5 | SomeClass.someMethod(args); 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/imports/testclasses2/toto/ImportSameName.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses2.toto; 2 | 3 | /** 4 | * Created by urli on 02/02/2017. 5 | */ 6 | public class ImportSameName { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/processor/test/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.processing.testclasses.test; 2 | 3 | import spoon.test.processing.testclasses.test.sub.A; 4 | 5 | public class B { 6 | private A a = new A(); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/static-method-and-type/imports-are-here/Bar.java: -------------------------------------------------------------------------------- 1 | package static_method_and_type.imports_are_here; 2 | 3 | public class Bar { 4 | public static void foo() {} 5 | public static class foo {} 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/enums/testclasses/Performable.java: -------------------------------------------------------------------------------- 1 | package spoon.test.enums.testclasses; 2 | 3 | import java.util.Stack; 4 | 5 | public interface Performable { 6 | void perform( Stack s, int[] op ); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/executable/testclasses/AnonymousExecutableSample.java: -------------------------------------------------------------------------------- 1 | package spoon.test.executable.testclasses; 2 | 3 | public class AnonymousExecutableSample { 4 | { 5 | } 6 | 7 | static { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/field/testclasses/AnnoWithConst.java: -------------------------------------------------------------------------------- 1 | package spoon.test.field.testclasses; 2 | 3 | public @interface AnnoWithConst { 4 | int VALUE = 42; 5 | } 6 | 7 | class User { 8 | int i = AnnoWithConst.VALUE; 9 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/SuperClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | public class SuperClass { 4 | public static class Item { 5 | public Item(int i, String s) { 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/model/testclasses/InterfaceWrithFields.java: -------------------------------------------------------------------------------- 1 | package spoon.test.model.testclasses; 2 | 3 | public interface InterfaceWrithFields 4 | { 5 | String IFACE_FIELD_1 = "f1"; 6 | long IFACE_FIELD_2 = 49; 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/Throw.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public class Throw { 4 | void foo(int x) { 5 | new IllegalArgumentException("x must be nonnegative"); 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/import-resources/ImportAndExtendWithPackageName.java: -------------------------------------------------------------------------------- 1 | import antlr.*; 2 | 3 | public class ImportAndExtendWithPackageName extends antlr.LLkParser { 4 | public static void main(final String[] args) {} 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/nestedInInterface/NestedInterfaceMembersArePublic.java: -------------------------------------------------------------------------------- 1 | interface Foo { 2 | 3 | enum NestedEnum { A; } 4 | interface NestedInterface {} 5 | @interface NestedAnnotation {} 6 | class NestedClass {} 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/issue5208/p20/ClassT3.java: -------------------------------------------------------------------------------- 1 | package p20; 2 | 3 | public class ClassT3 { 4 | final ClassT1 classT1; 5 | 6 | public ClassT3(ClassT1 classT1) { 7 | this.classT1 = classT1; 8 | } 9 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * comment1 3 | */ 4 | 5 | // comment2 6 | /** 7 | * Comment3 8 | */ 9 | @java.lang.Deprecated 10 | package spoon.test.comment.testclasses; 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses6/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses6; 2 | 3 | public class A { 4 | 5 | void m1(T a) { 6 | } 7 | 8 | void f() { 9 | this.m1(42); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/issue3321/SomeObjectDto.java: -------------------------------------------------------------------------------- 1 | package spoon.test.issue3321; 2 | 3 | /** 4 | * @author Gibah Joseph 5 | * Email: gibahjoe@gmail.com 6 | * Apr, 2020 7 | **/ 8 | public class SomeObjectDto { 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/IFaceB.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public interface IFaceB { 4 | @TestHierarchy("A_method1") 5 | void method1(T p1); 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/IFaceT.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public interface IFaceT { 4 | @TestHierarchy("R_method1") 5 | void method1(Double p1); 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/executable-reference/Foo.java: -------------------------------------------------------------------------------- 1 | public class Foo { 2 | public void m() { 3 | new Bar().m(); 4 | final Bar bar = new Bar(""); 5 | final Tacos t = bar.m(1); 6 | new Bar().m(1, "5"); 7 | Bar.m("42") 8 | } 9 | } -------------------------------------------------------------------------------- /src/test/resources/receiver/SimpleReceiverParameter.java: -------------------------------------------------------------------------------- 1 | package receiver; 2 | 3 | class SimpleReceiverParameter { 4 | 5 | public void foo(SimpleReceiverParameter this, int x) { 6 | System.out.println(x) 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/arrayInitialisation/MultiDimension.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class MultiDimension { 4 | protected static final String array[][][] = new String[1][2][3]; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/template/SimpleIfAsserted.java: -------------------------------------------------------------------------------- 1 | class SimpleAssert { 2 | public void main() { 3 | if (6 * 7 == 42) 4 | assert true; 5 | else 6 | assert false; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /doc/_release/deploy_local.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # runs the doc server locally 3 | 4 | # Generate the website. 5 | jekyll serve --watch 6 | if [ "$?" -ne 0 ]; then 7 | echo "Jekyll cannot build your site!" 8 | exit 1 9 | fi 10 | -------------------------------------------------------------------------------- /doc/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Introduction 3 | tags: [getting-started] 4 | type: first_page 5 | homepage: true 6 | --- 7 | {% if site.project == "doc_designers" %} 8 | {% include_relative doc_homepage.md %} 9 | {% endif %} 10 | 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/AnnotationDefaultAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface AnnotationDefaultAnnotation { 4 | InnerAnnot inner() default @InnerAnnot(""); 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/method_overriding/testclasses2/ObjectInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.method_overriding.testclasses2; 2 | 3 | public interface ObjectInterface { 4 | void doSomething(); 5 | boolean equals(Object other); 6 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/annotate/package-info.java: -------------------------------------------------------------------------------- 1 | @javax.xml.bind.annotation.XmlSchema(namespace = "n", elementFormDefault = XmlNsForm.QUALIFIED) 2 | package spoon.test.pkg.annotate; 3 | 4 | import javax.xml.bind.annotation.XmlNsForm; -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/DoubleBound.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | import java.io.*; 4 | 5 | public class DoubleBound 6 | { 7 | } 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/asserttest/AssertNOK.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.asserttest; 2 | 3 | public class AssertNOK { 4 | private void test() { 5 | assert true; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/extendsStaticInnerType/BarBaz.java: -------------------------------------------------------------------------------- 1 | package extendsStaticInnerType; 2 | 3 | public class BarBaz implements FooBar.Crashy { 4 | 5 | @Override 6 | public String foo() { 7 | return "bar!"; 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /src/test/java/spoon/reflect/visitor/testclasses/simpleNestedClassWithFields.java: -------------------------------------------------------------------------------- 1 | package spoon.reflect.visitor.testclasses; 2 | 3 | public class simpleNestedClassWithFields { 4 | 5 | int testField = 0; 6 | 7 | class subClass { } 8 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/change/testclasses/SubjectOfChange.java: -------------------------------------------------------------------------------- 1 | package spoon.test.change.testclasses; 2 | 3 | public class SubjectOfChange { 4 | 5 | public SubjectOfChange() { 6 | } 7 | 8 | int someField = 1; 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/TypeParameterComments.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | public class TypeParameterComments { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/control/testclasses/DoWhile.java: -------------------------------------------------------------------------------- 1 | package spoon.test.control.testclasses; 2 | 3 | public class DoWhile { 4 | 5 | public void methode(){ 6 | int i =0; 7 | do 8 | i++; 9 | while (i<5); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/main/testclasses/Test.java: -------------------------------------------------------------------------------- 1 | package spoon.test.main.testclasses; 2 | 3 | import spoon.template.Parameter; 4 | 5 | public class Test { 6 | void m(Parameter parameter) { 7 | parameter.value(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.pkg.testclasses; 2 | 3 | 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | public class Foo { 8 | List fieldList = new ArrayList(); 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/Enum.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference; 2 | 3 | public enum Enum { 4 | A, 5 | B, 6 | C; 7 | 8 | public static Enum getFirst(){ 9 | return valueOf("A"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/trycatch/testclasses/internal/MyException.java: -------------------------------------------------------------------------------- 1 | package spoon.test.trycatch.testclasses.internal; 2 | 3 | public class MyException extends RuntimeException { 4 | private static final long serialVersionUID = 1L; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/trycatch/testclasses/internal/MyException2.java: -------------------------------------------------------------------------------- 1 | package spoon.test.trycatch.testclasses.internal; 2 | 3 | public class MyException2 extends RuntimeException { 4 | private static final long serialVersionUID = 1L; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/dollar-and-nested-classes/$Poor$Name.java: -------------------------------------------------------------------------------- 1 | public class $Poor$Name { 2 | public Choice lookingForTroubles() { 3 | return new Choice(); 4 | } 5 | class Choice { 6 | public Choice() { } 7 | } 8 | } -------------------------------------------------------------------------------- /src/test/resources/indentation/FourSpaces.java: -------------------------------------------------------------------------------- 1 | package indentation; 2 | 3 | public class FourSpaces { 4 | private int x = 1; 5 | private int y = 2; 6 | 7 | public int sum() { 8 | return x + y; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/localtypes/LocalTypesHolder.java: -------------------------------------------------------------------------------- 1 | public class LocalTypesHolder { 2 | public void method() { 3 | enum MyEnum { 4 | 5 | } 6 | class MyClass { 7 | 8 | } 9 | interface MyInterface { 10 | 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/ExtendsObject.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | public class ExtendsObject { 4 | public void oneMethod() { 5 | 6 | } 7 | 8 | @Override 9 | public String toString() { 10 | return "Hello"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/noclasspath/targeted/StaticFieldReadOnly.java: -------------------------------------------------------------------------------- 1 | import spoon.Launcher; 2 | 3 | public class StaticFieldReadOnly { 4 | public static void main(String[] args) { 5 | Launcher.logger.error("Hello :)"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/typeannotations/TypeUseA.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 TypeUseA { 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/typeannotations/TypeUseB.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 TypeUseB { 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/reflect/declaration/testclasses/ExtendsArrayList.java: -------------------------------------------------------------------------------- 1 | package spoon.reflect.declaration.testclasses; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class ExtendsArrayList extends ArrayList { 6 | void m() {} 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/Banana.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | import java.util.AbstractList; 4 | 5 | public class Banana { 6 | abstract class Vitamins extends AbstractList { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooEnum.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public enum FooEnum { 4 | /** 5 | * Getter. 6 | * T get() 7 | */ 8 | GET(-1); 9 | 10 | private FooEnum(int i) {} 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/CatchQualifiedReference.java: -------------------------------------------------------------------------------- 1 | public class CatchQualifiedReference { 2 | public static void main(String[] args) { 3 | try { 4 | } catch (some.neat.pkg.CustomException e) { 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/receiver/Outer.java: -------------------------------------------------------------------------------- 1 | package receiver; 2 | public class Outer { 3 | class Middle { 4 | class Inner { 5 | public Inner(Middle Middle.this) { 6 | 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/records/NonCompactCanonicalConstructor.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record NonCompactCanonicalConstructor(int i) { 4 | 5 | public NonCompactCanonicalConstructor(int x) { 6 | this.i = x; 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/arrayInitialisation/AsLocalVariable.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class AsLocalVariable { 4 | public void doNothing() { 5 | int array[] = new int[]{ }; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/sourcePosition/TestAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.sourcePosition; 2 | 3 | // resource for https://github.com/INRIA/spoon/issues/3606 4 | public @interface TestAnnotation { 5 | String value() default ""; 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/internal/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses.internal; 2 | 3 | public abstract class Foo extends Bar.Inner { 4 | class Test { 5 | class Test2 { 6 | 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal2/Chimichanga.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal2; 2 | 3 | public class Chimichanga extends Tostada { 4 | } 5 | 6 | class Tostada { 7 | public void make() { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/NewArrayList.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class NewArrayList { 6 | void m() { 7 | new ArrayList<>(); 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | import java.util.ArrayList; 4 | 5 | class A { 6 | ArrayList list = new ArrayList<>(); 7 | } 8 | 9 | class B { 10 | 11 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Tortillas.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class Tortillas { 4 | public void make(String string) { 5 | String string1 = string; 6 | int number = number=40; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/sourcePosition/testclasses/Brambora.java: -------------------------------------------------------------------------------- 1 | package spoon.test.sourcePosition.testclasses; 2 | 3 | public class Brambora { 4 | void sourcePositionOfMyReturnTypeMustNotBeCopied() { 5 | System.out.println(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/types/AnIfaceModel.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.types; 2 | 3 | import java.io.Serializable; 4 | 5 | public interface AnIfaceModel extends Serializable { 6 | void someMethod(); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/variable/testclasses/ArrayAccessSample.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable.testclasses; 2 | 3 | public class ArrayAccessSample { 4 | public void method(String[] s) { 5 | s[0] = s[0]; 6 | System.err.println(s[0]); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/compilation/compilation-tests/Bar.java: -------------------------------------------------------------------------------- 1 | package compilation; 2 | 3 | public class Bar implements IBar { 4 | 5 | @Override 6 | public int m() { 7 | return 1; 8 | } 9 | } 10 | 11 | class FooEx extends RuntimeException {} 12 | -------------------------------------------------------------------------------- /src/test/resources/jdtimportbuilder/ItfImport.java: -------------------------------------------------------------------------------- 1 | package jdtimportbuilder; 2 | 3 | import static jdtimportbuilder.itf.DumbItf.*; 4 | 5 | public class ItfImport { 6 | 7 | String s = MYSTRING; 8 | int i = anotherStaticMethod(); 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/reference-test-2/spoontest/a/ClassA.java: -------------------------------------------------------------------------------- 1 | package spoontest.a; 2 | 3 | import spoontest.b.ClassB; 4 | 5 | public class ClassA { 6 | 7 | public ClassA() { 8 | namer = new ClassB(); 9 | } 10 | 11 | ClassB namer; 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/AnnotParam.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | 4 | public class AnnotParam { 5 | 6 | @SuppressWarnings({"unused","rawtypes"}) 7 | public void m(int a) { 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/rxjava/Processor.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses.rxjava; 2 | 3 | /** 4 | * Created by urli on 07/06/2017. 5 | */ 6 | public interface Processor extends Subscriber, Publisher { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/Pozole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import spoon.test.imports.testclasses.internal2.Menudo; 4 | 5 | public class Pozole { 6 | public void m1() { 7 | Menudo.m(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/cyclic/Outside.java: -------------------------------------------------------------------------------- 1 | package spoon.test.pkg.cyclic; 2 | 3 | import spoon.test.pkg.cyclic.direct.Cyclic; 4 | import spoon.test.pkg.cyclic.indirect.Indirect; 5 | 6 | @Cyclic 7 | @Indirect 8 | public class Outside { 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooClazzWithComments.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | /*c1*/ 4 | //lc1 5 | public /*c2*/ 6 | //lc2 /* 7 | class 8 | // */ 9 | /*c3 class // */ 10 | FooClazzWithComments { 11 | 12 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/bounds/FooBound.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.bounds; 2 | 3 | import java.util.Collection; 4 | 5 | public class FooBound { 6 | 7 | void method(Collection l) { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/duplicates-in-submodules/moduleB/duplicates/AlsoWithNestedEnum.java: -------------------------------------------------------------------------------- 1 | /** 2 | * See the comment in ../moduleA/duplicates/AlsoWithNestedEnum.java. 3 | */ 4 | public class AlsoWithNestedEnum { 5 | public enum SomeEnum { 6 | 7 | } 8 | } -------------------------------------------------------------------------------- /src/test/resources/importCleaner/DoNotRemoveSubType.java: -------------------------------------------------------------------------------- 1 | package importCleaner; 2 | 3 | import java.util.Map.Entry; 4 | 5 | public class DoNotRemoveSubType { 6 | public void hey() { 7 | Entry f = null; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/simple-import/TestClass.java: -------------------------------------------------------------------------------- 1 | package matchers; 2 | 3 | import java.io.InputStreamReader; 4 | import java.io.File; 5 | 6 | public class TestClass { 7 | public TestClass() { 8 | InputStreamReader isr; 9 | File t; 10 | } 11 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/noclasspath/targeted/Outer.java: -------------------------------------------------------------------------------- 1 | public class Outer { 2 | SomeClass cls = new SomeClass(); 3 | 4 | private class Inner { 5 | public void testMethod() { 6 | int a = cls.val; 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /.mvn/extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | com.gradle 5 | gradle-enterprise-maven-extension 6 | 1.11.1 7 | 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/SuperAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface SuperAnnotation { 4 | String value = ""; 5 | 6 | String value() default value; 7 | 8 | String value1(); 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses; 2 | 3 | public class B { 4 | private static final int finalField; 5 | 6 | static { 7 | A.myField = 5; 8 | finalField = 0; 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/model/testclasses/InterfaceSuperclass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.model.testclasses; 2 | 3 | public class InterfaceSuperclass implements Comparable { 4 | @Override 5 | public int compareTo(Integer o) { 6 | return 0; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | import spoon.test.annotation.testclasses.InnerAnnot; 4 | 5 | @Deprecated 6 | @InnerAnnot(value="machin") 7 | public interface FooInterface { 8 | 9 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/MyClass3.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class MyClass3 { 4 | 5 | public void methodI(T t) { 6 | 7 | } 8 | 9 | public void methodII(T t, K k) { 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/variable/testclasses/StackedAssignmentSample.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable.testclasses; 2 | 3 | public class StackedAssignmentSample { 4 | 5 | public void method() { 6 | int i,j,k = 3; 7 | i = j = k = 4; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/MultipleTopLevelTypes.java: -------------------------------------------------------------------------------- 1 | public class MultipleTopLevelTypes { 2 | private int x; 3 | } 4 | 5 | class OtherTopLevelType { 6 | private long z; 7 | } 8 | 9 | interface TopLevelInterface { 10 | int getValue(); 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/A6.java: -------------------------------------------------------------------------------- 1 | public class A6 { 2 | public static void main(String[] args) { 3 | int a = 1; 4 | if (a == 1) { 5 | 6 | } 7 | else if (a == 2) { 8 | 9 | } 10 | else if (a == 3) { 11 | 12 | } 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/test/resources/target-functional-interface-in-lambda/TargetsFunctionalInterface.java: -------------------------------------------------------------------------------- 1 | public class TargetsFunctionalInterface { 2 | public static void main(String[] args) { 3 | HasFunctionalInterface.supplyOne(i -> String.valueOf(i)); 4 | } 5 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/AnnotationMethodModifiers.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface AnnotationMethodModifiers { 4 | 5 | abstract String explicitAbstract(); 6 | 7 | String implicitAbstract(); 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/ctElement/testclasses/Returner.java: -------------------------------------------------------------------------------- 1 | package spoon.test.ctElement.testclasses; 2 | 3 | public class Returner { 4 | public static int get() { 5 | return 0; 6 | } 7 | 8 | public static int get2() { 9 | return 1; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/BCUBug20140402.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses; 2 | 3 | public class BCUBug20140402 { 4 | Object[] data = null; 5 | public void run(){ 6 | int a = this.data.length; 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/rxjava/Publisher.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses.rxjava; 2 | 3 | /** 4 | * Created by urli on 07/06/2017. 5 | */ 6 | public interface Publisher { 7 | void subscribe(Subscriber var1); 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/rxjava/Subject.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses.rxjava; 2 | 3 | /** 4 | * Created by urli on 07/06/2017. 5 | */ 6 | public abstract class Subject extends Observable implements Processor { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/Reflection.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | /** 6 | * Created by urli on 29/05/2017. 7 | */ 8 | public class Reflection { 9 | Field field; 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import static spoon.test.imports.testclasses.internal4.Constants.*; 4 | 5 | public class Tacos { 6 | void m() { 7 | int i = CONSTANT.foo; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/multiplecu/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.multiplecu; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by urli on 29/05/2017. 7 | */ 8 | public class A { 9 | private List list; 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/multiplecu/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.multiplecu; 2 | 3 | import java.awt.List; 4 | 5 | /** 6 | * Created by urli on 29/05/2017. 7 | */ 8 | public class B { 9 | private List list; 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/jdtimportbuilder/testclasses/staticimport/DependencySubClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.jdtimportbuilder.testclasses.staticimport; 2 | 3 | public class DependencySubClass extends Dependency { 4 | public static final int OTHER_INT = 42; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Stream.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class Stream { 6 | public Stream() { 7 | new ArrayList().stream().toArray(Bar[]::new); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/compilation/ClassWithStaticFields.java: -------------------------------------------------------------------------------- 1 | package compilation; 2 | 3 | public class ClassWithStaticFields { 4 | 5 | public static void methodOne() { 6 | 7 | } 8 | 9 | public static void methodTwo() { 10 | 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /src/test/resources/compilation3/A.java: -------------------------------------------------------------------------------- 1 | package compilation; 2 | 3 | public class A { 4 | public static boolean isFDroid = false; 5 | public static void methodOne() { 6 | 7 | } 8 | 9 | public static void methodTwo() { 10 | 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /src/test/resources/records/RecordWithInterface.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public class RecordTest { 4 | 5 | public record SimpleRecord(int a) implements Supplier { 6 | 7 | @Override 8 | public Object get() { 9 | return null; 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/simple_module_with_code/fr/simplemodule/pack/SimpleClass.java: -------------------------------------------------------------------------------- 1 | package fr.simplemodule.pack; 2 | 3 | public class SimpleClass { 4 | 5 | public static void main(String[] args) { 6 | System.out.println("Hello world!"); 7 | } 8 | } -------------------------------------------------------------------------------- /doc/_release/upgrade-license.md: -------------------------------------------------------------------------------- 1 | # Upgrade License 2 | 3 | In order to upgrade license, use `mvn license:format` after having change `LICENSE-short.txt` from the root. 4 | 5 | For more information about the plugin we are using, see: http://code.mycila.com/license-maven-plugin/. -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/repeatable/Tag.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.repeatable; 2 | 3 | import java.lang.annotation.Repeatable; 4 | 5 | @Repeatable(Tags.class) 6 | public @interface Tag { 7 | String value() default ""; 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/compilation/testclasses/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.compilation.testclasses; 2 | 3 | public class Bar implements IBar { 4 | 5 | @Override 6 | public int m() { 7 | return 1; 8 | } 9 | } 10 | 11 | class FooEx extends RuntimeException {} -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/memberaccess/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.memberaccess; 2 | 3 | public class A { 4 | private int privateField; 5 | protected int protectedField; 6 | int field; 7 | public int publicField; 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/cyclic/direct/Cyclic.java: -------------------------------------------------------------------------------- 1 | package spoon.test.pkg.cyclic.direct; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Cyclic { 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/InvocationReplacement.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public class InvocationReplacement { 4 | 5 | public static void main(String[] args) { 6 | String argStr = args.toString(); 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/RefactorCast.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public class RefactorCast { 4 | void example() { 5 | double a = 12345.0; 6 | String x = ((Double) a).toString(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/visibility/testclasses/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.visibility.testclasses; 2 | 3 | public class Tacos { 4 | int[] x; 5 | } 6 | 7 | class Burritos extends Tacos { 8 | void foo() { 9 | System.out.println(x.length); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/import-resources/fr/inria/FooNoClassPath.java: -------------------------------------------------------------------------------- 1 | public class FooNoClassPath { 2 | 3 | private Game game = new Game(); 4 | 5 | 6 | public void m() { 7 | Coords coords = new Coords(game.board.width - 2, game.board.height - 2); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/lambdas/TypeAccessInLambda.java: -------------------------------------------------------------------------------- 1 | import test.utils.Strings; 2 | 3 | public class TypeAccessInLambda { 4 | 5 | public void testMethod(final List strings) { 6 | strings.forEach(s -> Strings.ToUpperCase(s)); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/SpaceAfterFinal.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter; 2 | 3 | public class SpaceAfterFinal { 4 | 5 | private static final java.lang.String x; 6 | 7 | public SpaceAfterFinal() 8 | { 9 | x = "Test"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/imports/testclasses2/ImportSameName.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses2; 2 | 3 | /** 4 | * Created by urli on 02/02/2017. 5 | */ 6 | public class ImportSameName extends spoon.test.imports.testclasses2.toto.ImportSameName { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/inheritance/MyAbstractClass.java: -------------------------------------------------------------------------------- 1 | package org.myorganization.pack; 2 | 3 | import org.myorganization.MyInterface; 4 | 5 | public abstract class MyAbstractClass implements MyInterface { 6 | public MyAbstractClass(String name) { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/Pozole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public class Pozole { 4 | public void cook() { 5 | for (@SuppressWarnings("rawtypes") String u = "", p = "", e = ""; u != e; u = p, p = "") { 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/factory/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.factory.testclasses; 2 | 3 | @Foo.Bar() 4 | public class Foo { 5 | public @interface Bar { 6 | Class clazz() default Foo.class; 7 | 8 | Class[] classes() default {}; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/cyclic/indirect/Indirect.java: -------------------------------------------------------------------------------- 1 | package spoon.test.pkg.cyclic.indirect; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Indirect { 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/DoubleForInitializer.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public class DoubleForInitializer { 4 | public void test() { 5 | for (int i = 0, y = 0; y < 10; y++) { 6 | 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/Simple.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public class Simple 4 | { 5 | public void andSomeOtherMethod() 6 | { 7 | System.out.println("aaa"); 8 | System.out.println("bbb"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/innertype/InnerTypeOk2.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.innertype; 2 | 3 | import java.util.*; 4 | 5 | public class InnerTypeOk2 { 6 | private void test() { 7 | Map.Entry test; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/sub/TypeIdentifierCollision.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.sub; 2 | 3 | 4 | public class TypeIdentifierCollision 5 | { 6 | public enum ENUM{ 7 | E1 8 | } 9 | public static int globalField; 10 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/TypeR.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public class TypeR extends TypeK implements IFaceT { 4 | @TestHierarchy("R_method1") 5 | public void method1(Double p1) { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/annotated-parameter-on-nested-class-constructor/Caller.java: -------------------------------------------------------------------------------- 1 | import Enclosing; 2 | 3 | public class Caller { 4 | public Caller() { 5 | Enclosing e = new Enclosing<>(); 6 | Enclosing$Nested n = new Enclosing<>(System.out); 7 | } 8 | } -------------------------------------------------------------------------------- /src/test/resources/typeannotations/p01/ExtendsAndImplements.java: -------------------------------------------------------------------------------- 1 | package typeannotations.p01; 2 | 3 | import typeannotations.TypeUseA; 4 | import typeannotations.TypeUseB; 5 | 6 | public class ExtendsAndImplements extends @TypeUseA Object implements @TypeUseB Cloneable { 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/unresolved/Unresolved.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | import org.Bar; 4 | import org.foo.*; 5 | 6 | public class Unresolved { 7 | public Unresolved() { 8 | Bar b = new Bar(); 9 | Foo f = new Foo(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/support/compiler/jdt/testclasses/ExtendedStringLiteralTestClass.java: -------------------------------------------------------------------------------- 1 | package spoon.support.compiler.jdt.testclasses; 2 | 3 | public class ExtendedStringLiteralTestClass { 4 | 5 | final public static String extendedStringLiteral = "hello "+"world!"; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/executable/testclasses/WithEnum.java: -------------------------------------------------------------------------------- 1 | package spoon.test.executable.testclasses; 2 | 3 | public class WithEnum { 4 | enum MYENUM { 5 | VALUE1, VALUE2 6 | } 7 | 8 | public MYENUM from(String s) { 9 | return MYENUM.valueOf(s); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses4/C.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses4; 2 | 3 | import java.util.List; 4 | 5 | public class C { 6 | static > void m(W t) { 7 | m(t); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/loop/WhileNoBraces.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.loop; 2 | 3 | 4 | public class WhileNoBraces { 5 | 6 | public void test() { 7 | while(true) 8 | System.out.println("Test"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/testclasses/InterfaceRenaming.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.testclasses; 2 | 3 | public interface InterfaceRenaming { 4 | default void defaultMethod() { 5 | System.out.println("This is a default method in an interface."); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/spoonifier/testclasses/ArrayRealVector.java: -------------------------------------------------------------------------------- 1 | package spoon.test.spoonifier.testclasses; 2 | 3 | public class ArrayRealVector { 4 | ArrayRealVector(ArrayRealVector v, boolean b) { } 5 | ArrayRealVector(ArrayRealVector v) { 6 | this(v, true); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/inner-class/constants/Constants.java: -------------------------------------------------------------------------------- 1 | package inner_class.constants; 2 | 3 | public class Constants { 4 | public static int ZERO = 0; 5 | 6 | public static class InnerClass { 7 | public void print() { 8 | 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/issue5208/p20/ClassT1.java: -------------------------------------------------------------------------------- 1 | package p20; 2 | public abstract class ClassT1 { 3 | ClassT3 classT3; 4 | 5 | public ClassT1(){ 6 | this.classT3 = new ClassT3(this); 7 | } 8 | 9 | void fun2(ClassT3 classT3){ 10 | } 11 | } -------------------------------------------------------------------------------- /src/test/resources/reference-test/EnumsRef.java: -------------------------------------------------------------------------------- 1 | 2 | public class EnumsRef { 3 | 4 | enum Colors { Red, Black, White }; 5 | 6 | void func() 7 | { 8 | Colors x; 9 | x = Colors.Black; 10 | 11 | EnumJar.Colors y; 12 | y = EnumJar.Colors.Black; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /spoon-visualisation/src/main/java/spoon/visualisation/Launcher.java: -------------------------------------------------------------------------------- 1 | package spoon.visualisation; 2 | 3 | import javafx.application.Application; 4 | 5 | public class Launcher { 6 | public static void main(String[] args) { 7 | Application.launch(ShowMe.class); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/pkg/test_templates/FakeTemplate.java: -------------------------------------------------------------------------------- 1 | package spoon.test.pkg.test_templates; 2 | 3 | import spoon.template.ExtensionTemplate; 4 | 5 | public class FakeTemplate extends ExtensionTemplate 6 | { 7 | public FakeTemplate() 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/AnnotationWithAngleBracket.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | import spoon.processing.Property; 4 | 5 | public class AnnotationWithAngleBracket { 6 | @Property(value = "min <= desired") 7 | private static int test; 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooLambda.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | import java.util.function.Predicate; 4 | 5 | public class FooLambda { 6 | 7 | public static Predicate m() { 8 | return i -> i.compareTo(7) > 0; 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/staticFieldAccess/internal/Extends.java: -------------------------------------------------------------------------------- 1 | package spoon.test.staticFieldAccess.internal; 2 | 3 | /** 4 | * Created by nicolas on 05/09/2014. 5 | */ 6 | public class Extends extends Origin { 7 | public static final String MY_OTHER_STATIC_VALUE = "Value2"; 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/import-with-generics/TestWithGenerics.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | /** 3 | * Created by urli on 16/10/2017. 4 | */ 5 | public class TestWithGenerics { 6 | public spoon.test.imports.testclasses.withgenerics.Target myfields; 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/var/VarInLambda.java: -------------------------------------------------------------------------------- 1 | package fr.inria.sandbox; 2 | 3 | import java.util.function.BiFunction; 4 | 5 | public class VarInLambda { 6 | 7 | void m1() { 8 | BiFunction f1 = (var x, var y) -> x + y; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/target-functional-interface-in-lambda/HasFunctionalInterface.java: -------------------------------------------------------------------------------- 1 | import java.util.function.IntFunction; 2 | 3 | public class HasFunctionalInterface { 4 | public static void supplyOne(IntFunction intFunction) { 5 | intFunction.apply(1); 6 | } 7 | } -------------------------------------------------------------------------------- /.mvn/gradle-enterprise.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ON_DEMAND 4 | 5 | https://gradle.com/terms-of-service 6 | true 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/repeatandarrays/TagArrays.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.repeatandarrays; 2 | 3 | import java.lang.annotation.Repeatable; 4 | 5 | @Repeatable(TagsArrays.class) 6 | public @interface TagArrays { 7 | String[] value(); 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/TypeL.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public class TypeL extends TypeK implements IFaceL { 4 | @Override 5 | @TestHierarchy("A_method1") 6 | public void method1(Double p1) { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/duplicates-in-submodules/moduleA/duplicates/Main.java: -------------------------------------------------------------------------------- 1 | package duplicates; 2 | 3 | import duplicates.WithNestedEnum.NestedEnum; 4 | 5 | public class Main { 6 | public static void main(String[] args) { 7 | System.out.println(NestedEnum.YES.name()); 8 | } 9 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/issue5208/p20/ClassT2.java: -------------------------------------------------------------------------------- 1 | package p20; 2 | import p8.GlobalExecutor; 3 | 4 | public class ClassT2 extends ClassT1 { 5 | public void fun(){ 6 | GlobalExecutor.executeByCommon(() -> { 7 | fun2(classT3); 8 | }); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/AnnotParamTypeEnum.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | @TestAnnotation 4 | public enum AnnotParamTypeEnum 5 | { 6 | @TestAnnotation 7 | R, 8 | 9 | @TestAnnotation 10 | G, 11 | 12 | @TestAnnotation 13 | B 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/Panini.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | public class Panini { 4 | public Subscriber apply(Subscriber t) { 5 | return null; 6 | } 7 | 8 | public interface Subscriber { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses4/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses4; 2 | 3 | public class A { 4 | > void m6(T t) { 5 | } 6 | } 7 | class B extends A { 8 | @Override 9 | > void m6(S s) { 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/ImplicitBlock.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public class ImplicitBlock { 4 | boolean cond = true; 5 | 6 | public int method() { 7 | if (cond) return 10; 8 | else return 20; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/OneLineMultipleVariableDeclaration.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public class OneLineMultipleVariableDeclaration { 4 | 5 | int a, c; 6 | 7 | void foo(int a) { 8 | int b = 0, e = 1; 9 | a = a; 10 | } 11 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/asserttest/AssertOk.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.asserttest; 2 | 3 | public class AssertOk { 4 | private void test1() { 5 | }; 6 | 7 | private void test2() { 8 | assert true; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/difftest/EnumComment.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.difftest; 2 | 3 | public enum EnumComment { 4 | TEST("A", // 5 | "B"// 6 | ); 7 | 8 | EnumComment(String... args) { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/innertype/InnerTypeOk.java: -------------------------------------------------------------------------------- 1 | 2 | package spoon.test.prettyprinter.testclasses.innertype; 3 | 4 | import java.util.Map.*; 5 | 6 | public class InnerTypeOk { 7 | private void test() { 8 | Entry test; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/loop/ForNoBraces.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.loop; 2 | 3 | public class ForNoBraces { 4 | 5 | public void example() { 6 | 7 | for (int i = 0; i < 10; i++) 8 | System.out.println(i); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/loop/WhileWithBraces.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.loop; 2 | 3 | 4 | public class WhileWithBraces { 5 | 6 | public void test() { 7 | while(true) { 8 | System.out.println("Test"); 9 | } 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/test/resources/ReferenceBuilder-null-pointer/Foo.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.Collection; 3 | 4 | public class Foo { 5 | public void accept(Collection y) {} 6 | 7 | public void doSomething(Collection x) { 8 | accept(new ArrayList<>(x)); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/methodimport/ClassWithStaticMethod.java: -------------------------------------------------------------------------------- 1 | package methodimport; 2 | 3 | public class ClassWithStaticMethod { 4 | public static void main(String[] args) { 5 | } 6 | 7 | public static void staticMethod() { 8 | System.out.println(42); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/Bound.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target(ElementType.PARAMETER) 7 | public @interface Bound { 8 | int max() default 10; 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/executable/testclasses/MyIntf.java: -------------------------------------------------------------------------------- 1 | package spoon.test.executable.testclasses; 2 | 3 | import java.io.IOException; 4 | 5 | /** 6 | * Created by nicolas on 25/03/2015. 7 | */ 8 | public interface MyIntf { 9 | 10 | public void myMethod() throws IOException; 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/ArrayRealVector.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses; 2 | 3 | public class ArrayRealVector { 4 | ArrayRealVector(ArrayRealVector v) { 5 | this(v, true); 6 | } 7 | ArrayRealVector(ArrayRealVector v, boolean b) { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/innertype/InnerTypeCrash.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.innertype; 2 | 3 | import java.util.*; 4 | 5 | public class InnerTypeCrash { 6 | private void test() 7 | { 8 | Map.Entry test; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/TypeA.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public class TypeA { 4 | 5 | public TypeA() { 6 | } 7 | 8 | @TestHierarchy("A_method1") 9 | public void method1(Exception p1) { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/variable/testclasses/RHSSample.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable.testclasses; 2 | 3 | // contains four RHS assignments 4 | public class RHSSample { 5 | String s1 = "foo"; 6 | public void method() { 7 | String bar = "tacos"; 8 | int i; 9 | i = 4; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/variable/testclasses/VariableAccessSample.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable.testclasses; 2 | 3 | public class VariableAccessSample { 4 | 5 | public void method() { 6 | String s = "tacos"; 7 | System.out.println(s); 8 | int i = 3; 9 | i = 4; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/inheritance/MyClass.java: -------------------------------------------------------------------------------- 1 | package fr.acme; 2 | 3 | import org.myorganization.pack.MyAbstractClass; 4 | 5 | public class MyClass extends MyAbstractClass { 6 | public MyClass(String name) { 7 | super(name); 8 | } 9 | 10 | public void method() { 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/typeandfield/SimpleClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.typeandfield; 2 | 3 | public class SimpleClass { 4 | 5 | @AnnotTypeAndField 6 | public String mandatoryField; 7 | 8 | public @AnnotTypeAndField String anotherField; 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses3/InstanceOfMapEntryGeneric.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | import java.util.Map; 4 | 5 | public class InstanceOfMapEntryGeneric { 6 | public void methode(Object o) { 7 | boolean b = o instanceof Map.Entry; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/memberaccess/ExtendsA.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.memberaccess; 2 | 3 | public class ExtendsA extends A { 4 | private int my_privateField; 5 | protected int my_protectedField; 6 | int my_field; 7 | public int my_publicField; 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/sub/Constants.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.sub; 2 | 3 | /** 4 | * Created by urli on 30/01/2017. 5 | */ 6 | public class Constants { 7 | public static int READY = 0x1; 8 | public static int RUNNING = 0x2; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Pozole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class Pozole { 4 | void m() { 5 | double[] repair = new double[45]; 6 | } 7 | 8 | void m2() { 9 | final double[] repair = new double[1]; 10 | repair[0] = 5d; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/SuperAccess.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class SuperAccess extends Parent { 4 | @Override 5 | void method() { 6 | super.method(); 7 | } 8 | } 9 | 10 | class Parent { 11 | void method() {} 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | import java.util.Comparator; 4 | 5 | public class Tacos { 6 | @SuppressWarnings({ "unchecked", "rawtypes"}) 7 | public final void toSortedList() { 8 | Comparator.naturalOrder(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/visibility/packageprotected/AccessibleClassFromNonAccessibleInterf.java: -------------------------------------------------------------------------------- 1 | package spoon.test.visibility.packageprotected; 2 | 3 | public class AccessibleClassFromNonAccessibleInterf implements NonAccessibleInterf { 4 | 5 | public void method(NonAccessibleInterf tmp) { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/UnqualifiedExternalTypeMemberAccess.java: -------------------------------------------------------------------------------- 1 | package pkg; 2 | 3 | import static pkg.constants.Constants.SOMETHING; 4 | 5 | public class UnqualifiedExternalTypeMemberAccess { 6 | public static void main(String[] args) { 7 | System.out.println(SOMETHING); 8 | } 9 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/variable/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable; 2 | 3 | public class Tacos { 4 | public void testExtendedStringLiteral() throws Exception { 5 | new Abcd() { 6 | public void m() { 7 | startTime = System.currentTimeMillis(); 8 | } 9 | }; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/unresolved/UnresolvedImport.java: -------------------------------------------------------------------------------- 1 | // this import will be unresolved as the package does not exist 2 | import non.existing.pkg.SomeClass; 3 | 4 | public class UnresolvedImport { 5 | public static void main(String[] args) { 6 | SomeClass instance = new SomeClass(); 7 | } 8 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/enums/testclasses/EnumWithMembers.java: -------------------------------------------------------------------------------- 1 | package spoon.test.enums.testclasses; 2 | 3 | public enum EnumWithMembers { 4 | ONE, 5 | TWO, 6 | THREE; 7 | 8 | private static int len = -1; 9 | 10 | public static void f() { 11 | len = 44; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/BUG20160112.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses; 2 | 3 | public class BUG20160112 { 4 | BUG20160112 a; 5 | int us; 6 | 7 | public void test() { 8 | int z = 0; 9 | z += a.us; 10 | return; 11 | } 12 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/initializers/testclasses/InternalClassStaticFieldInit.java: -------------------------------------------------------------------------------- 1 | package spoon.test.initializers.testclasses; 2 | 3 | public class InternalClassStaticFieldInit { 4 | static class InternalClass{ 5 | static final String tmp; 6 | static { 7 | tmp = "nop"; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/interfaces/testclasses/RedefinesStaticMethodInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.interfaces.testclasses; 2 | 3 | import java.time.ZoneId; 4 | 5 | public interface RedefinesStaticMethodInterface extends InterfaceWithDefaultMethods { 6 | public ZoneId getZoneId(String zoneString); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/lambda/testclasses/Kuu.java: -------------------------------------------------------------------------------- 1 | package spoon.test.lambda.testclasses; 2 | 3 | import javax.swing.JButton; 4 | 5 | public class Kuu { 6 | public void foo() { 7 | JButton b = new JButton(); 8 | b.addActionListener(e -> { 9 | System.out.println(e); 10 | }); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/method/testclasses/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.method.testclasses; 2 | 3 | public class Tacos { 4 | public void method1(T t) { 5 | } 6 | 7 | public void method1(T t) { 8 | } 9 | 10 | public void method1(T t) { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/parameter/testclasses/TypeC.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public class TypeC extends TypeB { 4 | @Override 5 | @TestHierarchy("A_method1") 6 | public void method1(Exception p1) { 7 | super.method1(p1); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/inheritance/SuperTemplate.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.inheritance; 2 | 3 | import spoon.template.ExtensionTemplate; 4 | 5 | public class SuperTemplate extends ExtensionTemplate { 6 | 7 | public void toBeOverriden() { 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/duplicateClass/DuplicateInnerClass.java: -------------------------------------------------------------------------------- 1 | package P.F.G; 2 | 3 | /** 4 | * @author Charm 5 | */ 6 | 7 | public interface DuplicateInnerClass { 8 | 9 | abstract class B { 10 | 11 | private static class B implements DuplicateInnerClass { 12 | 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Demo.java: -------------------------------------------------------------------------------- 1 | import com.google.common.base.Joiner; 2 | import com.google.common.base.Function; 3 | 4 | public class Demo extends Function implements Function { 5 | 6 | public static void main(String[] args) { 7 | Joiner.on(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Tacos.java: -------------------------------------------------------------------------------- 1 | 2 | public class Tacos { 3 | public void setStarRatings(java.lang.HashMap userRatings) { 4 | userRatings.entrySet().forEach(entryPair -> typeRatingFilters.get(entryPair.getKey()).setCurrentNumberOfStars(entryPair.getValue())); 5 | } 6 | } -------------------------------------------------------------------------------- /src/test/resources/reference-test/MultipleDeclarationsOfLocalVariable.java: -------------------------------------------------------------------------------- 1 | public class MultipleDeclarationsOfLocalVariable { 2 | 3 | public static void main(final String[] args) { 4 | { 5 | int j = -1; 6 | } 7 | int j = 42; 8 | int i=j; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/repeatable/Repeated.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.repeatable; 2 | 3 | public class Repeated { 4 | @Tag("machin") 5 | @Tag("truc") 6 | public void method() {} 7 | 8 | public void withoutAnnotation() { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/shadow/ClassRetention.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.shadow; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(value = RetentionPolicy.CLASS) 7 | public @interface ClassRetention { 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/enums/testclasses/Regular.java: -------------------------------------------------------------------------------- 1 | package spoon.test.enums.testclasses; 2 | 3 | public enum Regular { 4 | A, B, C; 5 | Regular D; 6 | int i; 7 | 8 | public static void main(String[] args) { 9 | for (Regular e:values()) { 10 | System.out.println(e); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/field/testclasses/AddFieldAtTop.java: -------------------------------------------------------------------------------- 1 | package spoon.test.field.testclasses; 2 | 3 | public class AddFieldAtTop { 4 | 5 | static { 6 | } 7 | 8 | int i; 9 | 10 | void m() { 11 | } 12 | 13 | class Foo { 14 | int i; 15 | void m() { 16 | int x = i; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/modifiers/testclasses/StaticMethod.java: -------------------------------------------------------------------------------- 1 | package spoon.test.modifiers.testclasses; 2 | 3 | public class StaticMethod { 4 | public static int maMethod() { 5 | return 42; 6 | } 7 | 8 | private static int anotherMethod() { 9 | return 42; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Foo2.java: -------------------------------------------------------------------------------- 1 | class Foo2 { 2 | public void foo() { 3 | JButton b = new JButton(); 4 | b.addActionListener(new ActionListener() { 5 | @Override 6 | public void actionPerformed(ActionEvent e) { 7 | switch (e.getActionCommand()) { 8 | } 9 | } 10 | }); 11 | } 12 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/visitor/Assignments.java: -------------------------------------------------------------------------------- 1 | public class Assignments { 2 | 3 | public void func(int x) { 4 | x = 42; 5 | x += 42; 6 | 7 | x >>= 42; 8 | x = 42; 9 | 10 | x -= 42; 11 | x += 42; 12 | 13 | x = 42; 14 | x = 100; 15 | 16 | x = 42; 17 | x = 42; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/resources/static-method-and-type/Main.java: -------------------------------------------------------------------------------- 1 | package static_method_and_type; 2 | 3 | import static static_method_and_type.imports_are_here.Bar.foo; 4 | 5 | public class Main { 6 | public void fun() { 7 | foo(); 8 | } 9 | 10 | static class another_bar extends foo { } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /doc/_includes/footer.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/Mole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import spoon.test.imports.testclasses.internal2.Chimichanga; 4 | 5 | public class Mole { 6 | public void m() { 7 | final Chimichanga chimichanga = new Chimichanga(); 8 | chimichanga.make(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/literal/testclasses/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.literal.testclasses; 2 | 3 | public class Tacos { 4 | int a = 0; 5 | byte b = 0x0; 6 | float c = 0f; 7 | long d = 0l; 8 | double e = 0d; 9 | char f = '0'; 10 | String g = "0"; 11 | Object h = null; 12 | boolean i = true; 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/FooField.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public class FooField { 4 | 5 | public final int field1 = 0; 6 | 7 | int field2 = 8 | 0; 9 | 10 | static FooField f = null; 11 | 12 | public void m() { 13 | FooField.f.field2 = 0; 14 | } 15 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/staticFieldAccess/internal/Origin.java: -------------------------------------------------------------------------------- 1 | package spoon.test.staticFieldAccess.internal; 2 | 3 | /** 4 | * Created by nicolas on 05/09/2014. 5 | */ 6 | class Origin { 7 | public static final String MY_STATIC_VALUE = "Value"; 8 | 9 | public int test() { 10 | return 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/resources/reference-test/InterfaceEnumRef.java: -------------------------------------------------------------------------------- 1 | 2 | public class InterfaceEnumRef { 3 | 4 | void testEnumFromInterface() { 5 | InterfaceWithEnum.Colors x; 6 | x = InterfaceWithEnum.Colors.Black; 7 | 8 | InterfaceWithEnumJar.Colors y; 9 | y = InterfaceWithEnumJar.Colors.Black; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/reference-test/reference/spoon/test/reference/ReferencedClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference; 2 | 3 | public class ReferencedClass { 4 | 5 | public ReferencedClass() { 6 | name = "instance"; 7 | ID = 1913810; 8 | } 9 | 10 | protected String name; 11 | protected int ID; 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/Comment2.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | public class Comment2 { 4 | 5 | // C 6 | @interface Code_2{} 7 | 8 | public void code_3() 9 | { 10 | int[] myArray = { 11 | 3, 5 // D 12 | }; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/resources/deprecated/input/Bar.java: -------------------------------------------------------------------------------- 1 | package deprecated; 2 | 3 | import java.util.List; 4 | 5 | public class Bar { 6 | private boolean test = new Foo("a").test5(); 7 | private boolean unused; 8 | 9 | public static foo() { 10 | List.of("a").stream().forEach((v) -> new Foo(v).test4()); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/Simple.java: -------------------------------------------------------------------------------- 1 | class SkipException extends Exception { 2 | private static final long serialVersionUID = 1L; 3 | 4 | Object skipped; 5 | 6 | SkipException(Object e) { 7 | super("skipping " + e.toString()); 8 | skipped = e; 9 | } 10 | 11 | } 12 | 13 | public class Simple { 14 | 15 | } -------------------------------------------------------------------------------- /src/test/resources/printer-test/ShadowFieldRead.java: -------------------------------------------------------------------------------- 1 | class A { 2 | A a; 3 | int i; 4 | } 5 | class C extends A { 6 | Object a; 7 | } 8 | 9 | public class ShadowFieldRead { 10 | public static void main(String[] args) { 11 | C c = new C(); 12 | int fieldReadOfA = ((A) c).a.i; 13 | } 14 | } -------------------------------------------------------------------------------- /src/test/resources/reference-to-child-class/ReferenceToChildClass.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.List; 3 | 4 | class ReferenceToChildClass implements Foo> { 5 | private final List> bars = new ArrayList<>(); 6 | 7 | static final class Bar { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/imports/testclasses2/apachetestsuite/LangTestSuite.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses2.apachetestsuite; 2 | 3 | /** 4 | * Created by urli on 22/06/2017. 5 | */ 6 | public class LangTestSuite { 7 | public static Object suite() { 8 | return null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /spoon-dataflow/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/interfaces/testclasses/RedefinesDefaultMethodInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.interfaces.testclasses; 2 | 3 | import java.time.ZonedDateTime; 4 | 5 | public interface RedefinesDefaultMethodInterface extends InterfaceWithDefaultMethods { 6 | public ZonedDateTime getZonedDateTime(String zoneString); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/compilation3/subpackage/B.java: -------------------------------------------------------------------------------- 1 | package compilation.subpackage; 2 | import static compilation.A.isFDroid; 3 | 4 | public class B { 5 | 6 | public static void methodOne() { 7 | if(isFDroid) { 8 | 9 | } 10 | } 11 | 12 | public static void methodTwo() { 13 | 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /src/test/resources/deprecated/correctResult/Bar.java: -------------------------------------------------------------------------------- 1 | package deprecated; 2 | 3 | import java.util.List; 4 | 5 | public class Bar { 6 | private boolean test = new Foo("a").test5(); 7 | private boolean unused; 8 | 9 | public static foo() { 10 | List.of("a").stream().forEach((v) -> new Foo(v).test4()); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /LICENSE-short.txt: -------------------------------------------------------------------------------- 1 | SPDX-License-Identifier: (MIT OR CECILL-C) 2 | 3 | Copyright (C) 2006-2023 INRIA and contributors 4 | 5 | Spoon is available either under the terms of the MIT License (see LICENSE-MIT.txt) or the Cecill-C License (see LICENSE-CECILL-C.txt). You as the user are entitled to choose the terms under which to adopt Spoon. 6 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/typeandfield/AnnotTypeAndField.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.typeandfield; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Target; 5 | 6 | @Target({ElementType.FIELD, ElementType.TYPE_USE}) 7 | public @interface AnnotTypeAndField { 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/WindowsEOL.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | /** 4 | * This file contains MS Windows EOL. 5 | * It is here to test whether comments are printed well 6 | * in this case 7 | * 8 | * @author pvojtechovsky 9 | */ 10 | public class WindowsEOL { 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/ctClass/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.ctClass.testclasses; 2 | 3 | /** 4 | * Created by thomas on 14/10/15. 5 | */ 6 | public class Foo { 7 | Foo(String arg) { 8 | 9 | } 10 | 11 | Foo(String[] arg) { 12 | 13 | } 14 | 15 | Foo(String[][] arg) { 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/EnumSetOf.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | import java.util.EnumSet; 4 | 5 | import spoon.reflect.declaration.ModifierKind; 6 | 7 | public class EnumSetOf { 8 | 9 | public void m() { 10 | EnumSet.of(ModifierKind.STATIC); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/rxjava/Subscriber.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses.rxjava; 2 | 3 | /** 4 | * Created by urli on 07/06/2017. 5 | */ 6 | public interface Subscriber { 7 | void onNext(T var1); 8 | 9 | void onError(Throwable var1); 10 | 11 | void onComplete(); 12 | } 13 | -------------------------------------------------------------------------------- /src/test/resources/reference-test-2/spoontest/b/ClassB.java: -------------------------------------------------------------------------------- 1 | package spoontest.b; 2 | 3 | import spoontest.c.ClassC; 4 | 5 | public class ClassB { 6 | 7 | public ClassB() { 8 | namer = new ClassC(); 9 | } 10 | 11 | public String name(Object o) { 12 | return namer.name(o); 13 | } 14 | 15 | ClassC namer; 16 | } 17 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/Overriding.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter; 2 | 3 | public class Overriding { 4 | public static class Super { 5 | void foo() { 6 | System. out. println(1+2 7 | ); 8 | } 9 | } 10 | 11 | public static class Sub extends Super { 12 | @Override 13 | void foo() { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/imports/testclasses2/apachetestsuite/enum2/EnumTestSuite.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses2.apachetestsuite.enum2; 2 | 3 | /** 4 | * Created by urli on 22/06/2017. 5 | */ 6 | public class EnumTestSuite { 7 | public static Object suite() { 8 | return null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/imports/testclasses2/apachetestsuite/enums/EnumTestSuite.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses2.apachetestsuite.enums; 2 | 3 | /** 4 | * Created by urli on 22/06/2017. 5 | */ 6 | public class EnumTestSuite { 7 | public static Object suite() { 8 | return null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/JavaDocEmptyCommentAndTags.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | /** 4 | * @author there is tag, but there is no comment 5 | */ 6 | public class JavaDocEmptyCommentAndTags { 7 | 8 | //check empty javadoc too 9 | /** 10 | */ 11 | public void m() { 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses3/GenericConstructor.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class GenericConstructor { 7 | public GenericConstructor() { 8 | List l = new ArrayList<>(); 9 | l.size(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import spoon.SpoonException; 4 | import java.util.ArrayList; 5 | /** 6 | * A link with a class which is imported 7 | * {@link ArrayList} 8 | */ 9 | public class B { 10 | /** @throws SpoonException */ 11 | void foo() {} 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/interfaces/testclasses/ExtendsStaticMethodInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.interfaces.testclasses; 2 | 3 | import java.time.ZoneId; 4 | 5 | public interface ExtendsStaticMethodInterface extends InterfaceWithDefaultMethods { 6 | static ZoneId getZoneId(String zoneString) { 7 | return null; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/fieldImport/StaticFieldImport.java: -------------------------------------------------------------------------------- 1 | package fieldImport; 2 | 3 | // this should not be removed 4 | import static fieldImport.UtilityLibrary.FirstUtility.LIMIT; 5 | 6 | public class StaticFieldImport { 7 | public static void main(String[] args) { 8 | System.out.println(LIMIT.value); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ROADMAP.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | Spoon Roadmap 4 | ========== 5 | 6 | The long-term roadmap is managed with the label `roadmap` of Github issues: 7 | 8 | All feature requests have the label `feature`: 9 | -------------------------------------------------------------------------------- /src/test/java/spoon/support/visitor/java/testclasses/UnsatisfiedLinkErrorInStaticInit.java: -------------------------------------------------------------------------------- 1 | package spoon.support.visitor.java.testclasses; 2 | 3 | public class UnsatisfiedLinkErrorInStaticInit { 4 | 5 | public static int VALUE = 1; // because of this field 6 | 7 | static { 8 | System.load("not found path!"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/BinaryOperatorComments.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | public class BinaryOperatorComments { 4 | 5 | public void foo(int bar) 6 | { 7 | if (!(bar < 0 8 | // comment 1 9 | )) 10 | { 11 | 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/ctClass/testclasses/Pozole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.ctClass.testclasses; 2 | 3 | public class Pozole { 4 | public void m() { 5 | class Cook { 6 | public Cook() { 7 | } 8 | 9 | public void m() { 10 | final Class cookClass = Cook.class; 11 | } 12 | } 13 | new Cook(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/fieldaccesses/testclasses/TargetedAccessPosition.java: -------------------------------------------------------------------------------- 1 | package spoon.test.fieldaccesses.testclasses; 2 | 3 | public class TargetedAccessPosition { 4 | public TargetedAccessPosition ta; 5 | public void foo(){ 6 | TargetedAccessPosition t = new TargetedAccessPosition(); 7 | t.ta.ta.ta.ta = t; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal/ChildClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal; 2 | 3 | import spoon.test.imports.testclasses.ClientClass; 4 | 5 | import java.io.File; 6 | 7 | public class ChildClass extends SuperClass { 8 | public void m() { 9 | File f; 10 | ClientClass c; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/difftest/ExceptionTest.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.difftest; 2 | 3 | public class ExceptionTest { 4 | public void test() { 5 | try { 6 | throw new Exception("test"); 7 | } catch (Exception ex) { 8 | 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/refactoring/testclasses/MethodGenericRenaming.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.testclasses; 2 | 3 | public class MethodGenericRenaming { 4 | public T[] sort(T[] array) { 5 | return sort(array, false); 6 | } 7 | 8 | public T[] sort(T[] array, boolean order) { 9 | return array; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/targeted/testclasses/InternalSuperCall.java: -------------------------------------------------------------------------------- 1 | package spoon.test.targeted.testclasses; 2 | 3 | public class InternalSuperCall{ 4 | 5 | public void methode(){ 6 | InternalSuperCall.super.toString(); 7 | } 8 | 9 | @Override 10 | public String toString() { 11 | return super.toString(); 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/test/resources/TypeMemberComments.java: -------------------------------------------------------------------------------- 1 | public class TypeMemberComments { 2 | // field comment 3 | public static int NON_FINAL_FIELD = 42; 4 | 5 | // method comment 6 | public void nonStaticMethod() { 7 | 8 | } 9 | 10 | // nested type comment 11 | private class NonStaticInnerClass { 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /src/test/resources/constructorcall-type/ConstructorCallWithTypesNotOnClasspath.java: -------------------------------------------------------------------------------- 1 | class ConstructorCallWithTypesNotOnClasspath { 2 | public static void main(String[] args) { 3 | type.not.on.Classpath instanceOfTypeNotOnClasspath = null; 4 | new another.type.not.on.Classpath(instanceOfTypeNotOnClasspath); 5 | } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/SealedClassWithNestedSubclasses.java: -------------------------------------------------------------------------------- 1 | public sealed class SealedClassWithNestedSubclasses { 2 | 3 | public static final class NestedFinal extends SealedClassWithNestedSubclasses { 4 | 5 | } 6 | 7 | public non-sealed static class NestedNonSealed extends SealedClassWithNestedSubclasses { 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/SealedInterfaceWithNestedSubclasses.java: -------------------------------------------------------------------------------- 1 | public sealed interface SealedInterfaceWithNestedSubclasses { 2 | 3 | final class NestedFinal extends SealedInterfaceWithNestedSubclasses { 4 | 5 | } 6 | 7 | non-sealed class NestedNonSealed extends SealedInterfaceWithNestedSubclasses { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/resources/snippet/SnippetResources.java: -------------------------------------------------------------------------------- 1 | package snippet.test.resources; 2 | 3 | public class SnippetResources { 4 | 5 | public static void staticMethod() { 6 | SnippetResources s = new SnippetResources(); 7 | } 8 | 9 | public void method(int a) { 10 | System.out.println(a); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/AnnotArray.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(value = RetentionPolicy.RUNTIME) 7 | public @interface AnnotArray { 8 | public Class[] value() default { }; 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/ArrayAccessComments.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | public class ArrayAccessComments { 4 | 5 | public void bar(int[] foo) 6 | { 7 | foo// comment 1 8 | [1] = 0; 9 | int bar = foo // comment 2 10 | [0]; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/Comment1.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | // comment 1 4 | // comment 2 5 | public class Comment1 { 6 | 7 | public void code_1() 8 | { 9 | try { } 10 | // A 11 | // B 12 | catch (Exception ex) 13 | { } 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses3/SimilarSignatureMethodes.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | public class SimilarSignatureMethodes { 4 | 5 | public void methode(E arg) { 6 | 7 | } 8 | 9 | public void methode(E arg) { 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/prettyprinter/testclasses/loop/ForEachNoBraces.java: -------------------------------------------------------------------------------- 1 | package spoon.test.prettyprinter.testclasses.loop; 2 | 3 | import java.util.Arrays; 4 | 5 | public class ForEachNoBraces { 6 | 7 | public void example() { 8 | for (int i : Arrays.asList(1, 2, 3, 4, 5)) 9 | System.out.println(i); 10 | } 11 | 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/intercession/insertBefore/InsertBeforeExample2.java: -------------------------------------------------------------------------------- 1 | package spoon.test.intercession.insertBefore; 2 | 3 | public class InsertBeforeExample2 { 4 | 5 | public InsertBeforeExample2(boolean par, int par2) { 6 | if (par) 7 | while (par) { 8 | par = par2 % 3 == 0; 9 | par2 *= 2; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /spoon-dataflow/src/test/java/fr/inria/spoon/dataflow/testcases/TestGenerics.java: -------------------------------------------------------------------------------- 1 | package fr.inria.spoon.dataflow.testcases; 2 | 3 | public class TestGenerics 4 | { 5 | void testGeneric1(T t) 6 | { 7 | if (t == null) 8 | { 9 | if (t == null) {} //@ALWAYS_TRUE 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/shadow/RuntimeRetention.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.shadow; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(value = RetentionPolicy.RUNTIME) 7 | public @interface RuntimeRetention { 8 | String[] role(); 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses2/LikeCtClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses2; 2 | 3 | import java.util.Set; 4 | 5 | public interface LikeCtClass { 6 | Set> getConstructors(); 7 | > C setConstructors(Set> constructors); 8 | } 9 | 10 | interface AnType {} -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/ToBeModified.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import java.util.List; 4 | 5 | public class ToBeModified { 6 | 7 | /** 8 | * This method contains List, but it will be removed during refactoring 9 | */ 10 | public void m() { 11 | List x; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/jdtimportbuilder/testclasses/StaticImport.java: -------------------------------------------------------------------------------- 1 | package spoon.test.jdtimportbuilder.testclasses; 2 | 3 | import static spoon.test.jdtimportbuilder.testclasses.staticimport.Dependency.ANY; 4 | 5 | /** 6 | * Created by urli on 09/08/2017. 7 | */ 8 | public class StaticImport { 9 | 10 | private String s = ANY; 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/InnerClassTemplate.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses; 2 | 3 | import spoon.template.ExtensionTemplate; 4 | 5 | public class InnerClassTemplate extends ExtensionTemplate { 6 | public class Inner { 7 | int innerField; 8 | Inner() { 9 | innerField = 0; 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/test/java/spoon/test/variable/testclasses/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable.testclasses; 2 | 3 | public class Tacos { 4 | Burritos burritos; 5 | final class Burritos { 6 | int i; 7 | } 8 | 9 | public void makeIt() { 10 | burritos.i = 4; 11 | 12 | final Tacos tacos = new Tacos(); 13 | tacos.burritos.i = 3; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/fieldImport/UtilityLibrary.java: -------------------------------------------------------------------------------- 1 | package fieldImport; 2 | 3 | public class UtilityLibrary { 4 | public static class FirstUtility { 5 | public static final Parameter LIMIT = new Parameter(); 6 | 7 | public static class Parameter { 8 | public static Integer value; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/reference-to-child-class/ProblemReferenceToChildClass.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.List; 3 | 4 | class ProblemReferenceToChildClass implements Foo> { 5 | private final List> bars = new ArrayList<>(); 6 | 7 | private static final class Bar { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/imports/testclasses2/StaticWithNested.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses2; 2 | 3 | abstract class StaticWithNested 4 | { 5 | private static class StaticNested { 6 | private static class StaticNested2 { 7 | 8 | } 9 | void fnc() { 10 | new StaticNested2(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/arrays/testclasses/NewArrayWithComment.java: -------------------------------------------------------------------------------- 1 | package spoon.test.arrays.testclasses; 2 | 3 | public class NewArrayWithComment 4 | { 5 | String[] anArray1 = new String[]{"a","b"/*,"c"*/}; 6 | String[] anArray2 = new String[]{ 7 | "a", //a comment 8 | "b", //b comment 9 | "c" //c comment 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/NotImportExecutableType.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | import spoon.test.imports.testclasses.internal3.Foo; 4 | 5 | import java.io.File; 6 | 7 | public class NotImportExecutableType { 8 | 9 | void m() { 10 | Foo foo = new Foo(); 11 | Object o = foo.bar(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/SubClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses; 2 | 3 | public class SubClass extends SuperClass { 4 | public void aMethod() { 5 | new SubClass.Item(""); 6 | } 7 | 8 | public static class Item extends SuperClass.Item { 9 | public Item(String s) { 10 | super(1, s); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/imports/testclasses/internal/PublicInterface2.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal; 2 | 3 | public interface PublicInterface2 { 4 | //this is public too https://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.6.1 5 | interface NestedInterface { 6 | } 7 | class NestedClass { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/jdtimportbuilder/testclasses/StarredImport.java: -------------------------------------------------------------------------------- 1 | package spoon.test.jdtimportbuilder.testclasses; 2 | 3 | import spoon.test.jdtimportbuilder.testclasses.fullpack.*; 4 | 5 | /** 6 | * Created by urli on 09/08/2017. 7 | */ 8 | public class StarredImport { 9 | private A a; 10 | private B b; 11 | private C c; 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/position/testclasses/Kokos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | import spoon.support.Experimental; 4 | 5 | /** 6 | * This comment contains word public and that might confuse detection of public modifier position. 7 | */ 8 | @Experimental 9 | public interface Kokos { 10 | String method(); 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/assertions/CtPatternAssertInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.assertions; 2 | import org.assertj.core.api.AbstractObjectAssert; 3 | import spoon.reflect.code.CtPattern; 4 | public interface CtPatternAssertInterface, W extends CtPattern> extends CtElementAssertInterface , SpoonAssert {} 5 | -------------------------------------------------------------------------------- /src/test/resources/noclasspath/TypeAccessStarImport.java: -------------------------------------------------------------------------------- 1 | // see https://github.com/inria/spoon/issues/3337 2 | 3 | package bug; 4 | 5 | import some.pkg.*; 6 | 7 | public class TypeAccessStarImport { 8 | // SomeClass could belong to either the bug package or some.pkg, should not guess which one! 9 | int value = SomeClass.generateValue(); 10 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/imports/testclasses2/JavaLangConflict.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses2; 2 | 3 | import java.io.File; 4 | 5 | /** 6 | * Created by urli on 22/05/2017. 7 | */ 8 | public class JavaLangConflict { 9 | String java = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java"; 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/template/testclasses/FlowMatcher.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses; 2 | 3 | import spoon.template.TemplateParameter; 4 | 5 | public class FlowMatcher extends Flow { 6 | 7 | public TemplateParameter _subFlow_; 8 | 9 | private void subFlowMatcher() { 10 | subFlow(_subFlow_.S()); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/assertions/CtBreakAssertInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.assertions; 2 | import org.assertj.core.api.AbstractObjectAssert; 3 | import spoon.reflect.code.CtBreak; 4 | public interface CtBreakAssertInterface, W extends CtBreak> extends SpoonAssert , CtLabelledFlowBreakAssertInterface {} 5 | -------------------------------------------------------------------------------- /src/test/resources/inherit-static-method/Derived.java: -------------------------------------------------------------------------------- 1 | // this class uses a static method from its parent class, which previously caused the ImportCleaner 2 | // to statically import the method, even though it's inherited. 3 | public class Derived extends Base { 4 | public static void main(String[] args) { 5 | System.out.println(getMeaning()); 6 | } 7 | } -------------------------------------------------------------------------------- /src/test/resources/inner-class/Main.java: -------------------------------------------------------------------------------- 1 | package inner_class; 2 | 3 | import java.util.List; 4 | import static inner_class.constants.Constants.InnerClass; 5 | 6 | public class Main { 7 | public void fun() { 8 | List list = List.of(1, 2, 3); 9 | InnerClass innerClass = new InnerClass(); 10 | innerClass.print(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/resources/jdtimportbuilder/itf/DumbItf.java: -------------------------------------------------------------------------------- 1 | package jdtimportbuilder.itf; 2 | 3 | public interface DumbItf { 4 | int uneMethod(); 5 | 6 | default int anotherDefaultMethod() { 7 | return 42; 8 | } 9 | 10 | static int anotherStaticMethod() { 11 | return 12; 12 | } 13 | 14 | String MYSTRING = "bla"; 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/annotation/testclasses/repeatandarrays/RepeatedArrays.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.repeatandarrays; 2 | 3 | public class RepeatedArrays { 4 | @TagArrays({"machin", "truc"}) 5 | @TagArrays({"truc", "bidule"}) 6 | public void method() {} 7 | 8 | public void withoutAnnotation() { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses5/A.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses5; 2 | 3 | import java.util.List; 4 | 5 | public class A { 6 | void m1(List list1, List list2, List> list3, List list4) { 7 | } 8 | 9 | void m2() { 10 | } 11 | 12 | void m3() { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/variable/testclasses/BurritosWithLoop.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable.testclasses; 2 | 3 | 4 | import static spoon.Launcher.SPOONED_CLASSES; 5 | 6 | public class BurritosWithLoop { 7 | void foo() { 8 | for (int spoon = 0; spoon < 10; spoon++) { 9 | Object xx = SPOONED_CLASSES; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/assertions/CtResourceAssertInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.assertions; 2 | import org.assertj.core.api.AbstractObjectAssert; 3 | import spoon.reflect.code.CtResource; 4 | public interface CtResourceAssertInterface, W extends CtResource> extends CtElementAssertInterface , SpoonAssert {} 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/assertions/CtTextBlockAssertInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.assertions; 2 | import org.assertj.core.api.AbstractObjectAssert; 3 | import spoon.reflect.code.CtTextBlock; 4 | public interface CtTextBlockAssertInterface, W extends CtTextBlock> extends SpoonAssert , CtLiteralAssertInterface {} 5 | -------------------------------------------------------------------------------- /src/test/resources/importCleaner/StaticImports.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | // static field import 4 | import static java.lang.Integer.MAX_VALUE; 5 | 6 | // static method import 7 | import static java.lang.System.lineSeparator; 8 | 9 | public class Test { 10 | public int test() { 11 | test(); 12 | lineSeparator(); 13 | return MAX_VALUE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /doc/_release/changelog_generator/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spoon-changelog-generator", 3 | "version": "1.0.0", 4 | "description": "Generate the changelog for spoon.", 5 | "main": "changelog.js", 6 | "dependencies": { 7 | "git-log-parser": "^1.2.0", 8 | "through2": "^4.0.0" 9 | }, 10 | "author": "Thomas Durieux", 11 | "license": "MIT" 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/arrays/testclasses/VaragParam.java: -------------------------------------------------------------------------------- 1 | package spoon.test.arrays.testclasses; 2 | 3 | import java.util.List; 4 | 5 | public class VaragParam { 6 | 7 | void m1(List... arg) { 8 | } 9 | 10 | void m2(List[] arg) { 11 | } 12 | 13 | void m3(List[]... arg) { 14 | } 15 | 16 | void m4(List arg) { 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/comment/testclasses/WithIfBlock.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | public class WithIfBlock { 4 | 5 | String value = ""; 6 | 7 | public String myMethod() { 8 | if (value == null) { 9 | value = new String("toto"); 10 | } 11 | 12 | return value.substring(1); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/executable/testclasses/Pozole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.executable.testclasses; 2 | 3 | public class Pozole implements Runnable { 4 | public void cook() { 5 | run(); 6 | } 7 | 8 | @Override 9 | public void run() { 10 | 11 | } 12 | 13 | void m() { 14 | int i; 15 | { 16 | i = 0; 17 | } 18 | int x = 2 * i; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/generics/testclasses/Mole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | public class Mole { 4 | public void cook() { 5 | class Cook { 6 | } 7 | final Cook aClass = new Cook(); 8 | } 9 | 10 | public void prepare() { 11 | class Prepare { 12 | } 13 | new Prepare(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/reference/testclasses/EnumValue.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public class EnumValue { 4 | 5 | public EnumValue() { 6 | } 7 | 8 | public > T asEnum() //StackOverflow when referenced 9 | { 10 | return null; 11 | } 12 | 13 | public Object unwrap() { 14 | return asEnum(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/replace/testclasses/Tacos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.replace.testclasses; 2 | 3 | public class Tacos { 4 | String field; 5 | 6 | public int m() { 7 | return 1; 8 | } 9 | 10 | public Tacos m2() { 11 | return new Tacos<>(); 12 | } 13 | 14 | public void m3(String param) { 15 | System.err.println(param); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/test/java/spoon/test/variable/testclasses/FieldAccessSample.java: -------------------------------------------------------------------------------- 1 | package spoon.test.variable.testclasses; 2 | 3 | public class FieldAccessSample { 4 | private static int I; 5 | private String s; 6 | private int i; 7 | 8 | public void method() { 9 | s = "tacos"; 10 | System.out.println(s); 11 | i = 3; 12 | FieldAccessSample.I = 42; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/assertions/CtArrayReadAssertInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.assertions; 2 | import org.assertj.core.api.AbstractObjectAssert; 3 | import spoon.reflect.code.CtArrayRead; 4 | public interface CtArrayReadAssertInterface, W extends CtArrayRead> extends SpoonAssert , CtArrayAccessAssertInterface {} 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/assertions/CtCFlowBreakAssertInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.assertions; 2 | import org.assertj.core.api.AbstractObjectAssert; 3 | import spoon.reflect.code.CtCFlowBreak; 4 | public interface CtCFlowBreakAssertInterface, W extends CtCFlowBreak> extends SpoonAssert , CtStatementAssertInterface {} 5 | -------------------------------------------------------------------------------- /src/test/java/spoon/testing/assertions/CtContinueAssertInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.testing.assertions; 2 | import org.assertj.core.api.AbstractObjectAssert; 3 | import spoon.reflect.code.CtContinue; 4 | public interface CtContinueAssertInterface, W extends CtContinue> extends SpoonAssert , CtLabelledFlowBreakAssertInterface {} 5 | -------------------------------------------------------------------------------- /src/test/resources/deprecated/correctResult/Foo.java: -------------------------------------------------------------------------------- 1 | package deprecated; 2 | 3 | public class Foo { 4 | // ref in Bar.test and Bar.foo() 5 | @Deprecated 6 | public Foo(String s) { 7 | } 8 | 9 | // ref in Bar.foo() 10 | @Deprecated 11 | public void test4() { 12 | } 13 | 14 | // ref in Bar.test 15 | @Deprecated 16 | public void test5() { 17 | } 18 | } 19 | --------------------------------------------------------------------------------