© 2023 Hashnode
#metaprogramming
In the previous article, we implemented a Roslyn analyzer and code fix. This article will focus on various ways to properly test them. We will leverage existing test libraries and explore the means to…
Macros, a form of metaprogramming,or more precisely Multi-stage programming, is a way to modify code as data during compile time. Thanks to this technique, programmers now have the power close to the compiler (although you can't change the …
In this part of the series, we will focus on creating a code fix provider that will fix a diagnostic we reported with empty lines analyzer, a Roslyn analyzer we implemented in the previous article. S…
This article will focus on the most basic setup needed to create and use a Roslyn analyzer. Starting with an empty solution, we will go through the necessary configuration to develop and utilize a Ros…
In this series of articles, I will explore how Roslyn enhances the development process and allows developers to write code analysis, transformation, and manipulation tools. (This series is a work in p…
Metaprogramming, proxying, and reflection sound like confusing and complicated concepts to understand, but are they really? This guide will provide a comprehensive explanation of each of these topics,…
Introduction The Go programming language is a popular statically-typed, compiled programming language that has a C-like syntax. It is gaining more popularity every day in modern developer communities …
In a previous post, I detailed how to maintain encapsulation using Python's property. In this piece, I go through how/why to manage and apply validation to class attributes in an object-oriented fashi…
A decorator is the gateway drug into the world of Python metaprogramming. In python, everything, everything, is an object (specifically a dictionary but let's not go there). That means that we can pas…
1. Introduction As most of you already know, Scala 3 has completely redesigned the language and also brought in a lot of new features. As part of it, Scala 3 has implemented meta programming from scra…