Proceedings of the 2013 ACM Workshop on Workshop on Refactoring Tools 2013
DOI: 10.1145/2541348.2541355
|View full text |Cite
|
Sign up to set email alerts
|

Scalable, example-based refactorings with refaster

Abstract: We discuss Refaster, a tool that uses normal, compilable before-and-after examples of Java code to specify a Java refactoring. Refaster has been used successfully by the Java Core Libraries Team at Google to perform a wide variety of refactorings across Google's massive Java codebase. Our main contribution is that a large class of useful refactorings can be expressed in pure Java, without a specialized DSL, while keeping the tool easily accessible to average Java developers.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
9
0
1

Year Published

2014
2014
2020
2020

Publication Types

Select...
6
2
1

Relationship

0
9

Authors

Journals

citations
Cited by 27 publications
(10 citation statements)
references
References 4 publications
0
9
0
1
Order By: Relevance
“…It is used by developer teams that ensure persistent information from protocol buffers in their serialized form but is annoying for teams that do not store data in this form. Another example is an analyzer that suggests using Guava 37 or Java 7 idioms that do not make sense for projects that cannot use these libraries or language features;…”
Section: Even In a Mature Codebase With Full Test Coverage And A Rigomentioning
confidence: 99%
“…It is used by developer teams that ensure persistent information from protocol buffers in their serialized form but is annoying for teams that do not store data in this form. Another example is an analyzer that suggests using Guava 37 or Java 7 idioms that do not make sense for projects that cannot use these libraries or language features;…”
Section: Even In a Mature Codebase With Full Test Coverage And A Rigomentioning
confidence: 99%
“…Many such edits have already been performed in the past by the same developers in a different codebase location, or by other developers in a different program/codebase. For instance, to apply an API update, a developer needs to locate all references to the old API and consistently replace them with the new API [1], [2]. As another example, in programming courses student submissions that exhibit the same fault often need similar fixes.…”
Section: Introductionmentioning
confidence: 99%
“…As far as we know, these transformation frameworks for Java do not consider type safety either, and there is no guarantee that the transformation does not introduce compilation errors. Refaster [28] uses compilable before-and-after examples of Java code to specify a Java refactoring. Similarly to our work, this work also mainly focuses on solving the method replacement which is useful in real API migration.…”
Section: Related Workmentioning
confidence: 99%