scala-macros

    3熱度

    1回答

    我想有一個階宏,執行以下操作: 當我寫: myCreateCityMacro("paris") myCreateCityMacro("vallorbe") 我想獲得: val paris = new City("paris") val vallorbe = new City("vallorbe")

    0熱度

    1回答

    我使用的時候會遇到一些惱人的問題聲稱那裏是可以得 沒有良好的信息:它爲什麼失敗,什麼斷言約爲 斷言信息被埋在海量的不需要的信息之下,像太多的scala函數層。 我已經將這些問題留在了我的腦海中,現在新的scala宏已經可用了,我打算繼續Stack Overflow併爲每個問題創建一個高價值的問題和答案對。那樣,下一個有這個問題的人就不必在這麼多的錯誤信息中s舌。如果其他專家用他們自己的知識加以引申

    4熱度

    1回答

    我一直在嘗試MacroParadise(here和here)以及一些其他更新的功能。今天,在使用TypeTags時,我意識到我現在可以做這樣的事情來強制執行類型相等。 def typeEq[A: TypeTag, B: TypeTag]: Boolean = { implicitly[TypeTag[A]].tpe =:= implicitly[TypeTag[B]].tpe }

    5熱度

    2回答

    作爲對this question的迴應,我一直在使用宏天堂分支在Scala中實現Haskell風格的'where'表達式。代碼可在scala-where獲得。現在我可以寫類似如下: val result = where (f1(1) * f2(2), { def f1(x : Int) = x + 1 def f2(x : Int) = x + 2 }) 不過,我真正想要

    180熱度

    1回答

    假設我們要編寫一個宏,該宏定義了具有某些類型成員或方法的匿名類,然後創建該類的實例,該靜態類型爲類型爲結構類型那些方法等等,這是可能的,在2.10.0宏系統和類型成員的部分是極其容易的:(其中ReflectionUtils是convenience trait提供我的constructor方法) object MacroExample extends ReflectionUtils { i

    3熱度

    1回答

    使用宏我想獲得一個通用解決方案來引用案例分類數據樹的字段和子字段的Symbol。 通過this gist啓發,我創建了一個框架如下: import language.experimental.macros import reflect.runtime.universe._ import reflect.macros.Context object SubRef { case cl

    5熱度

    1回答

    例如,要獲取宏的調用站點可訪問的所有值及其類型? 或者至少只是當前班的價值觀?例如: class A { val v1 = 10 var v2 = "2" def m { val m3 = true // Here I would like to get information that v1: Int, v2: String and

    6熱度

    1回答

    我想添加一個靜態字段(在本例中名爲bar)到類型宏(名字爲Static)的類(名字爲Foo)。 這是我當前如何試圖做到這一點: 宏 import language.experimental.macros import scala.reflect.macros.Context package object statics { type Static = macro Statics.

    3熱度

    2回答

    在斯卡拉宏,我想要做這樣的事情: 我有一個Tree(可能很大)。現在我想找到具有某種具體形式的樹的子樹,例如Apply(_, _)。現在我想創建一個新樹,它是原始樹的副本,但找到的子樹被其他樹替換。 有了這樣的事情,我可以例如用一些其他方法的調用來替換調用某個方法。 是這樣的可能嗎?

    38熱度

    2回答

    我可以在哪裏學習如何構建Scala的宏生成的AST? Scaladoc沒有我想要的那麼有用。例如: abstract def Apply(sym: Universe.Symbol, args: Universe.Tree*): Universe.Tree A factory method for Apply nodes. 但是,如何找出Apply節點是什麼?我在哪裏可以找到AST的節點類型列