Write a Blog >>
Fri 28 Sep 2018 14:50 - 15:00 at Frisco - Student Talks 2 Chair(s): Philipp Haller

At Twitter, we are using automated code rewrites via Scalafix to enforce code style and to perform library and language version migrations. Such rewrites are practically useful, but they can lead to subtle changes in typechecker behavior around type inference and implicit search. In our experience, such changes may be hard to spot when diffing source files during code review and may not always be covered by tests. Therefore, we believe that there is a need in tools that would detect these changes in an automated fashion.

SemanticDB is a data model for semantic information such as symbols and types about programs in Scala and other languages. This enables an ecosystem of tools that produce and consume semantic information: SemanticDB is currently produced by Scala and Java compiler plugins provided by Scalameta, and consumed by tools like automatic code rewrites, IDEs , and semantic analyzers.

To achieve our goal, we improved SemanticDB to capture synthetic trees that represent inferred type arguments and implicit arguments, and then developed a tool that compares these synthetics before and after automated code rewrites. We used this toolchain to verify the behavior of type inference and implicit search on the core of Twitter Util - a foundational library behind the Twitter stack. Our work has been open-sourced at https://github.com/twitter/rsc.

Fri 28 Sep
Times are displayed in time zone: (GMT-05:00) Guadalajara, Mexico City, Monterrey change

14:40 - 15:00: Scala 2018 - Student Talks 2 at Frisco
Chair(s): Philipp HallerKTH, Sweden
scala-2018-papers14:40 - 14:50
Guillaume MartresEPFL, Switzerland
scala-2018-papers14:50 - 15:00
Max OvsiankinUC Berkeley, Eugene BurmakoTwitter, Inc.