स्कैला 2.9.x में मैंने tools.nsc.Global
का उपयोग सीधे कुछ स्ट्रिंग को कक्षा में संकलित करने और इसे निष्पादित करने के लिए किया था।क्या स्कैला 2.10 में रनटाइम संकलन त्रुटियों की उचित रिपोर्ट प्राप्त करने का कोई तरीका है?
स्केला 2.10 में, यह निम्नलिखित की तरह कुछ के साथ बदलने के लिए संभव है:
import scala.reflect.runtime._;
val cm = universe.runtimeMirror(getClass.getClassLoader)
import scala.tools.reflect.ToolBox;
val tb = cm.mkToolBox()
tb.eval(tb.parse("class C; new C"))
और यह दोषरहित काम करता है। एकमात्र समस्या यह है कि पुराने (बहिष्कृत) दृष्टिकोण के साथ, मैं स्टोररपोर्टर (त्रुटि संदेशों, रेखा संख्याओं के साथ) का उपयोग करके सभी संकलन विफलताओं का बेहद सुंदर सारांश प्राप्त कर सकता हूं, और नया दृष्टिकोण संकलन त्रुटि पर अपवाद फेंकता है।
क्या इसका पुनर्मूल्यांकन करने का कोई तरीका है?
लेकिन जैसा कि आप देखते हैं, यह सभी त्रुटियों के लिए NoPosition देता है। और अगर मैं कोड के बड़े हिस्से को संकलित कर दूंगा, तो मैं उपयोगकर्ता को कम से कम लाइन स्थिति की रिपोर्ट करने में सक्षम होना चाहता हूं। – Rogach
संदर्भ के लिए, यहां बताया गया है कि यह वर्तमान में कैसे किया जाता है: https://github.com/Rogach/miltamm/blob/master/src/main/scala/BuildCompiler.scala#L8 – Rogach
क्या आप इस नोपोजिशन चीज़ के बारे में टिकट खोल सकते हैं ? –