Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nenuadrian/scala-compiler-plugin-method-rewrite

Rewriting/wrapping a method's body using AST TypingTransformer traversal and quasiquotes in a Scala compiler plugin
https://github.com/nenuadrian/scala-compiler-plugin-method-rewrite

ast-traversal metaprogramming scala scala-compiler scala-meta scalac

Last synced: 5 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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.