Skip to content

Rewriting/wrapping a method's body using AST TypingTransformer traversal and quasiquotes in a Scala compiler plugin

License

Notifications You must be signed in to change notification settings

nenuadrian/scala-compiler-plugin-method-rewrite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d07c63f · Mar 6, 2025

History

10 Commits
Oct 25, 2017
Oct 25, 2017
Oct 25, 2017
Oct 24, 2017
Mar 6, 2025
May 18, 2024
Oct 24, 2017

Repository files navigation

Scala Compiler Plugin: Annotation-Based Method AST Rewriting

This repository contains a Scala compiler plugin example that demonstrates basic annotation parsing, AST traversal, and method body replacement. It substitutes the block of a method (DefDef) with an inner method, allowing the original code to be wrapped and additional behavior injected.

https://medium.com/@adrian.n/scala-compiler-plugin-annotation-based-method-ast-rewriting-wrapping-substitution-b802f2d922f1

Overview

This plugin showcases:

  • Parsing annotations
  • Traversing the Abstract Syntax Tree (AST)
  • Replacing method bodies (DefDef)

The plugin rewrites annotated methods to include additional behaviour, such as logging or remote execution, without modifying the original method code.

About

Rewriting/wrapping a method's body using AST TypingTransformer traversal and quasiquotes in a Scala compiler plugin

Topics

Resources

License

Stars

Watchers

Forks