Fengyun Liu
Fengyun Liu
Thanks @densh , this tutorial is incredibly helpful 👍 !
## Minimized example ```Scala class B(val y: Int): println(y) // A warning is due here foo() def foo() = println(y) class C(override val y: Int) extends B(10) @main def Test...
Fix #15764: Warn for problematic parameter overriding Check overriding of class parameters This check issues a warning if the use of a class pamameter in the primary constructor potentially has...
When I paste something, by default it keeps the CSS style, which is usually not what a markdown writer wants
## Compiler version 3.5.0-RC1-bin-20240506-1cdf99f-NIGHTLY ## Minimized code ```Scala trait CmdLineParser { outer => trait Opt[+T] { val default: T val names: Set[String] val help: String } trait IntOpt extends Opt[Int]...
Add init test
The problem can be demonstrated below, which is encountered in https://github.com/scalatest/scalatest/pull/1584: ```Scala def default: Term = { type T implicit val tp: quoted.Type[T] = expr.tpe.seal.asInstanceOf[quoted.Type[T]] '{ DiagrammedExpr.simpleExpr(${expr.seal.cast[T]}, ${ getAnchor(expr) }...
Hygiene is a common problem in macros. We've some initial design ideas about hygiene here: https://github.com/liufengyun/gestalt/pull/77#pullrequestreview-38177513 Generally, hygiene becomes a problem when a name either in user-program or meta-program changes...
Currently, gestalt depends on `scala.meta` to parse quasiquotes, the transitive dependencies forms a obstacle for the possible integration of `gestalt` with `dotty` (if it ever happens). It's possible to copy...
The Monadless library uses TypeTags: ```Scala trait Monadless[Monad[_]] { type M[T] = Monad[T] def lift[T](body: T)(implicit m: WeakTypeTag[Monad[_]]): Monad[T] = meta { => val tree = Transformer(toolbox)(body) // cannot access...