मेरे पास एक स्कैला 2.9 कंपाइलर प्लगइन (स्रोत कोड) है और यह 2.9 में ठीक काम करता है लेकिन 2.10 के साथ भी संकलित नहीं करता है।2.10 के लिए स्कैला 2.9 कंपाइलर प्लगइन माइग्रेट करने पर वहां कोई जानकारी है?
[scalac] C:\***.scala:31: error: illegal cyclic reference involving class Global
[scalac] val fileSeparator = System.getProperty("file.separator");
[scalac] ^
... कि अंततः के साथ समाप्त: जैसे त्रुटियों के दर्जनों (शायद 100 +) एक ही तरह के सभी कर रहे हैं
[scalac] scala.reflect.internal.Types$TypeError: illegal cyclic reference involving class Global
[scalac] at scala.reflect.internal.Types$class.defineBaseClassesOfCompoundType(Types.scala:1731)
[scalac] at scala.reflect.internal.SymbolTable.defineBaseClassesOfCompoundType(SymbolTable.scala:12)
[scalac] at scala.reflect.internal.Types$CompoundType.baseClasses(Types.scala:1581)
[scalac] at scala.reflect.internal.Types$TypeRef.baseClasses(Types.scala:2369)
[scalac] at scala.reflect.internal.Types$SimpleTypeProxy$class.baseClasses(Types.scala:248)
[scalac] at scala.reflect.internal.Types$SingletonType.baseClasses(Types.scala:1292)
[scalac] at scala.reflect.internal.Types$Type.findMembers(Types.scala:1058)
[scalac] at scala.reflect.internal.Types$Type.membersBasedOnFlags(Types.scala:683)
[scalac] at scala.reflect.internal.Types$Type.implicitMembers(Types.scala:637)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.collect$1(Contexts.scala:630)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.collectImplicitImports(Contexts.scala:642)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:670)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:675)
[scalac] at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1378)
[scalac] at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:82)
[scalac] at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:490)
[scalac] at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:37)
[scalac] at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:490)
[scalac] at scala.tools.nsc.typechecker.Typers$Typer.hasImport$1(Typers.scala:764)
[scalac] at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$action$1(Typers.scala:766)
[scalac] at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$checkFeature$1.apply$mcV$sp(Typers.scala:788)
[scalac] at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$apply$1.apply(Analyzer.scala:100)
[scalac] at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$apply$1.apply(Analyzer.scala:100)
[scalac] at scala.collection.immutable.List.foreach(List.scala:309)
[scalac] at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
[scalac] at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)
[scalac] at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:100)
[scalac] at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:461)
[scalac] at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
[scalac] at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
[scalac] at scala.collection.Iterator$class.foreach(Iterator.scala:727)
[scalac] at scala.collection.AbstractIterator.foreach(Iterator.scala:1156)
[scalac] at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:90)
[scalac] at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1574)
[scalac] at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1548)
[scalac] at scala.tools.nsc.Global$Run.compileSources(Global.scala:1544)
[scalac] at scala.tools.nsc.Global$Run.compile(Global.scala:1654)
[scalac] at scala.tools.ant.Scalac.executeInternal(Scalac.scala:699)
[scalac] at scala.tools.ant.Scalac.execute(Scalac.scala:647)
...
मैं कुछ जानकारी की जरूरत है या नहीं है कि क्या करने के लिए के रूप में मदद 2.10 में बदल गया है या अन्यथा इससे निपटने के लिए कैसे ... मैंने चारों ओर गुगलिंग करने और मंचों को देखने की कोशिश की लेकिन इस विषय पर बहुत कम जानकारी मिली।
किसी भी मदद के लिए आभारी होंगे!
संपादित करें: अतिरिक्त जानकारी। यह स्पष्ट रूप से चींटी कार्य का उपयोग कर रहा है (स्टैक ट्रेस देखें)। यह कार्य परिभाषित किया गया है:
<taskdef resource="scala/tools/ant/antlib.xml">
<classpath>
<pathelement location=".../scala-library.jar" />
<pathelement location=".../scala-reflect.jar" />
<pathelement location=".../scala-compiler.jar" />
</classpath>
</taskdef>
संपादित करें 2: अधिक अतिरिक्त जानकारी: मैं को यह प्लगइन संकलन (के रूप में अन्य बातों के विफल रहा है यह अभी तक नहीं चला) कमांड लाइन 2.10 संकलक का उपयोग कर (याद पाने में कामयाब रहे - सब 2.9 दुनिया में ठीक है) - चींटी आधारित निर्माण एक ही तरह से विफल रहता है (बग?)। मुझे दो बदलाव करना पड़ा। पहले varargs के साथ सौदों।
def bar = foo _;
मैं निम्नलिखित को यह बदलना पड़ा:
def foo(arg: String*) { ... }
एक और तरीका है जो प्रभावी रूप से यह विज्ञापन के रूप में 2.9 स्काला में लिखा गया था के लिए एक पर्याय है नहीं है: वहाँ एक तरीका है इस तरह के रूप है यह काम करने के लिए प्राप्त करने के लिए:
def bar(arg: String*) = foo(arg: *);
एक अन्य के साथ 'hasAssignedAnnotations' नहीं ValOrDefDef.symbol किसी भी अधिक में मौजूद होने निपटा (मैं सिर्फ इतना है कि बाहर टिप्पणी की इसे पाने के लिए संकलित करने के लिए, असली फिक्स नहीं)।
फिर से, क्या किसी को किसी वेबसाइट या दस्तावेज़ के बारे में पता है जो माइग्रेशन के साथ मेरी मदद कर सकता है - यानी 2.9 से 2.10 में क्या बदल गया है, जिसमें मुझे कंपाइलर प्लगइन्स शामिल हैं।
धन्यवाद!
बस अनुमान लगाया जा सकता है, शायद 2 में प्रतीक 'सिस्टम' की एक नई छाया है।10 कंपाइलर 2.10 में, आप 'sys.props (" file.separator ") का भी उपयोग कर सकते हैं, उस त्रुटि को ठीक कर सकते हैं। –
त्रुटि कई रेखाओं पर दिखाई देती है जो बहुत अलग हैं और बिल्कुल संबंधित नहीं लगती हैं। यहां मैंने जो एक जोड़ा है वह सिर्फ एक उदाहरण है। – Learner
क्या आपके पास अपने स्रोतों का लिंक है? –