4
我有一個scala宏,它依賴於通過包含它的位置的靜態字符串指定的任意xml文件。Scala宏的非scala源位置
def myMacro(path: String) = macro myMacroImpl
def myMacroImpl(c: Context)(path: c.Expr[String]): c.Expr[Any] = {
// load file specified by path and generate some code
...
}
這意味着,如果xml文件格式錯誤,宏將無法展開。在提供包含xml文件中錯誤位置的文本表示的錯誤消息的那一刻。然而,這顯然不是最好的解決方案。
是否有可能爲我生成的代碼在不同的(可能的非scala)文件中提供源位置,以便錯誤將指向xml文件而不是包含xml文件的scala文件?我不明白我可以自己創建地點而不是改變現有地點。
很酷,非常感謝你的回答。 :)這會幫助我玩這個宏,直到在公共API中支持這樣的東西。我將提交一張票。 –
謝謝您的機票! –
供將來參考:機票以[SI-8526](https://issues.scala-lang.org/browse/SI-8526)提交, –