Discover TASTy Query: The library for Scala whole program analysis.

By Jamie Thompson

Elevator Pitch

Discover the future impact of TASTy Query: a single, cross-platform API to answer all semantic questions about Scala programs, no compiler required. Already used in Metals’ debugger, TASTy Query will validate APIs do not break compatibility. Learn to build an analysis to improve your own code.

Description

TASTy (Scala 3’s intermediate binary representation) stores all the signatures and implementations of Scala definitions - essentially it is the whole program. Discover in this talk why TASTy Query is the single cross-platform API to realise the potential of TASTy. Supporting Scala.js and the JVM, TASTy Query has a simpler API than the compiler, that is designed from the Scala user’s point of view. Learn why it will be crucial to library’s for preserving compatibility between API versions. We will show you also how to build tools and analyses on top of TASTy-Query, for example how Metals’ debugger leverages TASTy-Query’s support for Scala 2 and Java APIs.

Notes

I am one of the main contributors to TASTy Query as an engineer at the Scala Center. We have plans to use it to build a MiMa for TASTy (i.e. a primary use case is to validate inline methods do not break between API versions). This talk is aimed at Scala users who are interested in “code health” for example - library authors, and engineers from industry who need to care about code complexity (i.e. analyses that can be supported by tasty-query).