├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ └── bug_report.yaml ├── actions │ └── setup-tests │ │ └── action.yml └── workflows │ ├── jreleaser.yml │ ├── qodana.yml │ ├── release-beta.yml │ ├── release-manual.yml │ ├── release-nightly.yml │ ├── sbom.yml │ ├── scorecards.yml │ └── tests.yml ├── .gitignore ├── .mvn ├── extensions.xml └── gradle-enterprise.xml ├── CITATION.cff ├── CONTRIBUTING.md ├── LICENSE-CECILL-C.txt ├── LICENSE-MIT.txt ├── LICENSE-short.txt ├── README.md ├── ROADMAP.md ├── SECURITY.md ├── checkstyle-test.xml ├── checkstyle.xml ├── chore ├── CheckJavadoc.java ├── check-javadoc-regressions.py ├── check-links-in-doc.py ├── check-reproducible-builds.sh ├── generate-contributor-list.py ├── logback.xml ├── release-beta.sh ├── release-nightly.sh ├── release.sh ├── revapi_tpl.ftl └── run-with-spoon-javadoc-classpath.sh ├── doc ├── .gitignore ├── 404.md ├── CNAME ├── LICENSE ├── LICENSE-BSD.txt ├── README.md ├── SUPPLY-CHAIN.md ├── _config.yml ├── _data │ ├── alerts.yml │ ├── sidebar_doc.yml │ ├── tags_doc.yml │ └── topnav_doc.yml ├── _includes │ ├── alerts.html │ ├── callouts.html │ ├── custom │ │ ├── conditions.html │ │ └── doc │ │ │ ├── customMenu.html │ │ │ ├── links_doc.html │ │ │ ├── series_acme.html │ │ │ └── series_acme_next.html │ ├── footer.html │ ├── google_analytics.html │ ├── head.html │ ├── initialize_shuffle.html │ ├── linkrefs.html │ ├── sidebar.html │ └── topnav.html ├── _layouts │ ├── default.html │ ├── none.html │ └── page.html ├── _presentations │ ├── code_transformation │ │ ├── CodeTransformationWithSpoon.pdf │ │ └── CodeTransformationWithSpoon.zip │ ├── flyer │ │ ├── flyer-fosdem17.indd │ │ └── flyer-fosdem17.pdf │ ├── images │ │ ├── 2000px-Maven_logo.png │ │ ├── 25406.png │ │ ├── 5040-200.png │ │ ├── 60504.png │ │ ├── Git-Logo-2Color.png │ │ ├── GitHub-Mark.png │ │ ├── Gradle-01.png │ │ ├── Octicons-star.png │ │ ├── PR.png │ │ ├── PR_black.png │ │ ├── binary.png │ │ ├── git-branch.png │ │ ├── ic_history_48px-512.png │ │ ├── java-logo-large.png │ │ ├── logo.png │ │ ├── logomark-orange@2x.png │ │ ├── source_code1600.png │ │ ├── spanner-512.png │ │ └── travis-ci.png │ ├── poster │ │ ├── poster_FOSDEM17.indd │ │ ├── poster_FOSDEM17.pdf │ │ ├── poster_adt_Gerard_Paligot.indd │ │ └── poster_adt_Gerard_Paligot.pdf │ ├── slides-introduction-to-spoon.fodp │ └── spoon-in-3-slides.fodp ├── _release │ ├── WEBSITE.md │ ├── changelog_generator │ │ ├── README.md │ │ ├── changelog.js │ │ └── package.json │ ├── deploy_archives.py │ ├── deploy_local.sh │ ├── deploy_production.sh │ └── upgrade-license.md ├── about.md ├── agent.md ├── architecture_test.md ├── ci-cd.md ├── code_elements.md ├── code_elements_header.md ├── command_line.md ├── comments.md ├── css │ ├── bootstrap.min.css │ ├── customstyles.css │ ├── font-awesome.min.css │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── lavish-bootstrap.css │ ├── modern-business.css │ ├── printstyles.css │ ├── syntax.css │ ├── theme-blue.css │ ├── theme-green.css │ └── theme-mauve.css ├── custom-pretty-printing.md ├── doc_homepage.md ├── ecosystem.md ├── example_scripts │ └── example_usage_script.sh ├── examples.md ├── factories.md ├── faq.md ├── favicon.ico ├── filter.md ├── first_analysis_processor.md ├── first_transformation.md ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── gradle.md ├── images │ ├── code-elements.png │ ├── gui.png │ ├── jenkins-badge.png │ ├── lille-grandplace.jpg │ ├── references-elements.png │ ├── smplgui-modes.png │ ├── smplgui.png │ ├── spoon-models-elements.png │ ├── spoon-models.graffle │ ├── spoon.jpg │ ├── spoonTeam.jpg │ ├── spoon_javadoc_ansi_print.png │ ├── spoonpowered.jpg │ ├── spoonpowered_big.jpg │ ├── structural-elements.png │ └── template-overview.svg ├── index.md ├── jenkins │ ├── Dockerfile │ ├── build.sh │ ├── inject_spoon_snapshot.py │ ├── job_website_deployer.sh │ └── pit-descartes │ │ ├── descartes-config.xml │ │ └── update-pom.py ├── js │ ├── customscripts.js │ ├── jekyll-search.js │ ├── jquery.ba-throttle-debounce.min.js │ ├── jquery.localScroll.min.js │ ├── jquery.navgoco.min.js │ ├── jquery.scrollTo.min.js │ ├── jquery.shuffle.min.js │ ├── lunr.min.js │ ├── search.min.js │ └── toc.js ├── launcher.md ├── matcher.md ├── maven.md ├── message-for-the-future.md ├── navgoco_license ├── papers.md ├── path.md ├── pattern.md ├── processor.md ├── processor_annotations.md ├── references.md ├── reflection.md ├── sitemap.xml ├── spoon_javadoc.md ├── spoon_smpl.md ├── structural_elements.md ├── template_definition.md ├── testing_quickstart.md └── type_adaption.md ├── flake.lock ├── flake.nix ├── jreleaser.yml ├── pom.xml ├── qodana.yaml ├── renovate.json ├── spoon-control-flow ├── LICENSE.txt ├── README.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── fr │ │ └── inria │ │ ├── controlflow │ │ ├── AllBranchesReturn.java │ │ ├── BranchKind.java │ │ ├── ControlFlowBuilder.java │ │ ├── ControlFlowEdge.java │ │ ├── ControlFlowGraph.java │ │ ├── ControlFlowNode.java │ │ ├── ExceptionControlFlowStrategy.java │ │ ├── GraphVisPrettyPrinter.java │ │ ├── NaiveExceptionControlFlowStrategy.java │ │ ├── NotFoundException.java │ │ ├── TransferFunctionVisitor.java │ │ └── Value.java │ │ └── dataflow │ │ ├── AbstractControlFlowVisitor.java │ │ ├── ControlFlowVisitor.java │ │ ├── ControlFlowVisitorBackwards.java │ │ ├── ControlFlowVisitorForward.java │ │ ├── InitializedVariables.java │ │ └── UselessAssignmentAnalysis.java │ └── test │ ├── java │ └── fr │ │ └── inria │ │ ├── controlflow │ │ ├── AllBranchesReturnTest.java │ │ ├── ControlFlowGraphTests.java │ │ ├── ControlFlowPathHelper.java │ │ ├── ExceptionFlowTests.java │ │ ├── ForwardFlowBuilderVisitorTest.java │ │ └── SpoonMetaFactory.java │ │ └── dataflow │ │ ├── InitializedVariablesTest.java │ │ └── UselessAssignmentTest.java │ └── resources │ ├── control-flow │ └── ControlFlowArithmetic.java │ └── initialized │ └── ComplexFlow.java ├── spoon-dataflow ├── LICENSE.md ├── README.md ├── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ ├── main │ └── java │ │ └── fr │ │ └── inria │ │ └── spoon │ │ └── dataflow │ │ ├── Main.java │ │ ├── checkers │ │ ├── AbstractChecker.java │ │ ├── AlwaysTrueFalseChecker.java │ │ ├── Checker.java │ │ └── NullDereferenceChecker.java │ │ ├── memory │ │ └── Memory.java │ │ ├── misc │ │ ├── BranchData.java │ │ ├── ConditionStatus.java │ │ └── FlagReference.java │ │ ├── scanners │ │ ├── AbstractCheckingScanner.java │ │ ├── CheckersScanner.java │ │ ├── DataFlowScanner.java │ │ └── ResetOnModificationScanner.java │ │ ├── utils │ │ ├── CommonUtils.java │ │ ├── PromotionUtils.java │ │ └── TypeUtils.java │ │ └── warning │ │ ├── Warning.java │ │ └── WarningKind.java │ └── test │ └── java │ └── fr │ └── inria │ └── spoon │ └── dataflow │ ├── TestRunner.java │ └── testcases │ ├── TestAnonymousClass.java │ ├── TestAnonymousExecutable.java │ ├── TestArray.java │ ├── TestAssignment.java │ ├── TestBinaryOperator.java │ ├── TestBoxing.java │ ├── TestCast.java │ ├── TestConditionalOperator.java │ ├── TestDereference.java │ ├── TestFields.java │ ├── TestFloat.java │ ├── TestGenerics.java │ ├── TestIf.java │ ├── TestInteger.java │ ├── TestInvocation.java │ ├── TestLambda.java │ ├── TestLogic.java │ ├── TestLoops.java │ ├── TestNullDereference.java │ ├── TestOperatorAssignment.java │ ├── TestReferences.java │ ├── TestReset.java │ ├── TestReturn.java │ ├── TestSanity.java │ ├── TestShortCircuit.java │ ├── TestSwitch.java │ ├── TestTry.java │ ├── TestTypes.java │ ├── TestUnaryOperator.java │ └── TestUnreachable.java ├── spoon-decompiler ├── LICENSE-short.txt ├── README.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── spoon │ │ ├── DecompiledResource.java │ │ ├── JarLauncher.java │ │ └── decompiler │ │ ├── CFRDecompiler.java │ │ ├── Decompiler.java │ │ ├── FernflowerDecompiler.java │ │ ├── MultiTypeTransformer.java │ │ ├── ProcyonDecompiler.java │ │ ├── SpoonClassFileTransformer.java │ │ └── TypeTransformer.java │ └── test │ ├── java │ └── spoon │ │ ├── DecompiledResourceTest.java │ │ ├── JarLauncherTest.java │ │ └── decompiler │ │ ├── SpoonClassFileTransformerTest.java │ │ └── test │ │ └── architecture │ │ └── DecompilerArchitectureTest.java │ └── resources │ ├── agent │ └── classes │ │ └── se │ │ └── kth │ │ └── castor │ │ └── TransformMe.class │ └── jarLauncher │ ├── helloworld-1.0-SNAPSHOT.jar │ └── pom.xml ├── spoon-javadoc ├── pom.xml └── src │ ├── main │ └── java │ │ └── spoon │ │ └── javadoc │ │ └── api │ │ ├── JavadocTagCategory.java │ │ ├── JavadocTagType.java │ │ ├── StandardJavadocTagType.java │ │ ├── elements │ │ ├── JavadocBlockTag.java │ │ ├── JavadocCommentView.java │ │ ├── JavadocElement.java │ │ ├── JavadocInlineTag.java │ │ ├── JavadocReference.java │ │ ├── JavadocText.java │ │ ├── JavadocVisitor.java │ │ └── snippets │ │ │ ├── JavadocSnippetBody.java │ │ │ ├── JavadocSnippetMarkupRegion.java │ │ │ ├── JavadocSnippetRegionType.java │ │ │ └── JavadocSnippetTag.java │ │ └── parsing │ │ ├── BlockTagParser.java │ │ ├── InheritanceResolver.java │ │ ├── InlineTagParser.java │ │ ├── JavadocParser.java │ │ ├── LinkResolver.java │ │ ├── SnippetFileParser.java │ │ └── StringReader.java │ └── test │ └── java │ └── spoon │ └── javadoc │ └── api │ ├── TestHelper.java │ ├── elements │ └── snippets │ │ └── JavadocSnippetBodyTest.java │ └── parsing │ ├── InheritanceResolverTest.java │ ├── JavadocParserTest.java │ └── SnippetFileParserTest.java ├── spoon-pom └── pom.xml ├── spoon-smpl ├── LICENSE.txt ├── README.md ├── pom.xml ├── smpl_grammar.txt ├── src │ ├── main │ │ └── java │ │ │ └── spoon │ │ │ └── smpl │ │ │ ├── AnchoredOperationsMap.java │ │ │ ├── CFGModel.java │ │ │ ├── CombinationsGenerator.java │ │ │ ├── CommandlineApplication.java │ │ │ ├── DebugUtils.java │ │ │ ├── Environment.java │ │ │ ├── FormulaCompiler.java │ │ │ ├── FormulaOptimizer.java │ │ │ ├── Label.java │ │ │ ├── LabelMatchResult.java │ │ │ ├── LabelMatchResultImpl.java │ │ │ ├── MethodHeaderModel.java │ │ │ ├── Model.java │ │ │ ├── ModelChecker.java │ │ │ ├── SmPLGrep.java │ │ │ ├── SmPLJavaDSL.java │ │ │ ├── SmPLLexer.java │ │ │ ├── SmPLMethodCFG.java │ │ │ ├── SmPLParser.java │ │ │ ├── SmPLProblemDetector.java │ │ │ ├── SmPLProcessor.java │ │ │ ├── SmPLRule.java │ │ │ ├── SmPLRuleImpl.java │ │ │ ├── SpoonJavaParser.java │ │ │ ├── Substitutor.java │ │ │ ├── Transformer.java │ │ │ ├── TriConsumer.java │ │ │ ├── TypeAccessReplacer.java │ │ │ ├── VariableUseScanner.java │ │ │ ├── formula │ │ │ ├── AllNext.java │ │ │ ├── AllUntil.java │ │ │ ├── And.java │ │ │ ├── BinaryConnective.java │ │ │ ├── Branch.java │ │ │ ├── CodeElementPredicate.java │ │ │ ├── ExistsNext.java │ │ │ ├── ExistsUntil.java │ │ │ ├── ExistsVar.java │ │ │ ├── Expression.java │ │ │ ├── Formula.java │ │ │ ├── FormulaScanner.java │ │ │ ├── FormulaVisitor.java │ │ │ ├── InnerAnd.java │ │ │ ├── MetadataPredicate.java │ │ │ ├── MetavariableConstraint.java │ │ │ ├── MethodHeaderPredicate.java │ │ │ ├── Not.java │ │ │ ├── Optional.java │ │ │ ├── Or.java │ │ │ ├── ParameterizedPredicate.java │ │ │ ├── Predicate.java │ │ │ ├── Proposition.java │ │ │ ├── SequentialOr.java │ │ │ ├── SetEnv.java │ │ │ ├── Statement.java │ │ │ ├── SubformulaCollector.java │ │ │ ├── True.java │ │ │ ├── UnaryConnective.java │ │ │ └── VariableUsePredicate.java │ │ │ ├── label │ │ │ ├── BranchLabel.java │ │ │ ├── CodeElementLabel.java │ │ │ ├── MetadataLabel.java │ │ │ ├── MethodHeaderLabel.java │ │ │ ├── PropositionLabel.java │ │ │ └── StatementLabel.java │ │ │ ├── metavars │ │ │ ├── ConstantConstraint.java │ │ │ ├── ExpressionConstraint.java │ │ │ ├── IdentifierConstraint.java │ │ │ ├── RegexConstraint.java │ │ │ ├── TypeConstraint.java │ │ │ └── TypedIdentifierConstraint.java │ │ │ ├── operation │ │ │ ├── AppendOperation.java │ │ │ ├── DeleteOperation.java │ │ │ ├── InsertIntoBlockOperation.java │ │ │ ├── MethodHeaderReplaceOperation.java │ │ │ ├── Operation.java │ │ │ ├── OperationCategory.java │ │ │ ├── PrependOperation.java │ │ │ └── ReplaceOperation.java │ │ │ └── pattern │ │ │ ├── DotsExtPatternMatcher.java │ │ │ ├── ElemNode.java │ │ │ ├── ParamNode.java │ │ │ ├── PatternBuilder.java │ │ │ ├── PatternMatcher.java │ │ │ ├── PatternNode.java │ │ │ ├── PatternNodeVisitor.java │ │ │ ├── SubElemPatternCollector.java │ │ │ ├── SubElemPatternMatcher.java │ │ │ └── ValueNode.java │ └── test │ │ ├── java │ │ └── spoon │ │ │ └── smpl │ │ │ ├── C4JGetColorTest.java │ │ │ ├── C4JGetHeightTest.java │ │ │ ├── C4JOnConsoleMessageTest.java │ │ │ ├── C4JSetTextSizeTest.java │ │ │ ├── C4JShouldVibrateTest.java │ │ │ ├── C4JStickyBroadcastTest.java │ │ │ ├── CFGModelTest.java │ │ │ ├── CombinationsGeneratorTest.java │ │ │ ├── EndToEndTestReader.java │ │ │ ├── EndToEndTests.java │ │ │ ├── EnvironmentTest.java │ │ │ ├── FormulaCompilerTest.java │ │ │ ├── FormulaOptimizerTest.java │ │ │ ├── FormulaTest.java │ │ │ ├── IntegrationBugsTest.java │ │ │ ├── MetavarsTest.java │ │ │ ├── MethodHeaderMatchingTest.java │ │ │ ├── ModelCheckerTest.java │ │ │ ├── PatternMatchingTest.java │ │ │ ├── SmPLGrepTest.java │ │ │ ├── SmPLLexerTest.java │ │ │ ├── SmPLMethodCFGTest.java │ │ │ ├── SmPLParserTest.java │ │ │ ├── SmPLProblemDetectorTest.java │ │ │ ├── SubstitutorTest.java │ │ │ ├── TestUtils.java │ │ │ ├── TransformerTest.java │ │ │ ├── TriConsumerTest.java │ │ │ ├── VariableUseScannerTest.java │ │ │ ├── WitnessesTest.java │ │ │ └── ZippedCodeBaseTestContext.java │ │ └── resources │ │ ├── C4JGetColor.zip │ │ ├── C4JGetHeight.zip │ │ ├── C4JOnConsoleMessage.zip │ │ ├── C4JSendStickyBroadcast.zip │ │ ├── C4JSetTextSize.zip │ │ ├── C4JShouldVibrate.zip │ │ ├── endtoend │ │ ├── AnchorAfterDotsBug.txt │ │ ├── AppendContextBranch.txt │ │ ├── AppendToContext.txt │ │ ├── BasicDots.txt │ │ ├── BasicPatternDisjunction.txt │ │ ├── Bugs │ │ │ ├── ArgDotsPatternMatchMismatchedExecutableBug.txt │ │ │ ├── DotsLeavingScopeBug01.txt │ │ │ ├── DotsLeavingScopeBug02.txt │ │ │ ├── DotsWhenExistsBug.txt │ │ │ ├── EnvironmentNegationBug.txt │ │ │ └── MissingSubstitutionInAddedLocalVarDeclBug.txt │ │ ├── DeleteBranch.txt │ │ ├── DeleteBranchInBranch.txt │ │ ├── DeleteEnclosingBranch.txt │ │ ├── DeleteEnclosingBranchDots.txt │ │ ├── DeleteStmAfterBranch.txt │ │ ├── DeleteStmBeforeBranch.txt │ │ ├── DeleteStmInBranch.txt │ │ ├── DotsShortestPath.txt │ │ ├── DotsWhenAny.txt │ │ ├── DotsWhenNeqExpression │ │ │ ├── DotsWhenNeqExpression01.txt │ │ │ ├── DotsWhenNeqExpression02.txt │ │ │ ├── DotsWhenNeqExpression03.txt │ │ │ ├── DotsWhenNeqExpression04.txt │ │ │ ├── DotsWhenNeqExpression05.txt │ │ │ └── DotsWhenNeqExpression06.txt │ │ ├── DotsWithOptionalMatch │ │ │ ├── DotsWithOptionalMatchShortestPath.txt │ │ │ └── DotsWithOptionalMatchSingle.txt │ │ ├── EncloseInBranch.txt │ │ ├── Exceptions │ │ │ ├── DotsEnteringTryBlock.txt │ │ │ ├── DotsTraversingTryCatch.txt │ │ │ ├── ExistsDotsPatchingCatchBlock.txt │ │ │ └── ForallDotsNotPatchingCatchBlock.txt │ │ ├── ExpressionMatch │ │ │ └── BasicExpressionMatchAndTransform.txt │ │ ├── FieldReads.txt │ │ ├── HelloWorld.txt │ │ ├── MatchAnyType.txt │ │ ├── MatchSpecificType.txt │ │ ├── MatchingMethodHeader │ │ │ ├── MethodHeaderBinding.txt │ │ │ ├── MethodHeaderDots.txt │ │ │ └── MethodHeaderLiteralMatch.txt │ │ ├── MethodBodyAdditions │ │ │ ├── AddToEmptyMethod.txt │ │ │ ├── AddToMethodBottom.txt │ │ │ └── AddToMethodTop.txt │ │ ├── MethodCallArgDots │ │ │ ├── MethodCallArgDotsMatchAny.txt │ │ │ ├── MethodCallArgDotsMatchSingle.txt │ │ │ ├── MethodCallArgDotsMatchSingleAtEnd.txt │ │ │ ├── MethodCallArgDotsMatchSingleAtStart.txt │ │ │ ├── MethodCallArgDotsNested1.txt │ │ │ ├── MethodCallArgDotsNested2.txt │ │ │ ├── MethodCallArgDotsNested3.txt │ │ │ ├── MethodCallArgDotsNested4.txt │ │ │ ├── MethodCallArgDotsNested5.txt │ │ │ ├── MethodCallArgDotsNested6.txt │ │ │ └── MethodCallArgDotsNested7.txt │ │ ├── MethodHeaderTransformation │ │ │ ├── MethodHeaderTransformationAlsoAddingMethods.txt │ │ │ ├── MethodHeaderTransformationChangeAll.txt │ │ │ ├── MethodHeaderTransformationChangeName.txt │ │ │ ├── MethodHeaderTransformationChangeParams.txt │ │ │ └── MethodHeaderTransformationChangeType.txt │ │ ├── MethodsAddedToClass │ │ │ └── MethodsAddedToClass.txt │ │ ├── PrependContextBranch.txt │ │ ├── PrependToContext.txt │ │ ├── README.md │ │ ├── RemoveLocalsReturningConstants │ │ │ ├── RemoveLocalsReturningConstants001.txt │ │ │ ├── RemoveLocalsReturningConstantsBranch.txt │ │ │ ├── RemoveLocalsReturningConstantsBranchMultiple.txt │ │ │ ├── RemoveLocalsReturningConstantsBranchMultipleWhenExists.txt │ │ │ ├── RemoveLocalsReturningConstantsElselessBranch.txt │ │ │ ├── RemoveLocalsReturningConstantsExpressionlessReturnBug.txt │ │ │ └── RemoveLocalsReturningConstantsRejectUsageInBranchCondition.txt │ │ ├── ReplacedTypeAccesses │ │ │ ├── ReplacedTypeAccessesMatchExternal.txt │ │ │ ├── ReplacedTypeAccessesMatchInner.txt │ │ │ ├── ReplacedTypeAccessesMatchMissing.txt │ │ │ ├── ReplacedTypeAccessesRejectExternal.txt │ │ │ ├── ReplacedTypeAccessesRejectInner.txt │ │ │ └── ReplacedTypeAccessesRejectMissing.txt │ │ ├── TernaryExpression.txt │ │ ├── TypedIdentifierMetavariables1.txt │ │ ├── TypedIdentifierMetavariables2.txt │ │ └── UnsupportedElements │ │ │ ├── UnsupportedElementsDotsWhenExists.txt │ │ │ ├── UnsupportedElementsMatchAfter.txt │ │ │ ├── UnsupportedElementsMatchBefore.txt │ │ │ ├── UnsupportedElementsMatchSurrounding.txt │ │ │ ├── UnsupportedElementsRejectDots.txt │ │ │ └── UnsupportedElementsRejectDotsWhenNotEquals.txt │ │ ├── should_vibrate.patch │ │ └── should_vibrate.txt └── tools │ ├── gen-e2e-testsuite.py │ ├── missing-contracts.py │ ├── smplcli.sh │ ├── smplgui.py │ └── validate-e2e-tests.sh ├── spoon-visualisation ├── LICENSE ├── README.md ├── doc │ ├── appAuto.png │ ├── appClassElt.png │ ├── appExp.png │ ├── appFeat.png │ ├── appFeat2.png │ ├── appStatement.png │ ├── openDoc.png │ └── props.png ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── module-info.java │ │ └── spoon │ │ │ └── visualisation │ │ │ ├── Launcher.java │ │ │ ├── ShowMe.java │ │ │ ├── command │ │ │ ├── SaveTreeText.java │ │ │ ├── SelectCodeItem.java │ │ │ ├── SelectCodeText.java │ │ │ ├── SpoonTreeCmdBase.java │ │ │ ├── TreeLevel.java │ │ │ └── UpdateSpoonTree.java │ │ │ ├── instrument │ │ │ └── SpoonCodeInstrument.java │ │ │ └── spoon │ │ │ ├── SpoonElementVisitor.java │ │ │ ├── SpoonTreeItem.java │ │ │ ├── SpoonTreeScanner.java │ │ │ ├── StreamPrinter.java │ │ │ ├── TreeNodeLabel.java │ │ │ └── TreePrinter.java │ └── resources │ │ └── fxml │ │ └── UI.fxml │ └── test │ ├── java │ └── spoon │ │ └── visualisation │ │ └── instrument │ │ └── SpoonCodeInstrumentTest.java │ └── resources │ └── mockito-extensions │ └── org.mockito.plugins.MockMaker └── src ├── main ├── assembly │ └── project.xml ├── java │ └── spoon │ │ ├── ContractVerifier.java │ │ ├── FluentLauncher.java │ │ ├── IncrementalLauncher.java │ │ ├── JLSViolation.java │ │ ├── Launcher.java │ │ ├── LovecraftException.java │ │ ├── MavenLauncher.java │ │ ├── NoClasspathWorkaround.java │ │ ├── OutputType.java │ │ ├── SpoonAPI.java │ │ ├── SpoonException.java │ │ ├── SpoonModelBuilder.java │ │ ├── compiler │ │ ├── Environment.java │ │ ├── InvalidClassPathException.java │ │ ├── ModelBuildingException.java │ │ ├── SpoonFile.java │ │ ├── SpoonFolder.java │ │ ├── SpoonResource.java │ │ ├── SpoonResourceHelper.java │ │ ├── builder │ │ │ ├── AdvancedOptions.java │ │ │ ├── AnnotationProcessingOptions.java │ │ │ ├── ClasspathOptions.java │ │ │ ├── ComplianceOptions.java │ │ │ ├── EncodingProvider.java │ │ │ ├── JDTBuilder.java │ │ │ ├── JDTBuilderImpl.java │ │ │ ├── Options.java │ │ │ └── SourceOptions.java │ │ └── package-info.java │ │ ├── experimental │ │ ├── CtUnresolvedImport.java │ │ ├── NoClasspathWorkaround.java │ │ ├── SpoonifierVisitor.java │ │ └── package-info.java │ │ ├── javadoc │ │ └── internal │ │ │ ├── Javadoc.java │ │ │ ├── JavadocBlockTag.java │ │ │ ├── JavadocDescription.java │ │ │ ├── JavadocDescriptionElement.java │ │ │ ├── JavadocInlineTag.java │ │ │ └── JavadocSnippet.java │ │ ├── legacy │ │ ├── NameFilter.java │ │ └── package-info.java │ │ ├── metamodel │ │ ├── ConceptKind.java │ │ ├── MMMethod.java │ │ ├── MMMethodKind.java │ │ ├── Metamodel.java │ │ ├── MetamodelConcept.java │ │ ├── MetamodelProperty.java │ │ └── package-info.java │ │ ├── package-info.java │ │ ├── pattern │ │ ├── ConflictResolutionMode.java │ │ ├── Generator.java │ │ ├── InlinedStatementConfigurator.java │ │ ├── Match.java │ │ ├── Pattern.java │ │ ├── PatternBuilder.java │ │ ├── PatternBuilderHelper.java │ │ ├── PatternParameterConfigurator.java │ │ ├── Quantifier.java │ │ └── internal │ │ │ ├── DefaultGenerator.java │ │ │ ├── PatternPrinter.java │ │ │ ├── ResultHolder.java │ │ │ ├── SubstitutionRequestProvider.java │ │ │ ├── ValueConvertor.java │ │ │ ├── ValueConvertorImpl.java │ │ │ ├── matcher │ │ │ ├── ChainOfMatchersImpl.java │ │ │ ├── Matchers.java │ │ │ ├── MatchingScanner.java │ │ │ └── TobeMatched.java │ │ │ ├── node │ │ │ ├── AbstractNode.java │ │ │ ├── AbstractPrimitiveMatcher.java │ │ │ ├── AbstractRepeatableMatcher.java │ │ │ ├── ConstantNode.java │ │ │ ├── ElementNode.java │ │ │ ├── ForEachNode.java │ │ │ ├── InlineNode.java │ │ │ ├── ListOfNodes.java │ │ │ ├── MapEntryNode.java │ │ │ ├── ParameterNode.java │ │ │ ├── PrimitiveMatcher.java │ │ │ ├── RepeatableMatcher.java │ │ │ ├── RootNode.java │ │ │ ├── StringNode.java │ │ │ └── SwitchNode.java │ │ │ └── parameter │ │ │ ├── AbstractParameterInfo.java │ │ │ ├── ComputedParameterInfo.java │ │ │ ├── ListParameterInfo.java │ │ │ ├── MapParameterInfo.java │ │ │ ├── ParameterComputer.java │ │ │ ├── ParameterInfo.java │ │ │ ├── SetParameterInfo.java │ │ │ └── SimpleNameOfTypeReferenceParameterComputer.java │ │ ├── processing │ │ ├── AbstractAnnotationProcessor.java │ │ ├── AbstractManualProcessor.java │ │ ├── AbstractParallelProcessor.java │ │ ├── AbstractProcessor.java │ │ ├── AnnotationProcessor.java │ │ ├── FactoryAccessor.java │ │ ├── FileGenerator.java │ │ ├── ProcessInterruption.java │ │ ├── ProcessingManager.java │ │ ├── Processor.java │ │ ├── ProcessorProperties.java │ │ ├── ProcessorPropertiesImpl.java │ │ ├── Property.java │ │ ├── SpoonTagger.java │ │ ├── TraversalStrategy.java │ │ └── package-info.java │ │ ├── refactoring │ │ ├── AbstractRenameRefactoring.java │ │ ├── CtDeprecatedRefactoring.java │ │ ├── CtParameterRemoveRefactoring.java │ │ ├── CtRefactoring.java │ │ ├── CtRenameGenericVariableRefactoring.java │ │ ├── CtRenameLocalVariableRefactoring.java │ │ ├── CtRenameRefactoring.java │ │ ├── MethodCallState.java │ │ ├── MethodInvocationSearch.java │ │ ├── Refactoring.java │ │ └── RefactoringException.java │ │ ├── reflect │ │ ├── CtModel.java │ │ ├── CtModelImpl.java │ │ ├── ModelElementContainerDefaultCapacities.java │ │ ├── ModelStreamer.java │ │ ├── annotations │ │ │ ├── MetamodelPropertyField.java │ │ │ ├── PropertyGetter.java │ │ │ └── PropertySetter.java │ │ ├── code │ │ │ ├── BinaryOperatorKind.java │ │ │ ├── CaseKind.java │ │ │ ├── CtAbstractInvocation.java │ │ │ ├── CtAbstractSwitch.java │ │ │ ├── CtAnnotationFieldAccess.java │ │ │ ├── CtArrayAccess.java │ │ │ ├── CtArrayRead.java │ │ │ ├── CtArrayWrite.java │ │ │ ├── CtAssert.java │ │ │ ├── CtAssignment.java │ │ │ ├── CtBinaryOperator.java │ │ │ ├── CtBlock.java │ │ │ ├── CtBodyHolder.java │ │ │ ├── CtBreak.java │ │ │ ├── CtCFlowBreak.java │ │ │ ├── CtCase.java │ │ │ ├── CtCasePattern.java │ │ │ ├── CtCatch.java │ │ │ ├── CtCatchVariable.java │ │ │ ├── CtCodeElement.java │ │ │ ├── CtCodeSnippetExpression.java │ │ │ ├── CtCodeSnippetStatement.java │ │ │ ├── CtComment.java │ │ │ ├── CtConditional.java │ │ │ ├── CtConstructorCall.java │ │ │ ├── CtContinue.java │ │ │ ├── CtDo.java │ │ │ ├── CtExecutableReferenceExpression.java │ │ │ ├── CtExpression.java │ │ │ ├── CtFieldAccess.java │ │ │ ├── CtFieldRead.java │ │ │ ├── CtFieldWrite.java │ │ │ ├── CtFor.java │ │ │ ├── CtForEach.java │ │ │ ├── CtIf.java │ │ │ ├── CtInvocation.java │ │ │ ├── CtJavaDoc.java │ │ │ ├── CtJavaDocTag.java │ │ │ ├── CtLabelledFlowBreak.java │ │ │ ├── CtLambda.java │ │ │ ├── CtLiteral.java │ │ │ ├── CtLocalVariable.java │ │ │ ├── CtLoop.java │ │ │ ├── CtNewArray.java │ │ │ ├── CtNewClass.java │ │ │ ├── CtOperatorAssignment.java │ │ │ ├── CtPattern.java │ │ │ ├── CtRHSReceiver.java │ │ │ ├── CtRecordPattern.java │ │ │ ├── CtResource.java │ │ │ ├── CtReturn.java │ │ │ ├── CtStatement.java │ │ │ ├── CtStatementList.java │ │ │ ├── CtSuperAccess.java │ │ │ ├── CtSwitch.java │ │ │ ├── CtSwitchExpression.java │ │ │ ├── CtSynchronized.java │ │ │ ├── CtTargetedExpression.java │ │ │ ├── CtTextBlock.java │ │ │ ├── CtThisAccess.java │ │ │ ├── CtThrow.java │ │ │ ├── CtTry.java │ │ │ ├── CtTryWithResource.java │ │ │ ├── CtTypeAccess.java │ │ │ ├── CtTypePattern.java │ │ │ ├── CtUnaryOperator.java │ │ │ ├── CtUnnamedPattern.java │ │ │ ├── CtVariableAccess.java │ │ │ ├── CtVariableRead.java │ │ │ ├── CtVariableWrite.java │ │ │ ├── CtWhile.java │ │ │ ├── CtYieldStatement.java │ │ │ ├── LiteralBase.java │ │ │ ├── UnaryOperatorKind.java │ │ │ └── package-info.java │ │ ├── cu │ │ │ ├── CompilationUnit.java │ │ │ ├── SourcePosition.java │ │ │ ├── SourcePositionHolder.java │ │ │ ├── package-info.java │ │ │ └── position │ │ │ │ ├── BodyHolderSourcePosition.java │ │ │ │ ├── CompoundSourcePosition.java │ │ │ │ ├── DeclarationSourcePosition.java │ │ │ │ └── NoSourcePosition.java │ │ ├── declaration │ │ │ ├── CtAnnotatedElementType.java │ │ │ ├── CtAnnotation.java │ │ │ ├── CtAnnotationMethod.java │ │ │ ├── CtAnnotationType.java │ │ │ ├── CtAnonymousExecutable.java │ │ │ ├── CtClass.java │ │ │ ├── CtCodeSnippet.java │ │ │ ├── CtCompilationUnit.java │ │ │ ├── CtConstructor.java │ │ │ ├── CtElement.java │ │ │ ├── CtEnum.java │ │ │ ├── CtEnumValue.java │ │ │ ├── CtExecutable.java │ │ │ ├── CtField.java │ │ │ ├── CtFormalTypeDeclarer.java │ │ │ ├── CtImport.java │ │ │ ├── CtImportKind.java │ │ │ ├── CtInterface.java │ │ │ ├── CtMethod.java │ │ │ ├── CtModifiable.java │ │ │ ├── CtModule.java │ │ │ ├── CtModuleDirective.java │ │ │ ├── CtModuleRequirement.java │ │ │ ├── CtMultiTypedElement.java │ │ │ ├── CtNamedElement.java │ │ │ ├── CtPackage.java │ │ │ ├── CtPackageDeclaration.java │ │ │ ├── CtPackageExport.java │ │ │ ├── CtParameter.java │ │ │ ├── CtProvidedService.java │ │ │ ├── CtReceiverParameter.java │ │ │ ├── CtRecord.java │ │ │ ├── CtRecordComponent.java │ │ │ ├── CtSealable.java │ │ │ ├── CtShadowable.java │ │ │ ├── CtType.java │ │ │ ├── CtTypeInformation.java │ │ │ ├── CtTypeMember.java │ │ │ ├── CtTypeParameter.java │ │ │ ├── CtTypedElement.java │ │ │ ├── CtUsedService.java │ │ │ ├── CtVariable.java │ │ │ ├── ModifierKind.java │ │ │ ├── ParentNotInitializedException.java │ │ │ └── package-info.java │ │ ├── eval │ │ │ ├── PartialEvaluator.java │ │ │ └── package-info.java │ │ ├── factory │ │ │ ├── AnnotationFactory.java │ │ │ ├── ClassFactory.java │ │ │ ├── CodeFactory.java │ │ │ ├── CompilationUnitFactory.java │ │ │ ├── ConstructorFactory.java │ │ │ ├── CoreFactory.java │ │ │ ├── EnumFactory.java │ │ │ ├── EvalFactory.java │ │ │ ├── ExecutableFactory.java │ │ │ ├── Factory.java │ │ │ ├── FactoryImpl.java │ │ │ ├── FieldFactory.java │ │ │ ├── InterfaceFactory.java │ │ │ ├── MethodFactory.java │ │ │ ├── ModuleFactory.java │ │ │ ├── PackageFactory.java │ │ │ ├── QueryFactory.java │ │ │ ├── SubFactory.java │ │ │ ├── TypeFactory.java │ │ │ └── package-info.java │ │ ├── meta │ │ │ ├── ContainerKind.java │ │ │ ├── RoleHandler.java │ │ │ └── impl │ │ │ │ ├── AbstractRoleHandler.java │ │ │ │ ├── ListHandler.java │ │ │ │ ├── MapHandler.java │ │ │ │ ├── ModelRoleHandlers.java │ │ │ │ ├── RoleHandlerHelper.java │ │ │ │ ├── SetHandler.java │ │ │ │ └── SingleHandler.java │ │ ├── package-info.java │ │ ├── path │ │ │ ├── CtElementPathBuilder.java │ │ │ ├── CtPath.java │ │ │ ├── CtPathBuilder.java │ │ │ ├── CtPathException.java │ │ │ ├── CtPathStringBuilder.java │ │ │ ├── CtRole.java │ │ │ └── impl │ │ │ │ ├── AbstractPathElement.java │ │ │ │ ├── CtNamedPathElement.java │ │ │ │ ├── CtPathElement.java │ │ │ │ ├── CtPathImpl.java │ │ │ │ ├── CtRolePathElement.java │ │ │ │ └── CtTypedNameElement.java │ │ ├── reference │ │ │ ├── CtActualTypeContainer.java │ │ │ ├── CtArrayTypeReference.java │ │ │ ├── CtCatchVariableReference.java │ │ │ ├── CtExecutableReference.java │ │ │ ├── CtFieldReference.java │ │ │ ├── CtIntersectionTypeReference.java │ │ │ ├── CtLocalVariableReference.java │ │ │ ├── CtModuleReference.java │ │ │ ├── CtPackageReference.java │ │ │ ├── CtParameterReference.java │ │ │ ├── CtReference.java │ │ │ ├── CtTypeMemberWildcardImportReference.java │ │ │ ├── CtTypeParameterReference.java │ │ │ ├── CtTypeReference.java │ │ │ ├── CtUnboundVariableReference.java │ │ │ ├── CtVariableReference.java │ │ │ ├── CtWildcardReference.java │ │ │ └── package-info.java │ │ └── visitor │ │ │ ├── AccessibleVariablesFinder.java │ │ │ ├── AstParentConsistencyChecker.java │ │ │ ├── CacheBasedConflictFinder.java │ │ │ ├── Child.java │ │ │ ├── CommentHelper.java │ │ │ ├── CtAbstractBiScanner.java │ │ │ ├── CtAbstractImportVisitor.java │ │ │ ├── CtAbstractVisitor.java │ │ │ ├── CtBFSIterator.java │ │ │ ├── CtBiScannerDefault.java │ │ │ ├── CtDequeScanner.java │ │ │ ├── CtImportVisitor.java │ │ │ ├── CtInheritanceScanner.java │ │ │ ├── CtIterator.java │ │ │ ├── CtScanner.java │ │ │ ├── CtVisitable.java │ │ │ ├── CtVisitor.java │ │ │ ├── DefaultImportComparator.java │ │ │ ├── DefaultJavaPrettyPrinter.java │ │ │ ├── DefaultTokenWriter.java │ │ │ ├── EarlyTerminatingScanner.java │ │ │ ├── ElementPrinterHelper.java │ │ │ ├── Filter.java │ │ │ ├── ForceFullyQualifiedProcessor.java │ │ │ ├── ForceImportProcessor.java │ │ │ ├── ImportAnalyzer.java │ │ │ ├── ImportCleaner.java │ │ │ ├── ImportConflictDetector.java │ │ │ ├── ImportScanner.java │ │ │ ├── ImportScannerImpl.java │ │ │ ├── JavaIdentifiers.java │ │ │ ├── LexicalScope.java │ │ │ ├── LexicalScopeScanner.java │ │ │ ├── ListPrinter.java │ │ │ ├── LiteralHelper.java │ │ │ ├── ModelConsistencyChecker.java │ │ │ ├── NameScopeImpl.java │ │ │ ├── OperatorHelper.java │ │ │ ├── Parent.java │ │ │ ├── PrettyPrinter.java │ │ │ ├── PrinterHelper.java │ │ │ ├── PrintingContext.java │ │ │ ├── Query.java │ │ │ ├── Root.java │ │ │ ├── RoundBracketAnalyzer.java │ │ │ ├── TokenWriter.java │ │ │ ├── TypeNameScope.java │ │ │ ├── chain │ │ │ ├── CtConsumableFunction.java │ │ │ ├── CtConsumer.java │ │ │ ├── CtFunction.java │ │ │ ├── CtQuery.java │ │ │ ├── CtQueryAware.java │ │ │ ├── CtQueryImpl.java │ │ │ ├── CtQueryable.java │ │ │ ├── CtScannerListener.java │ │ │ ├── QueryFailurePolicy.java │ │ │ └── ScanningMode.java │ │ │ ├── filter │ │ │ ├── AbstractFilter.java │ │ │ ├── AbstractReferenceFilter.java │ │ │ ├── AllMethodsSameSignatureFunction.java │ │ │ ├── AllTypeMembersFunction.java │ │ │ ├── AnnotationFilter.java │ │ │ ├── CatchVariableReferenceFunction.java │ │ │ ├── CatchVariableScopeFunction.java │ │ │ ├── CompositeFilter.java │ │ │ ├── CtScannerFunction.java │ │ │ ├── DirectReferenceFilter.java │ │ │ ├── ExecutableReferenceFilter.java │ │ │ ├── FieldAccessFilter.java │ │ │ ├── FieldReferenceFunction.java │ │ │ ├── FieldScopeFunction.java │ │ │ ├── FilteringOperator.java │ │ │ ├── InvocationFilter.java │ │ │ ├── LambdaFilter.java │ │ │ ├── LineFilter.java │ │ │ ├── LocalVariableReferenceFunction.java │ │ │ ├── LocalVariableScopeFunction.java │ │ │ ├── NamedElementFilter.java │ │ │ ├── OverriddenMethodFilter.java │ │ │ ├── OverriddenMethodQuery.java │ │ │ ├── OverridingMethodFilter.java │ │ │ ├── ParameterReferenceFunction.java │ │ │ ├── ParameterScopeFunction.java │ │ │ ├── ParentFunction.java │ │ │ ├── PotentialVariableDeclarationFunction.java │ │ │ ├── ReferenceTypeFilter.java │ │ │ ├── RegexFilter.java │ │ │ ├── ReturnOrThrowFilter.java │ │ │ ├── SameFilter.java │ │ │ ├── SiblingsFunction.java │ │ │ ├── SubInheritanceHierarchyFunction.java │ │ │ ├── SubtypeFilter.java │ │ │ ├── SuperInheritanceHierarchyFunction.java │ │ │ ├── TypeFilter.java │ │ │ ├── VariableAccessFilter.java │ │ │ ├── VariableReferenceFunction.java │ │ │ ├── VariableScopeFunction.java │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── printer │ │ │ └── CommentOffset.java │ │ ├── support │ │ ├── CompressionType.java │ │ ├── DefaultCoreFactory.java │ │ ├── DefaultOutputDestinationHandler.java │ │ ├── DerivedProperty.java │ │ ├── Experimental.java │ │ ├── Internal.java │ │ ├── JavaOutputProcessor.java │ │ ├── Level.java │ │ ├── OutputDestinationHandler.java │ │ ├── QueueProcessingManager.java │ │ ├── RuntimeProcessingManager.java │ │ ├── SerializationModelStreamer.java │ │ ├── SpoonClassNotFoundException.java │ │ ├── StandardEnvironment.java │ │ ├── UnsettableProperty.java │ │ ├── adaption │ │ │ ├── AdaptionVisitor.java │ │ │ ├── DeclarationNode.java │ │ │ ├── GlueNode.java │ │ │ ├── NodePrintHelper.java │ │ │ └── TypeAdaptor.java │ │ ├── comparator │ │ │ ├── CtLineElementComparator.java │ │ │ ├── DeepRepresentationComparator.java │ │ │ ├── FixedOrderBasedOnFileNameCompilationUnitComparator.java │ │ │ ├── QualifiedNameComparator.java │ │ │ └── SignatureComparator.java │ │ ├── compiler │ │ │ ├── FileSystemFile.java │ │ │ ├── FileSystemFolder.java │ │ │ ├── FilteringFolder.java │ │ │ ├── ProgressLogger.java │ │ │ ├── SnippetCompilationError.java │ │ │ ├── SnippetCompilationHelper.java │ │ │ ├── SpoonPom.java │ │ │ ├── SpoonProgress.java │ │ │ ├── VirtualFile.java │ │ │ ├── VirtualFolder.java │ │ │ ├── ZipFile.java │ │ │ ├── ZipFolder.java │ │ │ └── jdt │ │ │ │ ├── ASTPair.java │ │ │ │ ├── CompilationUnitFilter.java │ │ │ │ ├── CompilationUnitWrapper.java │ │ │ │ ├── ContextBuilder.java │ │ │ │ ├── FactoryCompilerConfig.java │ │ │ │ ├── FileCompilerConfig.java │ │ │ │ ├── JDTBasedSpoonCompiler.java │ │ │ │ ├── JDTBatchCompiler.java │ │ │ │ ├── JDTCommentBuilder.java │ │ │ │ ├── JDTConstants.java │ │ │ │ ├── JDTImportBuilder.java │ │ │ │ ├── JDTSnippetCompiler.java │ │ │ │ ├── JDTTreeBuilder.java │ │ │ │ ├── JDTTreeBuilderHelper.java │ │ │ │ ├── JDTTreeBuilderQuery.java │ │ │ │ ├── ModifierTarget.java │ │ │ │ ├── ParentExiter.java │ │ │ │ ├── PositionBuilder.java │ │ │ │ ├── ReferenceBuilder.java │ │ │ │ ├── TreeBuilderCompiler.java │ │ │ │ └── TreeBuilderRequestor.java │ │ ├── gui │ │ │ ├── SpoonModelTree.java │ │ │ ├── SpoonObjectFieldsTable.java │ │ │ └── SpoonTreeBuilder.java │ │ ├── modelobs │ │ │ ├── ActionBasedChangeListener.java │ │ │ ├── ActionBasedChangeListenerImpl.java │ │ │ ├── ChangeCollector.java │ │ │ ├── EmptyModelChangeListener.java │ │ │ ├── FineModelChangeListener.java │ │ │ ├── SourceFragmentCreator.java │ │ │ ├── action │ │ │ │ ├── Action.java │ │ │ │ ├── AddAction.java │ │ │ │ ├── DeleteAction.java │ │ │ │ ├── DeleteAllAction.java │ │ │ │ └── UpdateAction.java │ │ │ └── context │ │ │ │ ├── CollectionContext.java │ │ │ │ ├── Context.java │ │ │ │ ├── ListContext.java │ │ │ │ ├── MapContext.java │ │ │ │ ├── ObjectContext.java │ │ │ │ └── SetContext.java │ │ ├── package-info.java │ │ ├── reflect │ │ │ ├── CtExtendedModifier.java │ │ │ ├── CtModifierHandler.java │ │ │ ├── code │ │ │ │ ├── CtAnnotationFieldAccessImpl.java │ │ │ │ ├── CtArrayAccessImpl.java │ │ │ │ ├── CtArrayReadImpl.java │ │ │ │ ├── CtArrayWriteImpl.java │ │ │ │ ├── CtAssertImpl.java │ │ │ │ ├── CtAssignmentImpl.java │ │ │ │ ├── CtBinaryOperatorImpl.java │ │ │ │ ├── CtBlockImpl.java │ │ │ │ ├── CtBreakImpl.java │ │ │ │ ├── CtCaseImpl.java │ │ │ │ ├── CtCasePatternImpl.java │ │ │ │ ├── CtCatchImpl.java │ │ │ │ ├── CtCatchVariableImpl.java │ │ │ │ ├── CtCodeElementImpl.java │ │ │ │ ├── CtCodeSnippetExpressionImpl.java │ │ │ │ ├── CtCodeSnippetStatementImpl.java │ │ │ │ ├── CtCommentImpl.java │ │ │ │ ├── CtConditionalImpl.java │ │ │ │ ├── CtConstructorCallImpl.java │ │ │ │ ├── CtContinueImpl.java │ │ │ │ ├── CtDoImpl.java │ │ │ │ ├── CtExecutableReferenceExpressionImpl.java │ │ │ │ ├── CtExpressionImpl.java │ │ │ │ ├── CtFieldAccessImpl.java │ │ │ │ ├── CtFieldReadImpl.java │ │ │ │ ├── CtFieldWriteImpl.java │ │ │ │ ├── CtForEachImpl.java │ │ │ │ ├── CtForImpl.java │ │ │ │ ├── CtIfImpl.java │ │ │ │ ├── CtInvocationImpl.java │ │ │ │ ├── CtJavaDocImpl.java │ │ │ │ ├── CtJavaDocTagImpl.java │ │ │ │ ├── CtLambdaImpl.java │ │ │ │ ├── CtLiteralImpl.java │ │ │ │ ├── CtLocalVariableImpl.java │ │ │ │ ├── CtLoopImpl.java │ │ │ │ ├── CtNewArrayImpl.java │ │ │ │ ├── CtNewClassImpl.java │ │ │ │ ├── CtOperatorAssignmentImpl.java │ │ │ │ ├── CtRecordPatternImpl.java │ │ │ │ ├── CtReturnImpl.java │ │ │ │ ├── CtStatementImpl.java │ │ │ │ ├── CtStatementListImpl.java │ │ │ │ ├── CtSuperAccessImpl.java │ │ │ │ ├── CtSwitchExpressionImpl.java │ │ │ │ ├── CtSwitchImpl.java │ │ │ │ ├── CtSynchronizedImpl.java │ │ │ │ ├── CtTargetedExpressionImpl.java │ │ │ │ ├── CtTextBlockImpl.java │ │ │ │ ├── CtThisAccessImpl.java │ │ │ │ ├── CtThrowImpl.java │ │ │ │ ├── CtTryImpl.java │ │ │ │ ├── CtTryWithResourceImpl.java │ │ │ │ ├── CtTypeAccessImpl.java │ │ │ │ ├── CtTypePatternImpl.java │ │ │ │ ├── CtUnaryOperatorImpl.java │ │ │ │ ├── CtUnnamedPatternImpl.java │ │ │ │ ├── CtVariableAccessImpl.java │ │ │ │ ├── CtVariableReadImpl.java │ │ │ │ ├── CtVariableWriteImpl.java │ │ │ │ ├── CtWhileImpl.java │ │ │ │ └── CtYieldStatementImpl.java │ │ │ ├── cu │ │ │ │ ├── CompilationUnitImpl.java │ │ │ │ └── position │ │ │ │ │ ├── BodyHolderSourcePositionImpl.java │ │ │ │ │ ├── CompoundSourcePositionImpl.java │ │ │ │ │ ├── DeclarationSourcePositionImpl.java │ │ │ │ │ ├── PartialSourcePositionImpl.java │ │ │ │ │ └── SourcePositionImpl.java │ │ │ ├── declaration │ │ │ │ ├── CtAnnotationImpl.java │ │ │ │ ├── CtAnnotationMethodImpl.java │ │ │ │ ├── CtAnnotationTypeImpl.java │ │ │ │ ├── CtAnonymousExecutableImpl.java │ │ │ │ ├── CtClassImpl.java │ │ │ │ ├── CtCompilationUnitImpl.java │ │ │ │ ├── CtConstructorImpl.java │ │ │ │ ├── CtElementImpl.java │ │ │ │ ├── CtEnumImpl.java │ │ │ │ ├── CtEnumValueImpl.java │ │ │ │ ├── CtExecutableImpl.java │ │ │ │ ├── CtFieldImpl.java │ │ │ │ ├── CtImportImpl.java │ │ │ │ ├── CtInterfaceImpl.java │ │ │ │ ├── CtMethodImpl.java │ │ │ │ ├── CtModuleImpl.java │ │ │ │ ├── CtModuleRequirementImpl.java │ │ │ │ ├── CtNamedElementImpl.java │ │ │ │ ├── CtPackageDeclarationImpl.java │ │ │ │ ├── CtPackageExportImpl.java │ │ │ │ ├── CtPackageImpl.java │ │ │ │ ├── CtParameterImpl.java │ │ │ │ ├── CtProvidedServiceImpl.java │ │ │ │ ├── CtReceiverParameterImpl.java │ │ │ │ ├── CtRecordComponentImpl.java │ │ │ │ ├── CtRecordImpl.java │ │ │ │ ├── CtTypeImpl.java │ │ │ │ ├── CtTypeParameterImpl.java │ │ │ │ ├── CtUsedServiceImpl.java │ │ │ │ └── InvisibleArrayConstructorImpl.java │ │ │ ├── eval │ │ │ │ ├── EvalHelper.java │ │ │ │ ├── InlinePartialEvaluator.java │ │ │ │ └── VisitorPartialEvaluator.java │ │ │ ├── package-info.java │ │ │ └── reference │ │ │ │ ├── CtArrayTypeReferenceImpl.java │ │ │ │ ├── CtCatchVariableReferenceImpl.java │ │ │ │ ├── CtExecutableReferenceImpl.java │ │ │ │ ├── CtFieldReferenceImpl.java │ │ │ │ ├── CtIntersectionTypeReferenceImpl.java │ │ │ │ ├── CtLocalVariableReferenceImpl.java │ │ │ │ ├── CtModuleReferenceImpl.java │ │ │ │ ├── CtPackageReferenceImpl.java │ │ │ │ ├── CtParameterReferenceImpl.java │ │ │ │ ├── CtReferenceImpl.java │ │ │ │ ├── CtTypeMemberWildcardImportReferenceImpl.java │ │ │ │ ├── CtTypeParameterReferenceImpl.java │ │ │ │ ├── CtTypeReferenceImpl.java │ │ │ │ ├── CtUnboundVariableReferenceImpl.java │ │ │ │ ├── CtVariableReferenceImpl.java │ │ │ │ └── CtWildcardReferenceImpl.java │ │ ├── sniper │ │ │ ├── SniperJavaPrettyPrinter.java │ │ │ ├── internal │ │ │ │ ├── AbstractSourceFragmentContextCollection.java │ │ │ │ ├── AbstractSourceFragmentPrinter.java │ │ │ │ ├── ChangeResolver.java │ │ │ │ ├── CollectionSourceFragment.java │ │ │ │ ├── DefaultSourceFragmentPrinter.java │ │ │ │ ├── ElementPrinterEvent.java │ │ │ │ ├── ElementSourceFragment.java │ │ │ │ ├── IndentationDetector.java │ │ │ │ ├── ModificationStatus.java │ │ │ │ ├── MutableTokenWriter.java │ │ │ │ ├── PrinterEvent.java │ │ │ │ ├── SourceFragment.java │ │ │ │ ├── SourceFragmentContextList.java │ │ │ │ ├── SourceFragmentContextNormal.java │ │ │ │ ├── SourceFragmentPrinter.java │ │ │ │ ├── TokenPrinterEvent.java │ │ │ │ ├── TokenSourceFragment.java │ │ │ │ ├── TokenType.java │ │ │ │ └── TokenWriterProxy.java │ │ │ └── package-info.java │ │ ├── template │ │ │ ├── Parameters.java │ │ │ ├── UndefinedParameterException.java │ │ │ └── package-info.java │ │ ├── util │ │ │ ├── ByteSerialization.java │ │ │ ├── EmptyClearableList.java │ │ │ ├── EmptyClearableSet.java │ │ │ ├── EmptyIterator.java │ │ │ ├── ImmutableMap.java │ │ │ ├── ImmutableMapImpl.java │ │ │ ├── ModelList.java │ │ │ ├── ModelSet.java │ │ │ ├── QualifiedNameBasedSortedSet.java │ │ │ ├── RtHelper.java │ │ │ ├── SignatureBasedSortedSet.java │ │ │ ├── SortedList.java │ │ │ └── internal │ │ │ │ ├── ElementNameMap.java │ │ │ │ └── ModelCollectionUtils.java │ │ └── visitor │ │ │ ├── AbstractTypingContext.java │ │ │ ├── ClassTypingContext.java │ │ │ ├── GenericTypeAdapter.java │ │ │ ├── HashcodeVisitor.java │ │ │ ├── MethodTypingContext.java │ │ │ ├── ProcessingVisitor.java │ │ │ ├── SignaturePrinter.java │ │ │ ├── SubInheritanceHierarchyResolver.java │ │ │ ├── TypeReferenceScanner.java │ │ │ ├── clone │ │ │ ├── CloneBuilder.java │ │ │ └── CloneVisitor.java │ │ │ ├── equals │ │ │ ├── CloneHelper.java │ │ │ ├── EqualsChecker.java │ │ │ ├── EqualsVisitor.java │ │ │ └── NotEqualException.java │ │ │ ├── java │ │ │ ├── JavaReflectionTreeBuilder.java │ │ │ ├── JavaReflectionVisitor.java │ │ │ ├── JavaReflectionVisitorImpl.java │ │ │ ├── MethodHandleUtils.java │ │ │ ├── internal │ │ │ │ ├── AbstractRuntimeBuilderContext.java │ │ │ │ ├── AnnotationRuntimeBuilderContext.java │ │ │ │ ├── ExecutableRuntimeBuilderContext.java │ │ │ │ ├── PackageRuntimeBuilderContext.java │ │ │ │ ├── RecordComponentRuntimeBuilderContext.java │ │ │ │ ├── RuntimeBuilderContext.java │ │ │ │ ├── TypeReferenceRuntimeBuilderContext.java │ │ │ │ ├── TypeRuntimeBuilderContext.java │ │ │ │ └── VariableRuntimeBuilderContext.java │ │ │ └── reflect │ │ │ │ ├── RtMethod.java │ │ │ │ └── RtParameter.java │ │ │ └── replace │ │ │ ├── InvalidReplaceException.java │ │ │ ├── ReplaceListListener.java │ │ │ ├── ReplaceListener.java │ │ │ ├── ReplaceMapListener.java │ │ │ ├── ReplaceSetListener.java │ │ │ └── ReplacementVisitor.java │ │ ├── template │ │ ├── AbstractTemplate.java │ │ ├── BlockTemplate.java │ │ ├── ExpressionTemplate.java │ │ ├── ExtensionTemplate.java │ │ ├── Local.java │ │ ├── Parameter.java │ │ ├── StatementTemplate.java │ │ ├── Substitution.java │ │ ├── Template.java │ │ ├── TemplateBuilder.java │ │ ├── TemplateException.java │ │ ├── TemplateMatcher.java │ │ ├── TemplateParameter.java │ │ └── package-info.java │ │ └── testing │ │ ├── AbstractAssert.java │ │ ├── AbstractCtElementAssert.java │ │ ├── AbstractCtPackageAssert.java │ │ ├── AbstractFileAssert.java │ │ ├── Assert.java │ │ ├── CtElementAssert.java │ │ ├── CtPackageAssert.java │ │ ├── FileAssert.java │ │ └── utils │ │ ├── Check.java │ │ ├── ModelUtils.java │ │ └── ProcessorUtils.java └── resources │ ├── properties.dtd │ ├── spoon.properties │ └── spoonlet.dtd ├── site └── site.xml └── test ├── java └── spoon │ ├── CompilationUnitPrintTest.java │ ├── FluentLauncherTest.java │ ├── LauncherTest.java │ ├── MavenLauncherTest.java │ ├── generating │ ├── CloneVisitorGenerator.java │ ├── CorrectIdentifierTest.java │ ├── CtBiScannerGenerator.java │ ├── MetamodelGenerator.java │ ├── ReplacementVisitorGenerator.java │ ├── RoleHandlersGenerator.java │ ├── clone │ │ ├── CloneBuilderTemplate.java │ │ ├── CloneVisitorTemplate.java │ │ ├── GetterTemplateMatcher.java │ │ └── SetterTemplateMatcher.java │ ├── jdt │ │ └── ModifierConstantsCollector.java │ ├── meta │ │ ├── ModelRoleHandlerTemplate.java │ │ └── RoleHandlerTemplate.java │ ├── replace │ │ ├── ReplaceScanner.java │ │ └── ReplacementVisitor.java │ └── scanner │ │ ├── CtBiScannerTemplate.java │ │ └── PeekElementTemplate.java │ ├── javadoc │ └── internal │ │ └── JavadocInlineTagTest.java │ ├── processing │ ├── CtGenerationTest.java │ └── ProcessingTest.java │ ├── reflect │ ├── ast │ │ ├── AstCheckerTest.java │ │ └── CloneTest.java │ ├── declaration │ │ ├── CtTypeInformationTest.java │ │ ├── UnknownDeclarationTest.java │ │ └── testclasses │ │ │ ├── ExtendsArrayList.java │ │ │ ├── Subclass.java │ │ │ ├── Subinterface.java │ │ │ └── TestInterface.java │ ├── factory │ │ ├── GenerateParentlessPackageTest.java │ │ └── PackageFactoryTest.java │ ├── reference │ │ └── CtTypeReferenceTest.java │ └── visitor │ │ ├── CacheBasedConflictFinderTest.java │ │ ├── CtBFSIteratorTest.java │ │ ├── CtInheritanceScannerMethodsTest.java │ │ ├── CtInheritanceScannerTest.java │ │ ├── CtIteratorTest.java │ │ ├── CtScannerTest.java │ │ ├── CtVisitorTest.java │ │ ├── DefaultJavaPrettyPrinterTest.java │ │ ├── ImportCleanerTest.java │ │ ├── ModelConsistencyCheckerTestHelper.java │ │ ├── processors │ │ ├── CheckScannerTestProcessor.java │ │ └── CheckVisitorTestProcessor.java │ │ └── testclasses │ │ └── simpleNestedClassWithFields.java │ ├── support │ ├── JavaOutputProcessorTest.java │ ├── TypeAdaptorTest.java │ ├── compiler │ │ ├── SpoonPomTest.java │ │ ├── ZipFileTest.java │ │ ├── classpath │ │ │ └── ComputeClasspathTest.java │ │ └── jdt │ │ │ ├── ExtendedStringLiteralTest.java │ │ │ ├── JDTBasedSpoonCompilerTest.java │ │ │ ├── JDTBatchCompilerTest.java │ │ │ ├── JDTBuilderTest.java │ │ │ ├── JDTImportBuilderTest.java │ │ │ ├── JDTTreeBuilderQueryTest.java │ │ │ ├── ReferenceBuilderTest.java │ │ │ ├── TreeBuilderCompilerTest.java │ │ │ └── testclasses │ │ │ ├── ExtendedStringLiteralTestClass.java │ │ │ └── Foo.java │ ├── gui │ │ └── SpoonTreeBuilderTest.java │ ├── util │ │ ├── QualifiedNameBasedSortedSetTest.java │ │ ├── SortedListTest.java │ │ ├── compilation │ │ │ ├── ClassFileManager.java │ │ │ ├── InMemoryClassLoader.java │ │ │ ├── InMemoryInputObject.java │ │ │ ├── InMemoryOutputObject.java │ │ │ └── JavacFacade.java │ │ └── internal │ │ │ └── ElementNameMapTest.java │ └── visitor │ │ └── java │ │ ├── JavaReflectionTreeBuilderTest.java │ │ └── testclasses │ │ ├── NPEInStaticInit.java │ │ └── UnsatisfiedLinkErrorInStaticInit.java │ ├── test │ ├── OutputTypeTest.java │ ├── SpoonTestHelpers.java │ ├── TemporaryDirectoryExecutionListener.java │ ├── TestExecutionLogger.java │ ├── annotation │ │ ├── AnnotationLoopTest.java │ │ ├── AnnotationTest.java │ │ ├── AnnotationValuesTest.java │ │ ├── TypeUseAnnotationTest.java │ │ └── testclasses │ │ │ ├── AnnotArray.java │ │ │ ├── AnnotArrayInnerClass.java │ │ │ ├── AnnotParam.java │ │ │ ├── AnnotParamTypeEnum.java │ │ │ ├── AnnotParamTypes.java │ │ │ ├── AnnotationCatch.java │ │ │ ├── AnnotationCatchExpression.java │ │ │ ├── AnnotationContainer.java │ │ │ ├── AnnotationDefaultAnnotation.java │ │ │ ├── AnnotationIntrospection.java │ │ │ ├── AnnotationMethodModifiers.java │ │ │ ├── AnnotationRepeated.java │ │ │ ├── AnnotationValues.java │ │ │ ├── AnnotationsAppliedOnAnyTypeInAClass.java │ │ │ ├── AnnotationsRepeated.java │ │ │ ├── Bar.java │ │ │ ├── BasicAnnotation.java │ │ │ ├── Bound.java │ │ │ ├── BoundNumber.java │ │ │ ├── ClassProcessed.java │ │ │ ├── CustomAnnotation.java │ │ │ ├── Foo.java │ │ │ ├── GlobalAnnotation.java │ │ │ ├── Inception.java │ │ │ ├── InnerAnnot.java │ │ │ ├── Main.java │ │ │ ├── PersistenceProperty.java │ │ │ ├── PortRange.java │ │ │ ├── Pozole.java │ │ │ ├── Summary.java │ │ │ ├── SuperAnnotation.java │ │ │ ├── TestAnnotation.java │ │ │ ├── TestInterface.java │ │ │ ├── TypeAnnotation.java │ │ │ ├── dropwizard │ │ │ └── GraphiteReporterFactory.java │ │ │ ├── notrepeatable │ │ │ └── StringAnnot.java │ │ │ ├── package-info.java │ │ │ ├── repeatable │ │ │ ├── Repeated.java │ │ │ ├── Tag.java │ │ │ └── Tags.java │ │ │ ├── repeatandarrays │ │ │ ├── RepeatedArrays.java │ │ │ ├── TagArrays.java │ │ │ └── TagsArrays.java │ │ │ ├── shadow │ │ │ ├── ClassRetention.java │ │ │ ├── DumbKlass.java │ │ │ ├── RuntimeRetention.java │ │ │ └── StandardRetention.java │ │ │ ├── spring │ │ │ └── AliasFor.java │ │ │ └── typeandfield │ │ │ ├── AnnotTypeAndField.java │ │ │ └── SimpleClass.java │ ├── api │ │ ├── APITest.java │ │ ├── FileSystemFolderTest.java │ │ ├── Metamodel.java │ │ ├── MetamodelTest.java │ │ ├── NoClasspathTest.java │ │ ├── processors │ │ │ └── AwesomeProcessor.java │ │ └── testclasses │ │ │ └── Bar.java │ ├── architecture │ │ └── SpoonArchitectureEnforcerTest.java │ ├── arrays │ │ ├── ArraysTest.java │ │ └── testclasses │ │ │ ├── ArrayClass.java │ │ │ ├── Foo.java │ │ │ ├── NewArrayWithComment.java │ │ │ └── VaragParam.java │ ├── casts │ │ ├── CastTest.java │ │ └── testclasses │ │ │ └── Castings.java │ ├── change │ │ ├── ChangeCollectorTest.java │ │ └── testclasses │ │ │ └── SubjectOfChange.java │ ├── comment │ │ ├── CommentTest.java │ │ └── testclasses │ │ │ ├── AnnotationComments.java │ │ │ ├── AnnotationTypeComments.java │ │ │ ├── ArrayAccessComments.java │ │ │ ├── BinaryOperatorComments.java │ │ │ ├── BlockComment.java │ │ │ ├── CatchComments.java │ │ │ ├── Comment1.java │ │ │ ├── Comment2.java │ │ │ ├── CommentsOnStatements.java │ │ │ ├── EmptyStatementComments.java │ │ │ ├── EnumClass.java │ │ │ ├── InlineComment.java │ │ │ ├── JavaDocComment.java │ │ │ ├── JavaDocEmptyCommentAndTags.java │ │ │ ├── JavaDocWithLink.java │ │ │ ├── LambdaComments.java │ │ │ ├── OtherJavaDoc.java │ │ │ ├── TestClassWithComments.java │ │ │ ├── TypeParameterComments.java │ │ │ ├── WildComments.java │ │ │ ├── WindowsEOL.java │ │ │ ├── WithIfBlock.java │ │ │ └── package-info.java │ ├── comparison │ │ └── EqualTest.java │ ├── compilation │ │ ├── CompilationTest.java │ │ └── testclasses │ │ │ ├── Bar.java │ │ │ ├── IBar.java │ │ │ └── Ifoo.java │ ├── compilationunit │ │ ├── GetBinaryFilesTest.java │ │ └── TestCompilationUnit.java │ ├── condition │ │ ├── ConditionalTest.java │ │ └── testclasses │ │ │ ├── Foo.java │ │ │ └── Foo2.java │ ├── constructor │ ├── constructorcallnewclass │ │ ├── ConstructorCallTest.java │ │ ├── NewClassTest.java │ │ └── testclasses │ │ │ ├── Bar.java │ │ │ ├── Foo.java │ │ │ ├── Foo2.java │ │ │ └── Panini.java │ ├── control │ │ ├── ControlTest.java │ │ └── testclasses │ │ │ ├── DoWhile.java │ │ │ └── Fors.java │ ├── ctBlock │ │ ├── TestCtBlock.java │ │ └── testclasses │ │ │ └── Toto.java │ ├── ctBodyHolder │ │ ├── CtBodyHolderTest.java │ │ └── testclasses │ │ │ ├── CWBStatementTemplate.java │ │ │ └── ClassWithBodies.java │ ├── ctCase │ │ ├── CtCaseTest.java │ │ └── testclasses │ │ │ └── ClassWithSwitchExample.java │ ├── ctClass │ │ ├── CtClassTest.java │ │ └── testclasses │ │ │ ├── AnonymousClass.java │ │ │ ├── Foo.java │ │ │ ├── Pozole.java │ │ │ └── issue1306 │ │ │ ├── internal │ │ │ ├── BooleanArrays.java │ │ │ └── BooleanArraysBaseTest.java │ │ │ └── test │ │ │ └── BooleanArrays.java │ ├── ctElement │ │ ├── ElementTest.java │ │ ├── MetadataTest.java │ │ └── testclasses │ │ │ └── Returner.java │ ├── ctStatementList │ │ └── CtStatementListTest.java │ ├── ctType │ │ ├── CtTypeParameterTest.java │ │ ├── CtTypeTest.java │ │ └── testclasses │ │ │ ├── ErasureModelA.java │ │ │ ├── MultiInterfaceImplementation.java │ │ │ ├── SubtypeModel.java │ │ │ └── X.java │ ├── delete │ │ ├── DeleteTest.java │ │ └── testclasses │ │ │ └── Adobada.java │ ├── enums │ │ ├── EnumsTest.java │ │ ├── EnumsTypeTest.java │ │ └── testclasses │ │ │ ├── AnonEnum.java │ │ │ ├── Burritos.java │ │ │ ├── EnumWithMembers.java │ │ │ ├── Foo.java │ │ │ ├── NestedEnums.java │ │ │ ├── Performable.java │ │ │ └── Regular.java │ ├── eval │ │ ├── EvalTest.java │ │ └── testclasses │ │ │ ├── Foo.java │ │ │ └── ToEvaluate.java │ ├── exceptions │ │ └── ExceptionTest.java │ ├── executable │ │ ├── ExecutableRefTest.java │ │ ├── ExecutableTest.java │ │ └── testclasses │ │ │ ├── A.java │ │ │ ├── AnonymousExecutableSample.java │ │ │ ├── ExecutableRefTestSource.java │ │ │ ├── MyIntf.java │ │ │ ├── Pozole.java │ │ │ └── WithEnum.java │ ├── factory │ │ ├── AnnotationFactoryTest.java │ │ ├── ClassFactoryTest.java │ │ ├── CodeFactoryTest.java │ │ ├── ConstructorFactoryTest.java │ │ ├── ExecutableFactoryTest.java │ │ ├── FactoryTest.java │ │ ├── FieldFactoryTest.java │ │ ├── MethodFactoryTest.java │ │ ├── TypeFactoryTest.java │ │ ├── testclasses │ │ │ └── Foo.java │ │ ├── testclasses2 │ │ │ └── Baz.java │ │ ├── testclasses3 │ │ │ ├── Cooking.java │ │ │ └── Prepare.java │ │ └── testclasses4 │ │ │ └── Bar.java │ ├── field │ │ ├── FieldTest.java │ │ └── testclasses │ │ │ ├── A.java │ │ │ ├── AddFieldAtTop.java │ │ │ ├── AnnoWithConst.java │ │ │ └── BaseClass.java │ ├── fieldaccesses │ │ ├── FieldAccessTest.java │ │ └── testclasses │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── BCUBug20140402.java │ │ │ ├── BUG20160112.java │ │ │ ├── Kuu.java │ │ │ ├── Mole.java │ │ │ ├── Mouse.java │ │ │ ├── MyClass.java │ │ │ ├── Panini.java │ │ │ ├── Pozole.java │ │ │ ├── Tacos.java │ │ │ ├── TargetedAccessPosition.java │ │ │ └── internal │ │ │ ├── Bar.java │ │ │ └── Foo.java │ ├── filters │ │ ├── CUFilterTest.java │ │ ├── FilterTest.java │ │ └── testclasses │ │ │ ├── AbstractTostada.java │ │ │ ├── Antojito.java │ │ │ ├── FieldAccessFilterTacos.java │ │ │ ├── Foo.java │ │ │ ├── FooLine.java │ │ │ ├── ITostada.java │ │ │ ├── SubTostada.java │ │ │ ├── Tacos.java │ │ │ └── Tostada.java │ ├── generics │ │ ├── GenericsTest.java │ │ ├── testclasses │ │ │ ├── Banana.java │ │ │ ├── CelebrationLunch.java │ │ │ ├── EnumSetOf.java │ │ │ ├── ExtendedPaella.java │ │ │ ├── FakeTpl.java │ │ │ ├── IBurritos.java │ │ │ ├── ITacos.java │ │ │ ├── Lunch.java │ │ │ ├── Mole.java │ │ │ ├── Orange.java │ │ │ ├── OuterTypeParameter.java │ │ │ ├── Paella.java │ │ │ ├── Panini.java │ │ │ ├── SameSignature.java │ │ │ ├── Spaghetti.java │ │ │ ├── Tacos.java │ │ │ └── rxjava │ │ │ │ ├── BehaviorSubject.java │ │ │ │ ├── Observable.java │ │ │ │ ├── Processor.java │ │ │ │ ├── Publisher.java │ │ │ │ ├── PublisherRedo.java │ │ │ │ ├── Subject.java │ │ │ │ ├── Subscriber.java │ │ │ │ ├── ToNotificationSubscriber.java │ │ │ │ └── Try.java │ │ ├── testclasses2 │ │ │ ├── LikeCtClass.java │ │ │ ├── LikeCtClassImpl.java │ │ │ ├── SameSignature2.java │ │ │ └── SameSignature3.java │ │ ├── testclasses3 │ │ │ ├── Bar.java │ │ │ ├── BugCollection.java │ │ │ ├── ClassThatBindsAGenericType.java │ │ │ ├── ClassThatDefinesANewTypeArgument.java │ │ │ ├── ComparableComparatorBug.java │ │ │ ├── Foo.java │ │ │ ├── GenericConstructor.java │ │ │ ├── GenericMethodCallWithExtend.java │ │ │ ├── InstanceOfMapEntryGeneric.java │ │ │ ├── SimilarSignatureMethodes.java │ │ │ ├── Tree.java │ │ │ ├── UpperBoundedWildcard.java │ │ │ └── UpperBoundedWildcardUser.java │ │ ├── testclasses4 │ │ │ ├── A.java │ │ │ └── C.java │ │ ├── testclasses5 │ │ │ ├── A.java │ │ │ └── B.java │ │ └── testclasses6 │ │ │ └── A.java │ ├── imports │ │ ├── CtUnresolvedImportTest.java │ │ ├── ImportAndExtendWithPackageNameTest.java │ │ ├── ImportScannerTest.java │ │ ├── ImportTest.java │ │ ├── name_scope │ │ │ ├── NameScopeTest.java │ │ │ └── testclasses │ │ │ │ └── Renata.java │ │ └── testclasses │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── ClassWithInvocation.java │ │ │ ├── ClientClass.java │ │ │ ├── DefaultClientClass.java │ │ │ ├── DumbClassUsingInternal.java │ │ │ ├── ItfWithEnum.java │ │ │ ├── JavaLongUse.java │ │ │ ├── Kun.java │ │ │ ├── Mole.java │ │ │ ├── MultiCatch.java │ │ │ ├── NotImportExecutableType.java │ │ │ ├── Pozole.java │ │ │ ├── Reflection.java │ │ │ ├── ShouldNotAutoreference.java │ │ │ ├── StaticImportsFromEnum.java │ │ │ ├── SubClass.java │ │ │ ├── SuperClass.java │ │ │ ├── Tacos.java │ │ │ ├── ToBeModified.java │ │ │ ├── TransportIndicesShardStoresAction.java │ │ │ ├── badimportissue3320 │ │ │ └── source │ │ │ │ ├── TestSource.java │ │ │ │ └── other │ │ │ │ ├── SomeObjectDto.java │ │ │ │ └── TestAnnotation.java │ │ │ ├── internal │ │ │ ├── ChildClass.java │ │ │ ├── PublicInterface2.java │ │ │ ├── PublicSuperClass.java │ │ │ └── SuperClass.java │ │ │ ├── internal2 │ │ │ ├── Chimichanga.java │ │ │ └── Menudo.java │ │ │ ├── internal3 │ │ │ ├── Bar.java │ │ │ └── Foo.java │ │ │ ├── internal4 │ │ │ ├── Constants.java │ │ │ └── Foo.java │ │ │ ├── memberaccess │ │ │ ├── A.java │ │ │ ├── DoesnotExtendA.java │ │ │ ├── ExtendsA.java │ │ │ └── Iface.java │ │ │ ├── memberaccess2 │ │ │ ├── DoesnotExtendA.java │ │ │ └── ExtendsA.java │ │ │ └── multiplecu │ │ │ ├── A.java │ │ │ └── B.java │ ├── initializers │ │ ├── InitializerTest.java │ │ └── testclasses │ │ │ ├── InstanceInitializers.java │ │ │ └── InternalClassStaticFieldInit.java │ ├── innerclasses │ │ └── InnerClasses.java │ ├── intercession │ │ ├── IntercessionScanner.java │ │ ├── IntercessionTest.java │ │ ├── OneCanCallSetterWithNullParameterizedTest.java │ │ ├── RemoveTest.java │ │ └── insertBefore │ │ │ ├── InsertBeforeExample.java │ │ │ └── InsertMethodsTest.java │ ├── interfaces │ │ ├── InterfaceTest.java │ │ ├── TestInterfaceWithoutSetup.java │ │ └── testclasses │ │ │ ├── EmptyInterface.java │ │ │ ├── ExtendsDefaultMethodInterface.java │ │ │ ├── ExtendsStaticMethodInterface.java │ │ │ ├── InterfaceWithDefaultMethods.java │ │ │ ├── RedefinesDefaultMethodInterface.java │ │ │ └── RedefinesStaticMethodInterface.java │ ├── invocations │ │ ├── InvocationTest.java │ │ └── testclasses │ │ │ ├── Bar.java │ │ │ └── Foo.java │ ├── issue3321 │ │ ├── AnnotationPositionTest.java │ │ ├── CtClassProcessor.java │ │ ├── SniperPrettyPrinterJavaxTest.java │ │ ├── SomeObjectDto.java │ │ ├── source │ │ │ └── JavaxImportTestSource.java │ │ └── testclasses │ │ │ ├── Ambiguous.java │ │ │ ├── AnnoUser.java │ │ │ ├── MyAnno.java │ │ │ └── OtherAnno.java │ ├── jar │ │ └── JarTest.java │ ├── javadoc │ │ ├── JavaDocTest.java │ │ └── testclasses │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ └── Bar.java │ ├── jdtimportbuilder │ │ ├── ImportBuilderTest.java │ │ └── testclasses │ │ │ ├── StarredImport.java │ │ │ ├── StaticImport.java │ │ │ ├── StaticImportWithInheritance.java │ │ │ ├── fullpack │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ └── C.java │ │ │ └── staticimport │ │ │ ├── Dependency.java │ │ │ └── DependencySubClass.java │ ├── labels │ │ ├── TestLabels.java │ │ └── testclasses │ │ │ └── ManyLabels.java │ ├── lambda │ │ ├── AnonymousInLambdaTest.java │ │ ├── LambdaTest.java │ │ └── testclasses │ │ │ ├── Bar.java │ │ │ ├── Foo.java │ │ │ ├── Intersection.java │ │ │ ├── Kuu.java │ │ │ ├── LambdaRxJava.java │ │ │ ├── Panini.java │ │ │ └── Tacos.java │ ├── limits │ │ └── utils │ │ │ ├── InternalTest.java │ │ │ └── testclasses │ │ │ └── ContainInternalClass.java │ ├── literal │ │ ├── LiteralTest.java │ │ ├── UnicodeBugTest.java │ │ └── testclasses │ │ │ ├── BasedLiteral.java │ │ │ ├── EscapedLiteral.java │ │ │ └── Tacos.java │ ├── logging │ │ └── LogTest.java │ ├── loop │ │ ├── LoopTest.java │ │ └── testclasses │ │ │ ├── Condition.java │ │ │ ├── EmptyLoops.java │ │ │ └── Join.java │ ├── main │ │ ├── MainTest.java │ │ └── testclasses │ │ │ └── Test.java │ ├── method │ │ ├── MethodTest.java │ │ └── testclasses │ │ │ ├── Hierarchy.java │ │ │ ├── Methods.java │ │ │ └── Tacos.java │ ├── method_overriding │ │ ├── MethodOverriddingTest.java │ │ ├── testclasses │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── C.java │ │ │ ├── D.java │ │ │ └── IA.java │ │ └── testclasses2 │ │ │ └── ObjectInterface.java │ ├── methodreference │ │ ├── MethodReferenceTest.java │ │ └── testclasses │ │ │ ├── AssertJ.java │ │ │ ├── Cloud.java │ │ │ └── Foo.java │ ├── model │ │ ├── AnonymousExecutableTest.java │ │ ├── BlockTest.java │ │ ├── ClassWithSuperAndIFace.java │ │ ├── Foo.java │ │ ├── IncrementalLauncherTest.java │ │ ├── SwitchCaseTest.java │ │ ├── TypeTest.java │ │ └── testclasses │ │ │ ├── AnonymousExecutableClass.java │ │ │ ├── ClassWithSuperOutOfModel.java │ │ │ ├── InterfaceSuperclass.java │ │ │ ├── InterfaceWrithFields.java │ │ │ └── SwitchStringClass.java │ ├── modifiers │ │ ├── ModifiersTest.java │ │ └── testclasses │ │ │ ├── AbstractClass.java │ │ │ ├── ConcreteClass.java │ │ │ ├── MethodVarArgs.java │ │ │ └── StaticMethod.java │ ├── module │ │ └── TestModule.java │ ├── parameters │ │ └── ParameterTest.java │ ├── parent │ │ ├── ContractOnSettersParametrizedTest.java │ │ ├── Foo.java │ │ ├── NullParentTest.java │ │ ├── ParentTest.java │ │ ├── SetParentTest.java │ │ └── TopLevelTypeTest.java │ ├── path │ │ ├── PathTest.java │ │ └── testclasses │ │ │ └── Foo.java │ ├── pattern │ │ ├── RecordPatternTest.java │ │ ├── SwitchPatternTest.java │ │ └── TypePatternTest.java │ ├── pkg │ │ ├── PackageTest.java │ │ ├── annotate │ │ │ └── package-info.java │ │ ├── cyclic │ │ │ ├── Outside.java │ │ │ ├── direct │ │ │ │ ├── Cyclic.java │ │ │ │ └── package-info.java │ │ │ └── indirect │ │ │ │ ├── Indirect.java │ │ │ │ └── package-info.java │ │ ├── name │ │ │ └── PackageTestClass.java │ │ ├── package-info.java │ │ ├── processors │ │ │ └── ElementProcessor.java │ │ ├── test_templates │ │ │ └── FakeTemplate.java │ │ └── testclasses │ │ │ ├── Foo.java │ │ │ ├── internal │ │ │ └── package-info.java │ │ │ └── package-info.java │ ├── position │ │ ├── PositionTest.java │ │ ├── TestSourceFragment.java │ │ └── testclasses │ │ │ ├── AnnonymousClassNewIface.java │ │ │ ├── AnnotationWithAngleBracket.java │ │ │ ├── ArrayArgParameter.java │ │ │ ├── CatchPosition.java │ │ │ ├── CompilationUnitComments.java │ │ │ ├── ExecutableReferencePositionTestClass.java │ │ │ ├── Expressions.java │ │ │ ├── Foo.java │ │ │ ├── FooAbstractMethod.java │ │ │ ├── FooAnnotation.java │ │ │ ├── FooClazz.java │ │ │ ├── FooClazz2.java │ │ │ ├── FooClazzWithComments.java │ │ │ ├── FooEnum.java │ │ │ ├── FooField.java │ │ │ ├── FooForEach.java │ │ │ ├── FooGeneric.java │ │ │ ├── FooInterface.java │ │ │ ├── FooLabel.java │ │ │ ├── FooLambda.java │ │ │ ├── FooMethod.java │ │ │ ├── FooSourceFragments.java │ │ │ ├── FooStatement.java │ │ │ ├── FooSwitch.java │ │ │ ├── ImplicitBlock.java │ │ │ ├── Kokos.java │ │ │ ├── MoreLambda.java │ │ │ ├── NewArrayList.java │ │ │ ├── NoMethodModifiers.java │ │ │ ├── PositionParameterTypeWithReference.java │ │ │ ├── PositionTry.java │ │ │ ├── SomeEnum.java │ │ │ ├── TestCommentedOutClass.java │ │ │ ├── TestSimpleClass.java │ │ │ ├── TestSingleLineClass.java │ │ │ └── TypeParameter.java │ ├── prettyprinter │ │ ├── DefaultPrettyPrinterTest.java │ │ ├── LinesTest.java │ │ ├── LoopSniperJavaPrettyPrinterTest.java │ │ ├── PrinterTest.java │ │ ├── QualifiedThisRefTest.java │ │ ├── SniperAnnotatedEnumTest.java │ │ ├── SniperAssertTest.java │ │ ├── SniperDefaultMethodTest.java │ │ ├── SniperDoubleBoundTest.java │ │ ├── SniperDoubleForInitializerTest.java │ │ ├── SniperInnerTypeTest.java │ │ ├── TestSniperPrinter.java │ │ └── testclasses │ │ │ ├── A.java │ │ │ ├── AClass.java │ │ │ ├── AnnotatedEnum.java │ │ │ ├── ArrayRealVector.java │ │ │ ├── ClassUsingStaticMethod.java │ │ │ ├── ClassWithStaticMethod.java │ │ │ ├── DefaultMethod.java │ │ │ ├── DoubleBound.java │ │ │ ├── DoubleForInitializer.java │ │ │ ├── ElementScan.java │ │ │ ├── FooCasper.java │ │ │ ├── ImportStatic.java │ │ │ ├── InvocationReplacement.java │ │ │ ├── MissingVariableDeclaration.java │ │ │ ├── OneLineMultipleVariableDeclaration.java │ │ │ ├── QualifiedThisRef.java │ │ │ ├── RefactorCast.java │ │ │ ├── Rule.java │ │ │ ├── SampleClassIssue5001.java │ │ │ ├── Simple.java │ │ │ ├── Throw.java │ │ │ ├── ToBeChanged.java │ │ │ ├── TypeIdentifierCollision.java │ │ │ ├── Validation.java │ │ │ ├── asserttest │ │ │ ├── AssertNOK.java │ │ │ └── AssertOk.java │ │ │ ├── difftest │ │ │ ├── Brackets.java │ │ │ ├── ConditionalComment.java │ │ │ ├── EnumComment.java │ │ │ ├── EnumTest.java │ │ │ ├── ExceptionTest.java │ │ │ └── MethodComment.java │ │ │ ├── innertype │ │ │ ├── InnerTypeCrash.java │ │ │ ├── InnerTypeOk.java │ │ │ └── InnerTypeOk2.java │ │ │ ├── loop │ │ │ ├── ForEachNoBraces.java │ │ │ ├── ForNoBraces.java │ │ │ ├── WhileNoBraces.java │ │ │ └── WhileWithBraces.java │ │ │ └── sub │ │ │ ├── Constants.java │ │ │ └── TypeIdentifierCollision.java │ ├── processing │ │ ├── ProcessingTest.java │ │ ├── processors │ │ │ ├── ArrayResizeProcessor.java │ │ │ ├── CtClassProcessor.java │ │ │ ├── CtInterfaceProcessor.java │ │ │ ├── CtTypeProcessor.java │ │ │ ├── GenericCtTypeProcessor.java │ │ │ ├── MyProcessor.java │ │ │ ├── ParallelProcessorTest.java │ │ │ ├── RenameProcessor.java │ │ │ └── TestProcessor.java │ │ └── testclasses │ │ │ └── SampleForInsertBefore.java │ ├── properties │ │ ├── PropertiesTest.java │ │ ├── SimpleProcessor.java │ │ └── testclasses │ │ │ └── Sample.java │ ├── query_function │ │ ├── VariableReferencesTest.java │ │ └── testclasses │ │ │ ├── VariableReferencesFromStaticMethod.java │ │ │ └── VariableReferencesModelTest.java │ ├── receiverparameter │ │ └── ReceiverParameterTest.java │ ├── record │ │ └── CtRecordTest.java │ ├── refactoring │ │ ├── CtRenameGenericVariableRefactoringTest.java │ │ ├── CtRenameLocalVariableRefactoringTest.java │ │ ├── MethodsRefactoringTest.java │ │ ├── RefactoringTest.java │ │ ├── parameter │ │ │ └── testclasses │ │ │ │ ├── IFaceB.java │ │ │ │ ├── IFaceK.java │ │ │ │ ├── IFaceL.java │ │ │ │ ├── IFaceT.java │ │ │ │ ├── TestHierarchy.java │ │ │ │ ├── TypeA.java │ │ │ │ ├── TypeB.java │ │ │ │ ├── TypeC.java │ │ │ │ ├── TypeK.java │ │ │ │ ├── TypeL.java │ │ │ │ ├── TypeM.java │ │ │ │ ├── TypeR.java │ │ │ │ └── TypeS.java │ │ ├── processors │ │ │ └── ThisTransformationProcessor.java │ │ └── testclasses │ │ │ ├── AClass.java │ │ │ ├── AbstractClass.java │ │ │ ├── CtRenameLocalVariableRefactoringTestSubject.java │ │ │ └── TestTryRename.java │ ├── reference │ │ ├── AnnotationFieldReferenceTest.java │ │ ├── CloneReferenceTest.java │ │ ├── ElasticsearchStackoverflowTest.java │ │ ├── Enum.java │ │ ├── ExecutableReferenceGenericTest.java │ │ ├── ExecutableReferenceTest.java │ │ ├── Foo.java │ │ ├── TypeReferenceTest.java │ │ ├── VariableAccessTest.java │ │ └── testclasses │ │ │ ├── Bar.java │ │ │ ├── Burritos.java │ │ │ ├── EnumValue.java │ │ │ ├── Foo.java │ │ │ ├── FooBar.java │ │ │ ├── Kuu.java │ │ │ ├── Mole.java │ │ │ ├── MyClass.java │ │ │ ├── MyClass2.java │ │ │ ├── MyClass3.java │ │ │ ├── Panini.java │ │ │ ├── ParamRefs.java │ │ │ ├── Parameter.java │ │ │ ├── Pozole.java │ │ │ ├── Stream.java │ │ │ ├── SuperAccess.java │ │ │ ├── SuperFoo.java │ │ │ ├── Tacos.java │ │ │ └── Tortillas.java │ ├── reflect │ │ └── visitor │ │ │ ├── ReferenceQueryTest.java │ │ │ └── testclasses │ │ │ └── ReferenceQueryTestEnum.java │ ├── replace │ │ ├── ReplaceParametrizedTest.java │ │ ├── ReplaceTest.java │ │ └── testclasses │ │ │ ├── Foo.java │ │ │ ├── Mole.java │ │ │ └── Tacos.java │ ├── role │ │ └── TestCtRole.java │ ├── sealedclasses │ │ └── SealedClassesTest.java │ ├── secondaryclasses │ │ ├── ClassesTest.java │ │ └── testclasses │ │ │ ├── AnonymousClass.java │ │ │ ├── ClassWithInternalPublicClassOrInterf.java │ │ │ ├── Pozole.java │ │ │ ├── PrivateInnerClasses.java │ │ │ └── TopLevel.java │ ├── serializable │ │ ├── ModelStreamerTest.java │ │ ├── SerializableTest.java │ │ ├── SourcePositionTest.java │ │ └── testclasses │ │ │ └── Dummy.java │ ├── signature │ │ └── SignatureTest.java │ ├── snippets │ │ └── SnippetTest.java │ ├── sourcePosition │ │ ├── SourcePositionTest.java │ │ └── testclasses │ │ │ └── Brambora.java │ ├── spoonifier │ │ ├── SpoonifierTest.java │ │ └── testclasses │ │ │ └── ArrayRealVector.java │ ├── statementComment │ │ ├── StatementCommentTest.java │ │ └── testclasses │ │ │ └── AllStmtExtensions.java │ ├── staticFieldAccess │ │ ├── StaticAccessBug.java │ │ ├── StaticAccessTest.java │ │ ├── internal │ │ │ ├── Extends.java │ │ │ └── Origin.java │ │ └── processors │ │ │ └── InsertBlockProcessor.java │ ├── staticFieldAccess2 │ │ ├── ImplicitStaticFieldReferenceTest.java │ │ └── testclasses │ │ │ ├── ALong.java │ │ │ ├── AmbiguousImplicitFieldReference.java │ │ │ ├── ChildOfConstants.java │ │ │ ├── ChildOfGenericsWithAmbiguousStaticField.java │ │ │ ├── Constants.java │ │ │ ├── GenericsWithAmbiguousMemberField.java │ │ │ ├── GenericsWithAmbiguousStaticField.java │ │ │ ├── ImplicitFieldReference.java │ │ │ ├── ImplicitStaticClassAccess.java │ │ │ └── ImplicitStaticFieldReference.java │ ├── strings │ │ ├── StringLiteralTest.java │ │ ├── StringTest.java │ │ └── testclasses │ │ │ └── Main.java │ ├── support │ │ └── ResourceTest.java │ ├── targeted │ │ ├── TargetedExpressionTest.java │ │ └── testclasses │ │ │ ├── Bar.java │ │ │ ├── Foo.java │ │ │ ├── InnerClassThisAccess.java │ │ │ ├── InternalSuperCall.java │ │ │ ├── Pozole.java │ │ │ ├── SuperClass.java │ │ │ └── Tapas.java │ ├── template │ │ ├── ArrayResizeTemplate.java │ │ ├── PatternTest.java │ │ ├── SubstitutionTest.java │ │ ├── TemplateArrayAccessTest.java │ │ ├── TemplateClassAccessTest.java │ │ ├── TemplateEnumAccessTest.java │ │ ├── TemplateInvocationSubstitutionTest.java │ │ ├── TemplateReplaceReturnTest.java │ │ ├── TemplateTest.java │ │ ├── core │ │ │ └── ParameterInfoTest.java │ │ └── testclasses │ │ │ ├── AnExpressionTemplate.java │ │ │ ├── AnotherFieldAccessTemplate.java │ │ │ ├── ArrayAccessTemplate.java │ │ │ ├── AssertToIfAssertedStatementTemplate.java │ │ │ ├── BServiceImpl.java │ │ │ ├── C.java │ │ │ ├── ClassAccessTemplate.java │ │ │ ├── ContextHelper.java │ │ │ ├── EnumAccessTemplate.java │ │ │ ├── FieldAccessOfInnerClassTemplate.java │ │ │ ├── FieldAccessTemplate.java │ │ │ ├── Flow.java │ │ │ ├── FlowMatcher.java │ │ │ ├── InnerClassTemplate.java │ │ │ ├── InvocationSubstitutionByExpressionTemplate.java │ │ │ ├── InvocationSubstitutionByStatementTemplate.java │ │ │ ├── InvocationTemplate.java │ │ │ ├── LoggerModel.java │ │ │ ├── NtonCodeTemplate.java │ │ │ ├── ObjectIsNotParamTemplate.java │ │ │ ├── ReturnReplaceTemplate.java │ │ │ ├── SecurityCheckerTemplate.java │ │ │ ├── SimpleTemplate.java │ │ │ ├── SubStringTemplate.java │ │ │ ├── SubstituteArrayAccessTemplate.java │ │ │ ├── SubstituteArrayLengthTemplate.java │ │ │ ├── SubstituteLiteralTemplate.java │ │ │ ├── SubstituteRootTemplate.java │ │ │ ├── SubstitutionByExpressionTemplate.java │ │ │ ├── ToBeMatched.java │ │ │ ├── TwoSnippets.java │ │ │ ├── TypeReferenceClassAccessTemplate.java │ │ │ ├── bounds │ │ │ ├── CheckBound.java │ │ │ ├── CheckBoundMatcher.java │ │ │ ├── CheckBoundTemplate.java │ │ │ └── FooBound.java │ │ │ ├── constructors │ │ │ ├── C1.java │ │ │ ├── TemplateWithConstructor.java │ │ │ ├── TemplateWithFieldsAndMethods.java │ │ │ └── TemplateWithFieldsAndMethods_Wrong.java │ │ │ ├── inheritance │ │ │ ├── InterfaceTemplate.java │ │ │ ├── SubClass.java │ │ │ ├── SubTemplate.java │ │ │ ├── SuperClass.java │ │ │ └── SuperTemplate.java │ │ │ ├── logger │ │ │ ├── Logger.java │ │ │ ├── LoggerTemplate.java │ │ │ └── LoggerTemplateProcessor.java │ │ │ ├── match │ │ │ ├── Check.java │ │ │ ├── GenerateIfElse.java │ │ │ ├── MatchForEach.java │ │ │ ├── MatchForEach2.java │ │ │ ├── MatchIfElse.java │ │ │ ├── MatchMap.java │ │ │ ├── MatchModifiers.java │ │ │ ├── MatchMultiple.java │ │ │ ├── MatchMultiple2.java │ │ │ ├── MatchMultiple3.java │ │ │ ├── MatchThrowables.java │ │ │ ├── MatchWithParameterCondition.java │ │ │ └── MatchWithParameterType.java │ │ │ ├── replace │ │ │ ├── DPPSample1.java │ │ │ ├── ElementPrinterHelper.java │ │ │ ├── Item.java │ │ │ ├── NewPattern.java │ │ │ └── OldPattern.java │ │ │ └── types │ │ │ ├── AClassModel.java │ │ │ ├── AClassWithMethodsAndRefs.java │ │ │ ├── AnEnumModel.java │ │ │ └── AnIfaceModel.java │ ├── testclasses │ │ ├── SampleClass.java │ │ └── SampleImportClass.java │ ├── textBlocks │ │ └── TextBlockTest.java │ ├── trycatch │ │ ├── TryCatchTest.java │ │ └── testclasses │ │ │ ├── Bar.java │ │ │ ├── CatchWithUnqualifiedType.java │ │ │ ├── CatcherWithQualifiedAndUnqualifiedTypeRefs.java │ │ │ ├── Foo.java │ │ │ ├── Main.java │ │ │ ├── MultipleUnqualifiedTypesInSingleCatcher.java │ │ │ ├── RethrowingClass.java │ │ │ ├── Statement.java │ │ │ ├── TryCatchResourceClass.java │ │ │ └── internal │ │ │ ├── MyException.java │ │ │ └── MyException2.java │ ├── type │ │ ├── TypeTest.java │ │ └── testclasses │ │ │ ├── Foo.java │ │ │ ├── Mole.java │ │ │ ├── Pozole.java │ │ │ ├── Spice.java │ │ │ └── TypeMembersOrder.java │ ├── varargs │ │ ├── VarArgsTest.java │ │ └── testclasses │ │ │ └── VarArgsSample.java │ ├── variable │ │ ├── AccessFullyQualifiedFieldTest.java │ │ ├── AccessTest.java │ │ ├── VariableTest.java │ │ └── testclasses │ │ │ ├── ArrayAccessSample.java │ │ │ ├── Burritos.java │ │ │ ├── BurritosFielded.java │ │ │ ├── BurritosStaticMethod.java │ │ │ ├── BurritosWithLoop.java │ │ │ ├── BurritosWithTryCatch.java │ │ │ ├── FieldAccessSample.java │ │ │ ├── ForStaticVariables.java │ │ │ ├── MultiBurritos.java │ │ │ ├── RHSSample.java │ │ │ ├── StackedAssignmentSample.java │ │ │ ├── Tacos.java │ │ │ ├── VariableAccessSample.java │ │ │ └── digest │ │ │ ├── DigestUtil.java │ │ │ └── MessageDigest.java │ ├── visibility │ │ ├── VisibilityTest.java │ │ ├── packageprotected │ │ │ ├── AccessibleClassFromNonAccessibleInterf.java │ │ │ └── NonAccessibleInterf.java │ │ └── testclasses │ │ │ ├── A.java │ │ │ ├── A2.java │ │ │ ├── Float.java │ │ │ ├── Foo.java │ │ │ ├── MethodeWithNonAccessibleTypeArgument.java │ │ │ ├── Tacos.java │ │ │ ├── UseDouble.java │ │ │ └── internal │ │ │ └── Double.java │ └── visitor │ │ ├── AssignmentsEqualsTest.java │ │ ├── VisitorFake.java │ │ └── VisitorTest.java │ ├── testing │ ├── AbstractAssertTest.java │ ├── CtElementAssertTest.java │ ├── CtPackageAssertTest.java │ ├── FileAssertTest.java │ ├── assertions │ │ ├── CtAbstractInvocationAssert.java │ │ ├── CtAbstractInvocationAssertInterface.java │ │ ├── CtAbstractSwitchAssert.java │ │ ├── CtAbstractSwitchAssertInterface.java │ │ ├── CtActualTypeContainerAssert.java │ │ ├── CtActualTypeContainerAssertInterface.java │ │ ├── CtAnnotationAssert.java │ │ ├── CtAnnotationAssertInterface.java │ │ ├── CtAnnotationFieldAccessAssert.java │ │ ├── CtAnnotationFieldAccessAssertInterface.java │ │ ├── CtAnnotationMethodAssert.java │ │ ├── CtAnnotationMethodAssertInterface.java │ │ ├── CtAnnotationTypeAssert.java │ │ ├── CtAnnotationTypeAssertInterface.java │ │ ├── CtAnonymousExecutableAssert.java │ │ ├── CtAnonymousExecutableAssertInterface.java │ │ ├── CtArrayAccessAssert.java │ │ ├── CtArrayAccessAssertInterface.java │ │ ├── CtArrayReadAssert.java │ │ ├── CtArrayReadAssertInterface.java │ │ ├── CtArrayTypeReferenceAssert.java │ │ ├── CtArrayTypeReferenceAssertInterface.java │ │ ├── CtArrayWriteAssert.java │ │ ├── CtArrayWriteAssertInterface.java │ │ ├── CtAssertAssert.java │ │ ├── CtAssertAssertInterface.java │ │ ├── CtAssignmentAssert.java │ │ ├── CtAssignmentAssertInterface.java │ │ ├── CtBinaryOperatorAssert.java │ │ ├── CtBinaryOperatorAssertInterface.java │ │ ├── CtBlockAssert.java │ │ ├── CtBlockAssertInterface.java │ │ ├── CtBodyHolderAssert.java │ │ ├── CtBodyHolderAssertInterface.java │ │ ├── CtBreakAssert.java │ │ ├── CtBreakAssertInterface.java │ │ ├── CtCFlowBreakAssert.java │ │ ├── CtCFlowBreakAssertInterface.java │ │ ├── CtCaseAssert.java │ │ ├── CtCaseAssertInterface.java │ │ ├── CtCasePatternAssert.java │ │ ├── CtCasePatternAssertInterface.java │ │ ├── CtCatchAssert.java │ │ ├── CtCatchAssertInterface.java │ │ ├── CtCatchVariableAssert.java │ │ ├── CtCatchVariableAssertInterface.java │ │ ├── CtCatchVariableReferenceAssert.java │ │ ├── CtCatchVariableReferenceAssertInterface.java │ │ ├── CtClassAssert.java │ │ ├── CtClassAssertInterface.java │ │ ├── CtCodeElementAssert.java │ │ ├── CtCodeElementAssertInterface.java │ │ ├── CtCodeSnippetAssert.java │ │ ├── CtCodeSnippetAssertInterface.java │ │ ├── CtCodeSnippetExpressionAssert.java │ │ ├── CtCodeSnippetExpressionAssertInterface.java │ │ ├── CtCodeSnippetStatementAssert.java │ │ ├── CtCodeSnippetStatementAssertInterface.java │ │ ├── CtCommentAssert.java │ │ ├── CtCommentAssertInterface.java │ │ ├── CtCompilationUnitAssert.java │ │ ├── CtCompilationUnitAssertInterface.java │ │ ├── CtConditionalAssert.java │ │ ├── CtConditionalAssertInterface.java │ │ ├── CtConstructorAssert.java │ │ ├── CtConstructorAssertInterface.java │ │ ├── CtConstructorCallAssert.java │ │ ├── CtConstructorCallAssertInterface.java │ │ ├── CtContinueAssert.java │ │ ├── CtContinueAssertInterface.java │ │ ├── CtDoAssert.java │ │ ├── CtDoAssertInterface.java │ │ ├── CtElementAssert.java │ │ ├── CtElementAssertInterface.java │ │ ├── CtEnumAssert.java │ │ ├── CtEnumAssertInterface.java │ │ ├── CtEnumValueAssert.java │ │ ├── CtEnumValueAssertInterface.java │ │ ├── CtExecutableAssert.java │ │ ├── CtExecutableAssertInterface.java │ │ ├── CtExecutableReferenceAssert.java │ │ ├── CtExecutableReferenceAssertInterface.java │ │ ├── CtExecutableReferenceExpressionAssert.java │ │ ├── CtExecutableReferenceExpressionAssertInterface.java │ │ ├── CtExpressionAssert.java │ │ ├── CtExpressionAssertInterface.java │ │ ├── CtFieldAccessAssert.java │ │ ├── CtFieldAccessAssertInterface.java │ │ ├── CtFieldAssert.java │ │ ├── CtFieldAssertInterface.java │ │ ├── CtFieldReadAssert.java │ │ ├── CtFieldReadAssertInterface.java │ │ ├── CtFieldReferenceAssert.java │ │ ├── CtFieldReferenceAssertInterface.java │ │ ├── CtFieldWriteAssert.java │ │ ├── CtFieldWriteAssertInterface.java │ │ ├── CtForAssert.java │ │ ├── CtForAssertInterface.java │ │ ├── CtForEachAssert.java │ │ ├── CtForEachAssertInterface.java │ │ ├── CtFormalTypeDeclarerAssert.java │ │ ├── CtFormalTypeDeclarerAssertInterface.java │ │ ├── CtIfAssert.java │ │ ├── CtIfAssertInterface.java │ │ ├── CtImportAssert.java │ │ ├── CtImportAssertInterface.java │ │ ├── CtInterfaceAssert.java │ │ ├── CtInterfaceAssertInterface.java │ │ ├── CtIntersectionTypeReferenceAssert.java │ │ ├── CtIntersectionTypeReferenceAssertInterface.java │ │ ├── CtInvocationAssert.java │ │ ├── CtInvocationAssertInterface.java │ │ ├── CtJavaDocAssert.java │ │ ├── CtJavaDocAssertInterface.java │ │ ├── CtJavaDocTagAssert.java │ │ ├── CtJavaDocTagAssertInterface.java │ │ ├── CtLabelledFlowBreakAssert.java │ │ ├── CtLabelledFlowBreakAssertInterface.java │ │ ├── CtLambdaAssert.java │ │ ├── CtLambdaAssertInterface.java │ │ ├── CtLiteralAssert.java │ │ ├── CtLiteralAssertInterface.java │ │ ├── CtLocalVariableAssert.java │ │ ├── CtLocalVariableAssertInterface.java │ │ ├── CtLocalVariableReferenceAssert.java │ │ ├── CtLocalVariableReferenceAssertInterface.java │ │ ├── CtLoopAssert.java │ │ ├── CtLoopAssertInterface.java │ │ ├── CtMethodAssert.java │ │ ├── CtMethodAssertInterface.java │ │ ├── CtModifiableAssert.java │ │ ├── CtModifiableAssertInterface.java │ │ ├── CtModuleAssert.java │ │ ├── CtModuleAssertInterface.java │ │ ├── CtModuleDirectiveAssert.java │ │ ├── CtModuleDirectiveAssertInterface.java │ │ ├── CtModuleReferenceAssert.java │ │ ├── CtModuleReferenceAssertInterface.java │ │ ├── CtModuleRequirementAssert.java │ │ ├── CtModuleRequirementAssertInterface.java │ │ ├── CtMultiTypedElementAssert.java │ │ ├── CtMultiTypedElementAssertInterface.java │ │ ├── CtNamedElementAssert.java │ │ ├── CtNamedElementAssertInterface.java │ │ ├── CtNewArrayAssert.java │ │ ├── CtNewArrayAssertInterface.java │ │ ├── CtNewClassAssert.java │ │ ├── CtNewClassAssertInterface.java │ │ ├── CtOperatorAssignmentAssert.java │ │ ├── CtOperatorAssignmentAssertInterface.java │ │ ├── CtPackageAssert.java │ │ ├── CtPackageAssertInterface.java │ │ ├── CtPackageDeclarationAssert.java │ │ ├── CtPackageDeclarationAssertInterface.java │ │ ├── CtPackageExportAssert.java │ │ ├── CtPackageExportAssertInterface.java │ │ ├── CtPackageReferenceAssert.java │ │ ├── CtPackageReferenceAssertInterface.java │ │ ├── CtParameterAssert.java │ │ ├── CtParameterAssertInterface.java │ │ ├── CtParameterReferenceAssert.java │ │ ├── CtParameterReferenceAssertInterface.java │ │ ├── CtPatternAssert.java │ │ ├── CtPatternAssertInterface.java │ │ ├── CtProvidedServiceAssert.java │ │ ├── CtProvidedServiceAssertInterface.java │ │ ├── CtRHSReceiverAssert.java │ │ ├── CtRHSReceiverAssertInterface.java │ │ ├── CtReceiverParameterAssert.java │ │ ├── CtReceiverParameterAssertInterface.java │ │ ├── CtRecordAssert.java │ │ ├── CtRecordAssertInterface.java │ │ ├── CtRecordComponentAssert.java │ │ ├── CtRecordComponentAssertInterface.java │ │ ├── CtRecordPatternAssert.java │ │ ├── CtRecordPatternAssertInterface.java │ │ ├── CtReferenceAssert.java │ │ ├── CtReferenceAssertInterface.java │ │ ├── CtResourceAssert.java │ │ ├── CtResourceAssertInterface.java │ │ ├── CtReturnAssert.java │ │ ├── CtReturnAssertInterface.java │ │ ├── CtSealableAssert.java │ │ ├── CtSealableAssertInterface.java │ │ ├── CtShadowableAssert.java │ │ ├── CtShadowableAssertInterface.java │ │ ├── CtStatementAssert.java │ │ ├── CtStatementAssertInterface.java │ │ ├── CtStatementListAssert.java │ │ ├── CtStatementListAssertInterface.java │ │ ├── CtSuperAccessAssert.java │ │ ├── CtSuperAccessAssertInterface.java │ │ ├── CtSwitchAssert.java │ │ ├── CtSwitchAssertInterface.java │ │ ├── CtSwitchExpressionAssert.java │ │ ├── CtSwitchExpressionAssertInterface.java │ │ ├── CtSynchronizedAssert.java │ │ ├── CtSynchronizedAssertInterface.java │ │ ├── CtTargetedExpressionAssert.java │ │ ├── CtTargetedExpressionAssertInterface.java │ │ ├── CtTextBlockAssert.java │ │ ├── CtTextBlockAssertInterface.java │ │ ├── CtThisAccessAssert.java │ │ ├── CtThisAccessAssertInterface.java │ │ ├── CtThrowAssert.java │ │ ├── CtThrowAssertInterface.java │ │ ├── CtTryAssert.java │ │ ├── CtTryAssertInterface.java │ │ ├── CtTryWithResourceAssert.java │ │ ├── CtTryWithResourceAssertInterface.java │ │ ├── CtTypeAccessAssert.java │ │ ├── CtTypeAccessAssertInterface.java │ │ ├── CtTypeAssert.java │ │ ├── CtTypeAssertInterface.java │ │ ├── CtTypeInformationAssert.java │ │ ├── CtTypeInformationAssertInterface.java │ │ ├── CtTypeMemberAssert.java │ │ ├── CtTypeMemberAssertInterface.java │ │ ├── CtTypeMemberWildcardImportReferenceAssert.java │ │ ├── CtTypeMemberWildcardImportReferenceAssertInterface.java │ │ ├── CtTypeParameterAssert.java │ │ ├── CtTypeParameterAssertInterface.java │ │ ├── CtTypeParameterReferenceAssert.java │ │ ├── CtTypeParameterReferenceAssertInterface.java │ │ ├── CtTypePatternAssert.java │ │ ├── CtTypePatternAssertInterface.java │ │ ├── CtTypeReferenceAssert.java │ │ ├── CtTypeReferenceAssertInterface.java │ │ ├── CtTypedElementAssert.java │ │ ├── CtTypedElementAssertInterface.java │ │ ├── CtUnaryOperatorAssert.java │ │ ├── CtUnaryOperatorAssertInterface.java │ │ ├── CtUnboundVariableReferenceAssert.java │ │ ├── CtUnboundVariableReferenceAssertInterface.java │ │ ├── CtUnnamedPatternAssert.java │ │ ├── CtUnnamedPatternAssertInterface.java │ │ ├── CtUsedServiceAssert.java │ │ ├── CtUsedServiceAssertInterface.java │ │ ├── CtVariableAccessAssert.java │ │ ├── CtVariableAccessAssertInterface.java │ │ ├── CtVariableAssert.java │ │ ├── CtVariableAssertInterface.java │ │ ├── CtVariableReadAssert.java │ │ ├── CtVariableReadAssertInterface.java │ │ ├── CtVariableReferenceAssert.java │ │ ├── CtVariableReferenceAssertInterface.java │ │ ├── CtVariableWriteAssert.java │ │ ├── CtVariableWriteAssertInterface.java │ │ ├── CtWhileAssert.java │ │ ├── CtWhileAssertInterface.java │ │ ├── CtWildcardReferenceAssert.java │ │ ├── CtWildcardReferenceAssertInterface.java │ │ ├── CtYieldStatementAssert.java │ │ ├── CtYieldStatementAssertInterface.java │ │ ├── SpoonAssert.java │ │ ├── SpoonAssertions.java │ │ └── codegen │ │ │ └── AssertJCodegen.java │ ├── matchers │ │ ├── ContentEqualsMatcher.java │ │ └── RegexFindMatcher.java │ ├── processors │ │ └── FooToBarProcessor.java │ ├── testclasses │ │ ├── Bar.java │ │ └── Foo.java │ └── utils │ │ ├── ByClass.java │ │ ├── BySimpleName.java │ │ ├── CheckTest.java │ │ ├── GitHubIssue.java │ │ ├── LineSeparatorExtension.java │ │ ├── ModelTest.java │ │ └── ModelTestParameterResolver.java │ └── toStringBugTest │ └── ToStringBugTest.java └── resources ├── ArithmeticExpression.java ├── ArithmeticExpressionWithSpaces.java ├── Bidon.class ├── ClassWithSingleImport.java ├── ConfigPlugin.java ├── Enclosing$Nested.class ├── Enclosing.class ├── ForLoop.java ├── JavaCode.java ├── MultipleTopLevelTypes.java ├── NonClosableGenericInTryWithResources.java ├── ReferenceBuilder-null-pointer └── Foo.java ├── TypeMemberComments.java ├── annotated-parameter-on-nested-class-constructor └── Caller.java ├── classloader-test ├── LauncherUser.java ├── spoon │ └── Launcher.class └── spoontest │ ├── Foo.java │ └── IFoo.java ├── comment ├── CommentsOnCaseExpression.java └── JavaDocComment.java ├── compilation ├── ClassWithStaticFields.java ├── SimpleProcessor.java ├── compilation-tests │ ├── Bar.java │ └── IBar.java └── subpackage │ └── ClassUsingStaticFields.java ├── compilation2 ├── InvalidClass.java └── UnresolvedFullQualifiedType.java ├── compilation3 ├── A.java └── subpackage │ └── B.java ├── compilation4 └── A.java ├── compilation5 └── A.java ├── constructorcall-type └── ConstructorCallWithTypesNotOnClasspath.java ├── deprecated ├── correctResult │ ├── Bar.java │ └── Foo.java └── input │ ├── Bar.java │ └── Foo.java ├── dollar-and-nested-classes └── $Poor$Name.java ├── duplicate-package-info ├── subproj-A │ └── org │ │ └── pkg │ │ └── package-info.java └── subproj-B │ └── org │ └── pkg │ └── package-info.java ├── duplicateClass └── DuplicateInnerClass.java ├── duplicates-in-submodules ├── README.md ├── moduleA │ └── duplicates │ │ ├── AlsoWithNestedEnum.java │ │ ├── Duplicate.java │ │ ├── Main.java │ │ └── WithNestedEnum.java └── moduleB │ └── duplicates │ ├── AlsoWithNestedEnum.java │ └── Duplicate.java ├── encodings ├── Cp1251.java └── Utf8.java ├── executable-reference-expression └── Bar.java ├── executable-reference └── Foo.java ├── executable └── CmiContext_1.2.java ├── extendsStaticInnerType ├── BarBaz.java └── FooBar.java ├── fieldImport ├── StaticFieldImport.java └── UtilityLibrary.java ├── folderWithJar └── jarFile.jar ├── identifier └── InliningImplementationMatcher.java ├── import-resources ├── ImportAndExtendWithPackageName.java └── fr │ └── inria │ ├── AnotherMissingImport.java │ ├── FooNoClassPath.java │ ├── MissingImport.java │ └── PageButtonNoClassPath.java ├── import-static └── Tacos.java ├── import-with-generics └── TestWithGenerics.java ├── importCleaner ├── DoNotRemoveSubType.java ├── StaticImports.java ├── TypeImportButUseSubType.java └── WildCardImport.java ├── imports ├── StaticNoOrdered.java └── UnqualifiedCalls.java ├── incremental ├── changed-files │ ├── C.java │ └── D.java ├── original-files │ ├── A.java │ ├── B.java │ ├── C.java │ └── D.java └── saveCacheIssue3404 │ └── A.java ├── indentation ├── FourSpaces.java ├── NoTypeMembers.java ├── Tabs.java ├── TwoSpaces.java └── singletypemember │ ├── FourSpaces.java │ ├── Tabs.java │ └── TwoSpaces.java ├── inherit-static-method ├── Base.java └── Derived.java ├── inner-class ├── Main.java └── constants │ └── Constants.java ├── issue3275 └── BOMCostPrice.java ├── jdtimportbuilder ├── ItfImport.java └── itf │ └── DumbItf.java ├── keywordCompliance └── enum │ └── Foo.java ├── layornos └── AllocationStorage.java ├── localtypes └── LocalTypesHolder.java ├── logback-test.xml ├── logging └── TestCase2.java ├── maven-launcher ├── hierarchy │ ├── child │ │ ├── pom.xml │ │ └── src │ │ │ └── Test.java │ └── pom.xml ├── java-11 │ └── pom.xml ├── null-build │ └── pom.xml ├── pac4j │ ├── pac4j-cas │ │ └── pom.xml │ ├── pac4j-config │ │ └── pom.xml │ ├── pac4j-core │ │ └── pom.xml │ ├── pac4j-couch │ │ └── pom.xml │ ├── pac4j-gae │ │ └── pom.xml │ ├── pac4j-http │ │ └── pom.xml │ ├── pac4j-jwt │ │ └── pom.xml │ ├── pac4j-kerberos │ │ └── pom.xml │ ├── pac4j-ldap │ │ └── pom.xml │ ├── pac4j-mongo │ │ └── pom.xml │ ├── pac4j-oauth │ │ └── pom.xml │ ├── pac4j-oidc │ │ └── pom.xml │ ├── pac4j-openid │ │ └── pom.xml │ ├── pac4j-saml │ │ └── pom.xml │ ├── pac4j-sql │ │ └── pom.xml │ └── pom.xml ├── profiles │ ├── always │ │ └── pom.xml │ ├── pom.xml │ └── profile-only │ │ └── pom.xml ├── source-directory │ ├── pom.xml │ ├── source │ │ └── code │ │ │ └── Test.java │ └── test │ │ └── Test.java ├── system-dependency │ ├── lib │ │ └── bridge-method-annotation-1.13.jar │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── Test.java ├── very-simple │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── Test.java └── with-environment-variables │ └── pom.xml ├── methodimport ├── ClassWithStaticMethod.java ├── MethodImportAboveImportedMethod.java └── MethodImportBelowImportedMethod.java ├── modules ├── 5324 │ ├── module-info.java │ └── mypkg │ │ └── Dummy.java └── error-reporting-java-1.0.1.jar ├── multiclass ├── module1 │ └── A.java └── module2 │ └── A.java ├── nestedInInterface └── NestedInterfaceMembersArePublic.java ├── new-class └── IndexWriter.java ├── no-copy-resources ├── fr │ ├── inria │ │ ├── A.java │ │ └── package.html │ └── package.html └── package.html ├── noclasspath ├── A.java ├── A2.java ├── A3.java ├── A4.java ├── A5.java ├── A6.java ├── ArrayRealVector.java ├── Attachment.java ├── BadAnonymousClassOfNestedType.java ├── CatchQualifiedReference.java ├── Daikon.java ├── Demo.java ├── Demo2.java ├── Demo3.java ├── Demo4.java ├── Demo5.java ├── ExtendsObject.java ├── FieldAccessRes.java ├── FileIO.java ├── Foo.java ├── Foo2.java ├── Foo3.java ├── Foo4.java ├── GenericTypeEmptyDiamond.java ├── Initializer.java ├── InvariantChecker.java ├── IsoEncoding.java ├── LiteralInForEach.java ├── LogService.java ├── MultipleClasses.java ├── QualifiedArrayType.java ├── SecondaryIndexManager.java ├── Simple.java ├── Solver.java ├── SubscriptionAdapter.java ├── Tacos.java ├── TestBot.java ├── TestNullable.java ├── TorIntegration.java ├── TypeAccessStarImport.java ├── UnionCatch.java ├── UnknownCalls.java ├── UnqualifiedExternalTypeMemberAccess.java ├── UnqualifiedStaticMethodCall.java ├── annotation │ └── issue1307 │ │ └── SpecIterator.java ├── app │ └── Test.java ├── draw2d │ └── org │ │ └── eclipse │ │ └── draw2d │ │ ├── MouseMotionListener.java │ │ └── parts │ │ └── ScrollableThumbnail.java ├── elasticsearch-stackoverflow │ ├── BroadcastShardResponse.java │ └── TransportBroadcastAction.java ├── elasticsearch1753 │ └── TaskManager.java ├── initializer │ └── Utf8HttpResponse.java ├── issue1293 │ └── com │ │ └── cristal │ │ └── ircica │ │ └── applicationcolis │ │ └── userinterface │ │ └── fragments │ │ ├── CompletableFragment.java │ │ └── TransporteurFragment.java ├── issue5208 │ └── p20 │ │ ├── ClassT1.java │ │ ├── ClassT2.java │ │ └── ClassT3.java ├── issue5591 │ └── DiamondConstructorCallTypeInference.java ├── lambdAnonymous │ └── AnoHolder.java ├── lambdas │ ├── FieldAccessInLambda.java │ ├── InheritedClassesWithLambda1.java │ ├── InheritedClassesWithLambda2.java │ ├── InheritedInterfacesWithLambda.java │ ├── MultiParameterLambda.java │ ├── TypeAccessInLambda.java │ ├── external1 │ │ ├── IRatingLookUp.java │ │ └── impl │ │ │ └── RatingLookUp.java │ └── imported │ │ └── SeparateInterfaceWithField.java ├── org │ └── elasticsearch │ │ ├── action │ │ └── admin │ │ │ └── cluster │ │ │ └── node │ │ │ └── tasks │ │ │ └── TasksIT.java │ │ └── indices │ │ └── analysis │ │ └── HunspellService.java ├── orwall │ ├── BackgroundProcess.java │ └── PreferencesActivity.java ├── same-package │ ├── A.java │ └── B.java ├── spring │ └── PropertyComparator.java ├── superclass │ └── UnknownSuperClass.java └── ternary-bug │ ├── data │ ├── IssueType.java │ └── entities │ │ └── Issue.java │ └── transformators │ └── IssueTransformator.java ├── npe ├── SneakyCrashy.java └── SneakySubclass.java ├── parameter ├── FlowUtilities.java └── ParameterResource.java ├── path with spaces +and+ plusses ├── Foo.java └── lib │ └── bar.jar ├── patternmatching ├── InstanceofGenerics.java └── InstanceofPatternMatch.java ├── printer-test ├── DefaultPrettyPrinterDependency.jar ├── ShadowFieldRead.java ├── TypeCastOnFieldRead.java └── spoon │ └── test │ ├── AnnotationSpecTest.java │ ├── prettyprinter │ └── DefaultPrettyPrinterDependency.java │ └── subclass │ └── prettyprinter │ └── DefaultPrettyPrinterExample.java ├── receiver ├── InnerClassCtor.java ├── Outer.java └── SimpleReceiverParameter.java ├── records ├── CompactConstructor.java ├── CompactConstructor2.java ├── DeriveAnnotations.java ├── EmptyRecord.java ├── ExplicitAccessor.java ├── GenericRecord.java ├── MultiParameter.java ├── MultipleConstructors.java ├── NoClasspathAnnotations.java ├── NonCompactCanonicalConstructor.java ├── PartiallyAnnotations.java ├── RecordWithInterface.java ├── SingleParameter.java └── WithStaticInitializer.java ├── reference-package └── Panini.java ├── reference-test-2 ├── ReferenceTest2.jar └── spoontest │ ├── a │ └── ClassA.java │ ├── b │ └── ClassB.java │ └── c │ └── ClassC.java ├── reference-test ├── ChangeScanner.java ├── EnumJar.jar ├── EnumsRef.java ├── Foo.java ├── InterfaceEnumRef.java ├── InterfaceWithEnum.java ├── InterfaceWithEnumJar.jar ├── MultipleDeclarationsOfLocalVariable.java ├── ReferenceTest.jar ├── input │ └── spoon │ │ └── test │ │ └── reference │ │ └── ReferencingClass.java └── reference │ └── spoon │ └── test │ └── reference │ └── ReferencedClass.java ├── reference-to-child-class ├── ProblemReferenceToChildClass.java └── ReferenceToChildClass.java ├── sealedclasses ├── EnumWithAnonymousValue.java ├── ExtendingClass.java ├── OtherExtendingClass.java ├── SealedClassWithNestedSubclasses.java ├── SealedClassWithPermits.java ├── SealedInterfaceWithNestedSubclasses.java └── SealedInterfaceWithPermits.java ├── serialization └── SomeClass.java ├── signature-polymorphic-methods └── SignaturePolymorphicMethods.java ├── simple-import └── TestClass.java ├── simple-module ├── module-info.java └── spoonmod │ └── TestClass.java ├── sniperPrinter ├── DeleteAnnotation.java ├── Overriding.java ├── SpaceAfterFinal.java ├── arrayInitialisation │ ├── AsLocalVariable.java │ ├── FiveIntegers.java │ ├── GenericTypeArray.java │ ├── MultiDimension.java │ ├── ToNull.java │ └── ToNullElements.java └── tryWithResource │ ├── PrintOnce.java │ └── RetainSemiColon.java ├── snippet ├── SnippetCommentResource.java ├── SnippetResources.java └── UnnamedPackageSnippetResource.java ├── sourceJar └── test.jar ├── spoon └── test │ ├── api │ ├── CommentedClass.java │ └── Foo.java │ ├── duplicateclasses │ ├── Bar.java │ └── Foo.java │ ├── exceptions │ ├── ClassWithError.java │ └── README │ ├── imports │ └── testclasses2 │ │ ├── AbstractMapBasedMultimap.java │ │ ├── ImportSameName.java │ │ ├── Interners.java │ │ ├── JavaLangConflict.java │ │ ├── StaticWithNested.java │ │ ├── apachetestsuite │ │ ├── LangTestSuite.java │ │ ├── enum2 │ │ │ └── EnumTestSuite.java │ │ ├── enums │ │ │ └── EnumTestSuite.java │ │ ├── staticcollision │ │ │ └── AllLangTestSuite.java │ │ ├── staticjava3 │ │ │ └── AllLangTestJava3.java │ │ └── staticmethod │ │ │ └── AllLangTestSuiteStaticMethod.java │ │ └── toto │ │ └── ImportSameName.java │ ├── inheritance │ ├── AnotherClass.java │ ├── MyAbstractClass.java │ ├── MyClass.java │ └── MyInterface.java │ ├── intercession │ └── insertBefore │ │ └── InsertBeforeExample2.java │ ├── issue3321 │ └── source │ │ └── JavaxImportTestSource.java │ ├── itf │ └── DumbItf.java │ ├── loop │ └── testclasses │ │ └── Foo.java │ ├── module │ ├── code-multiple-modules │ │ ├── bar │ │ │ ├── module-info-tpl │ │ │ └── packbar │ │ │ │ └── BarClass.java │ │ └── foo │ │ │ ├── module-info-tpl │ │ │ └── packfoo │ │ │ └── FooClass.java │ ├── module_with_comments │ │ └── module-info-tpl │ ├── overlapping-packages │ │ ├── first │ │ │ ├── module-info-tpl │ │ │ └── test │ │ │ │ └── parent │ │ │ │ └── nested │ │ │ │ └── Foo.java │ │ └── second │ │ │ ├── module-info-tpl │ │ │ └── test │ │ │ └── parent │ │ │ └── Bar.java │ ├── simple_module │ │ └── module-info-tpl │ └── simple_module_with_code │ │ ├── fr │ │ └── simplemodule │ │ │ └── pack │ │ │ └── SimpleClass.java │ │ └── module-info-tpl │ ├── noclasspath │ ├── exceptions │ │ ├── Bar.java │ │ └── Foo.java │ ├── fields │ │ ├── Foo.java │ │ └── Toto.java │ └── targeted │ │ ├── Foo.java │ │ ├── Outer.java │ │ └── StaticFieldReadOnly.java │ ├── prettyprinter │ ├── NestedSuperCall.java │ └── testclasses │ │ └── ComplexClass.java │ ├── processor │ └── test │ │ ├── B.java │ │ └── sub │ │ └── A.java │ ├── sourcePosition │ ├── ClassWithAnnotation.java │ ├── FieldType.java │ ├── SourcePartitionValidator.java │ └── TestAnnotation.java │ ├── template │ ├── SimpleAssert.java │ └── SimpleIfAsserted.java │ ├── unnamed │ └── UnnamedVar.java │ ├── var │ ├── Main.java │ └── VarInLambda.java │ ├── variable │ └── Tacos.java │ └── visitor │ ├── Assignments.java │ ├── ConditionalRes.java │ └── Foo.java ├── static-method-and-type ├── Main.java └── imports-are-here │ └── Bar.java ├── superCall └── SuperCallSniperTestClass.java ├── syntheticMethods ├── ClassWithSyntheticEnumNotParsable.java └── ClassWithSyntheticEnumParsable.java ├── target-functional-interface-in-lambda ├── HasFunctionalInterface.java └── TargetsFunctionalInterface.java ├── textBlock └── TextBlockTestClass.java ├── toStringBugTest ├── TestClass.java └── TestClass2.java ├── typeannotations ├── TypeUseA.java ├── TypeUseB.java ├── p01 │ └── ExtendsAndImplements.java └── p02 │ └── InterfaceExtends.java ├── unresolved ├── StaticImportUnresolved.java ├── Unresolved.java ├── UnresolvedExtend.java ├── UnresolvedImport.java └── UtilUnresolved.java ├── variable └── PropPanelUseCase_1.40.java └── visibility ├── YamlRepresenter.java └── snakeyaml-1.9.jar /.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 | -------------------------------------------------------------------------------- /.github/workflows/release-beta.yml: -------------------------------------------------------------------------------- 1 | name: Release beta version 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * 0' # Sundays at 00:00 (https://crontab.guru/#0_0_*_*_0) 6 | 7 | jobs: 8 | snapshot: 9 | uses: ./.github/workflows/jreleaser.yml 10 | with: 11 | release-script-to-run: chore/release-beta.sh 12 | secrets: inherit 13 | -------------------------------------------------------------------------------- /.github/workflows/release-nightly.yml: -------------------------------------------------------------------------------- 1 | name: Release nightly version 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * *' # Every day at 00:00 UTC (https://crontab.guru/#0_0_*_*_*) 6 | 7 | jobs: 8 | nightly: 9 | uses: ./.github/workflows/jreleaser.yml 10 | with: 11 | release-script-to-run: chore/release-nightly.sh 12 | secrets: inherit 13 | -------------------------------------------------------------------------------- /.mvn/extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | com.gradle 5 | gradle-enterprise-maven-extension 6 | 1.11.1 7 | 8 | -------------------------------------------------------------------------------- /.mvn/gradle-enterprise.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ON_DEMAND 4 | 5 | https://gradle.com/terms-of-service 6 | true 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /chore/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /doc/CNAME: -------------------------------------------------------------------------------- 1 | spoon.gforge.inria.fr 2 | -------------------------------------------------------------------------------- /doc/_data/tags_doc.yml: -------------------------------------------------------------------------------- 1 | allowed-tags: 2 | - getting-started 3 | - usage 4 | - meta-model 5 | - quering 6 | - processor 7 | - template 8 | -------------------------------------------------------------------------------- /doc/_includes/footer.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /doc/_includes/linkrefs.html: -------------------------------------------------------------------------------- 1 | {% include custom/conditions.html %} 2 | {% include {{link}} %} 3 | {% include alerts.html %} 4 | {% include callouts.html %} -------------------------------------------------------------------------------- /doc/_layouts/none.html: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | {{content}} -------------------------------------------------------------------------------- /doc/_presentations/code_transformation/CodeTransformationWithSpoon.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/code_transformation/CodeTransformationWithSpoon.pdf -------------------------------------------------------------------------------- /doc/_presentations/code_transformation/CodeTransformationWithSpoon.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/code_transformation/CodeTransformationWithSpoon.zip -------------------------------------------------------------------------------- /doc/_presentations/flyer/flyer-fosdem17.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/flyer/flyer-fosdem17.indd -------------------------------------------------------------------------------- /doc/_presentations/flyer/flyer-fosdem17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/flyer/flyer-fosdem17.pdf -------------------------------------------------------------------------------- /doc/_presentations/images/2000px-Maven_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/2000px-Maven_logo.png -------------------------------------------------------------------------------- /doc/_presentations/images/25406.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/25406.png -------------------------------------------------------------------------------- /doc/_presentations/images/5040-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/5040-200.png -------------------------------------------------------------------------------- /doc/_presentations/images/60504.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/60504.png -------------------------------------------------------------------------------- /doc/_presentations/images/Git-Logo-2Color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/Git-Logo-2Color.png -------------------------------------------------------------------------------- /doc/_presentations/images/GitHub-Mark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/GitHub-Mark.png -------------------------------------------------------------------------------- /doc/_presentations/images/Gradle-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/Gradle-01.png -------------------------------------------------------------------------------- /doc/_presentations/images/Octicons-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/Octicons-star.png -------------------------------------------------------------------------------- /doc/_presentations/images/PR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/PR.png -------------------------------------------------------------------------------- /doc/_presentations/images/PR_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/PR_black.png -------------------------------------------------------------------------------- /doc/_presentations/images/binary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/binary.png -------------------------------------------------------------------------------- /doc/_presentations/images/git-branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/git-branch.png -------------------------------------------------------------------------------- /doc/_presentations/images/ic_history_48px-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/ic_history_48px-512.png -------------------------------------------------------------------------------- /doc/_presentations/images/java-logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/java-logo-large.png -------------------------------------------------------------------------------- /doc/_presentations/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/logo.png -------------------------------------------------------------------------------- /doc/_presentations/images/logomark-orange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/logomark-orange@2x.png -------------------------------------------------------------------------------- /doc/_presentations/images/source_code1600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/source_code1600.png -------------------------------------------------------------------------------- /doc/_presentations/images/spanner-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/spanner-512.png -------------------------------------------------------------------------------- /doc/_presentations/images/travis-ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/images/travis-ci.png -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_FOSDEM17.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/poster/poster_FOSDEM17.indd -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_FOSDEM17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/poster/poster_FOSDEM17.pdf -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_adt_Gerard_Paligot.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/poster/poster_adt_Gerard_Paligot.indd -------------------------------------------------------------------------------- /doc/_presentations/poster/poster_adt_Gerard_Paligot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/_presentations/poster/poster_adt_Gerard_Paligot.pdf -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/_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/. -------------------------------------------------------------------------------- /doc/css/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/css/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /doc/css/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/css/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /doc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/favicon.ico -------------------------------------------------------------------------------- /doc/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /doc/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /doc/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /doc/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /doc/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /doc/images/code-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/code-elements.png -------------------------------------------------------------------------------- /doc/images/gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/gui.png -------------------------------------------------------------------------------- /doc/images/jenkins-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/jenkins-badge.png -------------------------------------------------------------------------------- /doc/images/lille-grandplace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/lille-grandplace.jpg -------------------------------------------------------------------------------- /doc/images/references-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/references-elements.png -------------------------------------------------------------------------------- /doc/images/smplgui-modes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/smplgui-modes.png -------------------------------------------------------------------------------- /doc/images/smplgui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/smplgui.png -------------------------------------------------------------------------------- /doc/images/spoon-models-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/spoon-models-elements.png -------------------------------------------------------------------------------- /doc/images/spoon-models.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/spoon-models.graffle -------------------------------------------------------------------------------- /doc/images/spoon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/spoon.jpg -------------------------------------------------------------------------------- /doc/images/spoonTeam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/spoonTeam.jpg -------------------------------------------------------------------------------- /doc/images/spoon_javadoc_ansi_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/spoon_javadoc_ansi_print.png -------------------------------------------------------------------------------- /doc/images/spoonpowered.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/spoonpowered.jpg -------------------------------------------------------------------------------- /doc/images/spoonpowered_big.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/spoonpowered_big.jpg -------------------------------------------------------------------------------- /doc/images/structural-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/doc/images/structural-elements.png -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /spoon-dataflow/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-dataflow/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spoon-dataflow/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /spoon-dataflow/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'fr.inria.spoon.dataflow' 2 | 3 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /spoon-decompiler/src/test/resources/agent/classes/se/kth/castor/TransformMe.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-decompiler/src/test/resources/agent/classes/se/kth/castor/TransformMe.class -------------------------------------------------------------------------------- /spoon-decompiler/src/test/resources/jarLauncher/helloworld-1.0-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-decompiler/src/test/resources/jarLauncher/helloworld-1.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JGetColor.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-smpl/src/test/resources/C4JGetColor.zip -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JGetHeight.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-smpl/src/test/resources/C4JGetHeight.zip -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JOnConsoleMessage.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-smpl/src/test/resources/C4JOnConsoleMessage.zip -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JSendStickyBroadcast.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-smpl/src/test/resources/C4JSendStickyBroadcast.zip -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JSetTextSize.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-smpl/src/test/resources/C4JSetTextSize.zip -------------------------------------------------------------------------------- /spoon-smpl/src/test/resources/C4JShouldVibrate.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /spoon-visualisation/doc/appAuto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/appAuto.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appClassElt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/appClassElt.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appExp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/appExp.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appFeat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/appFeat.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appFeat2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/appFeat2.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/appStatement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/appStatement.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/openDoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/openDoc.png -------------------------------------------------------------------------------- /spoon-visualisation/doc/props.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/spoon-visualisation/doc/props.png -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /spoon-visualisation/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline -------------------------------------------------------------------------------- /src/main/resources/properties.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/main/resources/spoon.properties: -------------------------------------------------------------------------------- 1 | application.version=${project.version} 2 | -------------------------------------------------------------------------------- /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/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/reflect/declaration/testclasses/TestInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.reflect.declaration.testclasses; 2 | 3 | public interface TestInterface { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/support/compiler/jdt/testclasses/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.support.compiler.jdt.testclasses; 2 | 3 | public class Foo { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/BasicAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public interface BasicAnnotation { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/InnerAnnot.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface InnerAnnot 4 | { 5 | String value(); 6 | } 7 | -------------------------------------------------------------------------------- /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/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/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/annotation/testclasses/TestAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses; 2 | 3 | public @interface TestAnnotation 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/annotation/testclasses/shadow/StandardRetention.java: -------------------------------------------------------------------------------- 1 | package spoon.test.annotation.testclasses.shadow; 2 | 3 | public @interface StandardRetention { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/comment/testclasses/TypeParameterComments.java: -------------------------------------------------------------------------------- 1 | package spoon.test.comment.testclasses; 2 | 3 | public class TypeParameterComments { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/constructor/testclasses/ImplicitConstructor.java: -------------------------------------------------------------------------------- 1 | package spoon.test.constructor.testclasses; 2 | 3 | public class ImplicitConstructor { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/enums/testclasses/AnonEnum.java: -------------------------------------------------------------------------------- 1 | package spoon.test.enums.testclasses; 2 | 3 | public enum AnonEnum { 4 | A { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/factory/testclasses2/Baz.java: -------------------------------------------------------------------------------- 1 | package spoon.test.factory.testclasses2; 2 | 3 | public class Baz { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/IBurritos.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses; 2 | 3 | public interface IBurritos { 4 | IBurritos make(); 5 | } 6 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/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/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/generics/testclasses3/UpperBoundedWildcard.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses3; 2 | 3 | public class UpperBoundedWildcard> { } 4 | -------------------------------------------------------------------------------- /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/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/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/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/generics/testclasses5/B.java: -------------------------------------------------------------------------------- 1 | package spoon.test.generics.testclasses5; 2 | 3 | public class B { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/imports/testclasses/internal3/Bar.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.internal3; 2 | 3 | public class Bar { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/imports/testclasses/memberaccess2/DoesnotExtendA.java: -------------------------------------------------------------------------------- 1 | package spoon.test.imports.testclasses.memberaccess2; 2 | 3 | public class DoesnotExtendA { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/EmptyInterface.java: -------------------------------------------------------------------------------- 1 | package spoon.test.interfaces.testclasses; 2 | 3 | public interface EmptyInterface { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/loop/testclasses/Condition.java: -------------------------------------------------------------------------------- 1 | package spoon.test.loop.testclasses; 2 | 3 | public class Condition { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/pkg/testclasses/package-info.java: -------------------------------------------------------------------------------- 1 | @Deprecated 2 | package spoon.test.pkg.testclasses; 3 | -------------------------------------------------------------------------------- /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/Foo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public class Foo { 4 | 5 | } -------------------------------------------------------------------------------- /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/FooClazz.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | @Deprecated 4 | public class FooClazz { 5 | 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/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/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/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/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/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/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/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/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/position/testclasses/NoMethodModifiers.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | public interface NoMethodModifiers { 4 | void m(); 5 | } -------------------------------------------------------------------------------- /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/position/testclasses/TestCommentedOutClass.java: -------------------------------------------------------------------------------- 1 | package spoon.test.position.testclasses; 2 | 3 | //public class TestCommentedOutClass { 4 | //} 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/IFaceK.java: -------------------------------------------------------------------------------- 1 | package spoon.test.refactoring.parameter.testclasses; 2 | 3 | public interface IFaceK { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/SuperFoo.java: -------------------------------------------------------------------------------- 1 | package spoon.test.reference.testclasses; 2 | 3 | public interface SuperFoo { 4 | void m(); 5 | } 6 | -------------------------------------------------------------------------------- /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/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/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/java/spoon/test/serializable/testclasses/Dummy.java: -------------------------------------------------------------------------------- 1 | package spoon.test.serializable.testclasses; 2 | 3 | public class Dummy { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/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/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/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/java/spoon/test/template/testclasses/replace/Item.java: -------------------------------------------------------------------------------- 1 | package spoon.test.template.testclasses.replace; 2 | 3 | interface Item { 4 | } -------------------------------------------------------------------------------- /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/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/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/java/spoon/test/type/testclasses/Mole.java: -------------------------------------------------------------------------------- 1 | package spoon.test.type.testclasses; 2 | 3 | public class Mole> { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/java/spoon/test/visibility/packageprotected/NonAccessibleInterf.java: -------------------------------------------------------------------------------- 1 | package spoon.test.visibility.packageprotected; 2 | 3 | interface NonAccessibleInterf { 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/ArithmeticExpression.java: -------------------------------------------------------------------------------- 1 | class ArithmeticExpression { 2 | double value = ((double) (3 / 2)) / 2; 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/ArithmeticExpressionWithSpaces.java: -------------------------------------------------------------------------------- 1 | class ArithmeticExpressionWithSpaces { 2 | double value = ( (double) (3 / 2)) / 2; 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/Bidon.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/Bidon.class -------------------------------------------------------------------------------- /src/test/resources/ClassWithSingleImport.java: -------------------------------------------------------------------------------- 1 | import java.util.Set; 2 | 3 | public class ClassWithSingleImport { 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/Enclosing$Nested.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/Enclosing$Nested.class -------------------------------------------------------------------------------- /src/test/resources/Enclosing.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/Enclosing.class -------------------------------------------------------------------------------- /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/JavaCode.java: -------------------------------------------------------------------------------- 1 | public class HelloWorld { 2 | void testMethod() {} 3 | private int testVariable; 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/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/classloader-test/LauncherUser.java: -------------------------------------------------------------------------------- 1 | import spoon.Launcher; 2 | 3 | public class LauncherUser { 4 | Launcher launcher; 5 | 6 | } -------------------------------------------------------------------------------- /src/test/resources/classloader-test/spoon/Launcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/classloader-test/spoon/Launcher.class -------------------------------------------------------------------------------- /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/classloader-test/spoontest/IFoo.java: -------------------------------------------------------------------------------- 1 | package spoontest; 2 | 3 | public interface IFoo 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /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/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/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/compilation2/InvalidClass.java: -------------------------------------------------------------------------------- 1 | 2 | public class InvalidClass { 3 | 4 | 5 | -------------------------------------------------------------------------------- /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/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/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/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 | -------------------------------------------------------------------------------- /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/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/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/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/duplicates-in-submodules/README.md: -------------------------------------------------------------------------------- 1 | Test files to replicate https://github.com/INRIA/spoon/issues/3707 -------------------------------------------------------------------------------- /src/test/resources/duplicates-in-submodules/moduleA/duplicates/Duplicate.java: -------------------------------------------------------------------------------- 1 | package duplicates; 2 | 3 | public class Duplicate {} -------------------------------------------------------------------------------- /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/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/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/duplicates-in-submodules/moduleB/duplicates/Duplicate.java: -------------------------------------------------------------------------------- 1 | package duplicates; 2 | 3 | public class Duplicate {} -------------------------------------------------------------------------------- /src/test/resources/encodings/Cp1251.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/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/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/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/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/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 | -------------------------------------------------------------------------------- /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/folderWithJar/jarFile.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/folderWithJar/jarFile.jar -------------------------------------------------------------------------------- /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/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/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/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/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/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 | -------------------------------------------------------------------------------- /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/incremental/changed-files/C.java: -------------------------------------------------------------------------------- 1 | public class C { 2 | 3 | float val; 4 | } 5 | -------------------------------------------------------------------------------- /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/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/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/incremental/original-files/C.java: -------------------------------------------------------------------------------- 1 | public class C { 2 | 3 | int val; 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/incremental/original-files/D.java: -------------------------------------------------------------------------------- 1 | public class D { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /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/indentation/NoTypeMembers.java: -------------------------------------------------------------------------------- 1 | package indentation; 2 | 3 | public class NoTypeMembers { 4 | } -------------------------------------------------------------------------------- /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/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/indentation/singletypemember/FourSpaces.java: -------------------------------------------------------------------------------- 1 | package indentation.singletypemember; 2 | 3 | public class FourSpaces { 4 | int x; 5 | } -------------------------------------------------------------------------------- /src/test/resources/indentation/singletypemember/Tabs.java: -------------------------------------------------------------------------------- 1 | package indentation.singletypemember; 2 | 3 | public class Tabs { 4 | int x; 5 | } -------------------------------------------------------------------------------- /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/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/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/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/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/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/layornos/AllocationStorage.java: -------------------------------------------------------------------------------- 1 | public class AllocationStorage 2 | { 3 | 4 | public void initContainerTemplate() 5 | { 6 | Class component; 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /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/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /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/maven-launcher/source-directory/source/code/Test.java: -------------------------------------------------------------------------------- 1 | public class Test { 2 | int field = 42; 3 | } -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/source-directory/test/Test.java: -------------------------------------------------------------------------------- 1 | public class Test { 2 | int field = 42; 3 | } -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/system-dependency/lib/bridge-method-annotation-1.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/maven-launcher/system-dependency/lib/bridge-method-annotation-1.13.jar -------------------------------------------------------------------------------- /src/test/resources/maven-launcher/system-dependency/src/main/java/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 | } -------------------------------------------------------------------------------- /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/resources/modules/5324/module-info.java: -------------------------------------------------------------------------------- 1 | module dummy.module { 2 | requires error.reporting.java; 3 | } -------------------------------------------------------------------------------- /src/test/resources/modules/5324/mypkg/Dummy.java: -------------------------------------------------------------------------------- 1 | package mypkg; 2 | 3 | class Dummy { 4 | } -------------------------------------------------------------------------------- /src/test/resources/modules/error-reporting-java-1.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/modules/error-reporting-java-1.0.1.jar -------------------------------------------------------------------------------- /src/test/resources/multiclass/module1/A.java: -------------------------------------------------------------------------------- 1 | class A { } -------------------------------------------------------------------------------- /src/test/resources/multiclass/module2/A.java: -------------------------------------------------------------------------------- 1 | class A { } -------------------------------------------------------------------------------- /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/no-copy-resources/fr/inria/A.java: -------------------------------------------------------------------------------- 1 | package fr.inria; 2 | 3 | public class A { 4 | } -------------------------------------------------------------------------------- /src/test/resources/no-copy-resources/fr/inria/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/test/resources/no-copy-resources/fr/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 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/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/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/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/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/Demo2.java: -------------------------------------------------------------------------------- 1 | 2 | public class Demo2 implements example.FooBar>.Bar> { 3 | 4 | } -------------------------------------------------------------------------------- /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/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/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/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/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/noclasspath/Foo4.java: -------------------------------------------------------------------------------- 1 | class Foo4 { 2 | static { 3 | System.out.println("fooo"); 4 | } 5 | } -------------------------------------------------------------------------------- /src/test/resources/noclasspath/IsoEncoding.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/noclasspath/IsoEncoding.java -------------------------------------------------------------------------------- /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/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/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/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/noclasspath/TestNullable.java: -------------------------------------------------------------------------------- 1 | import javax.annotation.Nullable; 2 | import com.google.common.collect.Lists; 3 | 4 | public class TestNullable { 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/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/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/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/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/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/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/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/noclasspath/lambdas/imported/SeparateInterfaceWithField.java: -------------------------------------------------------------------------------- 1 | package imported; 2 | 3 | public interface SeparateInterfaceWithField { 4 | String fieldInSeparateInterface = "spoon"; 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/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/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/parameter/ParameterResource.java: -------------------------------------------------------------------------------- 1 | public class ParameterResource { 2 | public void empty(int parameter) { } 3 | } -------------------------------------------------------------------------------- /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/path with spaces +and+ plusses/lib/bar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/path with spaces +and+ plusses/lib/bar.jar -------------------------------------------------------------------------------- /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/printer-test/DefaultPrettyPrinterDependency.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/printer-test/DefaultPrettyPrinterDependency.jar -------------------------------------------------------------------------------- /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/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/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/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/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/records/EmptyRecord.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record EmptyRecord() { 4 | } 5 | -------------------------------------------------------------------------------- /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/records/GenericRecord.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record GenericRecord(T a, T b) {} 4 | -------------------------------------------------------------------------------- /src/test/resources/records/MultiParameter.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record MultiParameter(int first, float second) { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /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/records/NoClasspathAnnotations.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | 4 | @Deprecated 5 | public record NoClasspathAnnotations(@A @B String bar) { 6 | 7 | 8 | } 9 | -------------------------------------------------------------------------------- /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/records/PartiallyAnnotations.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record PartiallyAnnotations(@Override int a) { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /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/records/SingleParameter.java: -------------------------------------------------------------------------------- 1 | package records; 2 | 3 | public record SingleParameter(int value) { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /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/reference-test-2/ReferenceTest2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/reference-test-2/ReferenceTest2.jar -------------------------------------------------------------------------------- /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/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/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/reference-test/EnumJar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/reference-test/EnumJar.jar -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/test/resources/reference-test/Foo.java: -------------------------------------------------------------------------------- 1 | public class Foo { 2 | KJHKY l; 3 | } 4 | 5 | -------------------------------------------------------------------------------- /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/InterfaceWithEnum.java: -------------------------------------------------------------------------------- 1 | 2 | public interface InterfaceWithEnum { 3 | 4 | public static enum Colors { Red, Black, White }; 5 | String someMethod(); 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/reference-test/InterfaceWithEnumJar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/reference-test/InterfaceWithEnumJar.jar -------------------------------------------------------------------------------- /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/resources/reference-test/ReferenceTest.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/reference-test/ReferenceTest.jar -------------------------------------------------------------------------------- /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/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/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/sealedclasses/EnumWithAnonymousValue.java: -------------------------------------------------------------------------------- 1 | public enum EnumWithAnonymousValue { 2 | VALUE { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/ExtendingClass.java: -------------------------------------------------------------------------------- 1 | public final class ExtendingClass extends SealedClassWithPermits implements SealedInterfaceWithPermits { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/sealedclasses/OtherExtendingClass.java: -------------------------------------------------------------------------------- 1 | public final class OtherExtendingClass extends SealedClassWithPermits implements SealedInterfaceWithPermits { 2 | } 3 | -------------------------------------------------------------------------------- /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/SealedClassWithPermits.java: -------------------------------------------------------------------------------- 1 | public sealed class SealedClassWithPermits 2 | permits ExtendingClass, OtherExtendingClass { 3 | } -------------------------------------------------------------------------------- /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/sealedclasses/SealedInterfaceWithPermits.java: -------------------------------------------------------------------------------- 1 | public sealed interface SealedInterfaceWithPermits 2 | permits ExtendingClass, OtherExtendingClass { 3 | } 4 | -------------------------------------------------------------------------------- /src/test/resources/serialization/SomeClass.java: -------------------------------------------------------------------------------- 1 | public class SomeClass { 2 | public int a; 3 | } -------------------------------------------------------------------------------- /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/simple-module/module-info.java: -------------------------------------------------------------------------------- 1 | module spoonmod { 2 | 3 | } -------------------------------------------------------------------------------- /src/test/resources/simple-module/spoonmod/TestClass.java: -------------------------------------------------------------------------------- 1 | package spoonmod; 2 | 3 | public class TestClass { 4 | public TestClass() {} 5 | } -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/DeleteAnnotation.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter; 2 | 3 | @abc.def.xyz 4 | class DeleteAnnotation { } 5 | -------------------------------------------------------------------------------- /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/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/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/sniperPrinter/arrayInitialisation/FiveIntegers.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class FiveIntegers { 4 | int array[] = {1, 2, 3, 4, 5}; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/sniperPrinter/arrayInitialisation/GenericTypeArray.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class GenericTypeArray { 4 | Class array[]; 5 | } 6 | -------------------------------------------------------------------------------- /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/sniperPrinter/arrayInitialisation/ToNull.java: -------------------------------------------------------------------------------- 1 | package sniperPrinter.arrayInitialisation; 2 | 3 | public class ToNull { 4 | int array[]; 5 | } 6 | -------------------------------------------------------------------------------- /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/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/resources/snippet/UnnamedPackageSnippetResource.java: -------------------------------------------------------------------------------- 1 | public class UnnamedPackageSnippetResource { 2 | 3 | public void method() { 4 | 5 | } 6 | } -------------------------------------------------------------------------------- /src/test/resources/sourceJar/test.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/sourceJar/test.jar -------------------------------------------------------------------------------- /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/api/Foo.java: -------------------------------------------------------------------------------- 1 | // for API test 2 | public class Foo{} 3 | class Bar{} 4 | -------------------------------------------------------------------------------- /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 {} -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/exceptions/README: -------------------------------------------------------------------------------- 1 | used in ResourceTest -------------------------------------------------------------------------------- /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/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/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/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 | -------------------------------------------------------------------------------- /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/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/inheritance/AnotherClass.java: -------------------------------------------------------------------------------- 1 | package org.acme; 2 | 3 | import fr.acme.MyClass; 4 | 5 | public class AnotherClass { 6 | MyClass field; 7 | } -------------------------------------------------------------------------------- /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/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/resources/spoon/test/inheritance/MyInterface.java: -------------------------------------------------------------------------------- 1 | package org.myorganization; 2 | 3 | public interface MyInterface { 4 | void method(); 5 | } -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/bar/packbar/BarClass.java: -------------------------------------------------------------------------------- 1 | package packbar; 2 | 3 | public class BarClass { 4 | 5 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/module/code-multiple-modules/foo/module-info-tpl: -------------------------------------------------------------------------------- 1 | module foo { 2 | 3 | } -------------------------------------------------------------------------------- /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/module-info-tpl: -------------------------------------------------------------------------------- 1 | module first { 2 | exports test.parent.nested; 3 | } 4 | -------------------------------------------------------------------------------- /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/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/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 | } -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/noclasspath/fields/Toto.java: -------------------------------------------------------------------------------- 1 | 2 | public class Toto extends Truc { 3 | String t = machin().field; 4 | } -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /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/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/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/spoon/test/sourcePosition/ClassWithAnnotation.java: -------------------------------------------------------------------------------- 1 | package spoon.test.sourcePosition 2 | 3 | @TestAnnotation("/*") 4 | public class ClassWithAnnotation { } -------------------------------------------------------------------------------- /src/test/resources/spoon/test/sourcePosition/FieldType.java: -------------------------------------------------------------------------------- 1 | package sourcePosition; 2 | 3 | public class FieldType { 4 | private SourcePartitionValidator.MatchingStrategy pleaseAttachSourcePositionToMyType; 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/spoon/test/sourcePosition/SourcePartitionValidator.java: -------------------------------------------------------------------------------- 1 | package sourcePosition; 2 | 3 | class SourcePartitionValidator { 4 | public enum MatchingStrategy { } 5 | } 6 | -------------------------------------------------------------------------------- /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/resources/spoon/test/template/SimpleAssert.java: -------------------------------------------------------------------------------- 1 | class SimpleAssert { 2 | public void main() { 3 | assert 6 * 7 == 42; 4 | } 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 | -------------------------------------------------------------------------------- /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/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/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/spoon/test/visitor/ConditionalRes.java: -------------------------------------------------------------------------------- 1 | public class ConditionalRes { 2 | 3 | byte [] b = new byte [] { true ? 1 : 2}; 4 | 5 | } -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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 | } -------------------------------------------------------------------------------- /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/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/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/typeannotations/p02/InterfaceExtends.java: -------------------------------------------------------------------------------- 1 | package typeannotations.p02; 2 | 3 | import typeannotations.TypeUseA; 4 | 5 | public interface InterfaceExtends extends @TypeUseA Cloneable { 6 | } 7 | -------------------------------------------------------------------------------- /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/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/resources/unresolved/UtilUnresolved.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/unresolved/UtilUnresolved.java -------------------------------------------------------------------------------- /src/test/resources/visibility/snakeyaml-1.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/INRIA/spoon/3b2f2937f955cffb80c938d129c2eed076d3434e/src/test/resources/visibility/snakeyaml-1.9.jar --------------------------------------------------------------------------------