2012-06-19 5 views
6

से स्कैला पथ निर्भर वापसी प्रकार निम्न कोड में 2.10.03 के लिए ग्रहण प्लगइन 2.1.0 में 2.10.0M3 का उपयोग कर निम्न कोड में। मैं डिफ़ॉल्ट सेटिंग जो JVM 1.5 लक्षित कर रहा है का उपयोग कर रहापैरामीटर

class GeomBase[T <: DTypes] {   
    abstract class NewObjs { 
    def newHex(gridR: GridBase, coodI: Cood): gridR.HexRT   
    } 

    class GridBase { 
    selfGrid => 
     type HexRT = HexG with T#HexTr 

    def uniformRect (init: NewObjs) { 
     val hexCood = Cood(2 ,2) 
     val hex: HexRT = init.newHex(selfGrid, hexCood)// won't compile 
    } 
    } 
} 

त्रुटि संदेश:

Description Resource Path Location Type type mismatch; 
    found: GeomBase.this.GridBase#HexG with T#HexTr 
    required: GridBase.this.HexRT (which expands to) GridBase.this.HexG with T#HexTr GeomBase.scala 

संकलक क्यों लगता है कि विधि रिटर्न प्रकार प्रक्षेपण GridBase # HexG है जब यह विशेष रूप से यह होना चाहिए ग्रिडबेस का?

अब एक अलग त्रुटि संदेश प्राप्त करने के लिए टिप्पणियों के लिए एक सरल कोड कक्षा में स्थानांतरित करें संपादित करें।

package rStrat 
class TestClass { 
    abstract class NewObjs { 
    def newHex(gridR: GridBase): gridR.HexG 
    }  
    class GridBase { 
    selfGrid =>   

    def uniformRect (init: NewObjs) { 
     val hex: HexG = init.newHex(this) //error here       
    }  

    class HexG { 
     val test12 = 5     
    } 
    } 
} 

Error line 11:Description Resource Path Location Type 
type mismatch; found : gridR.HexG required: GridBase.this.HexG 
possible cause: missing arguments for method or constructor TestClass.scala /SStrat/src/rStrat line 11 Scala Problem 

अद्यतन मैं ग्रहण का एकदम नया संस्करण पर 2.10.0M4 करने पर स्विच कर और प्लग-इन अपडेट एम 4 संस्करण के लिए और JVM 1.6 (और 1.7) में स्विच लेकिन समस्याओं में कोई बदलाव नहीं कर रहे हैं।

+0

क्या आप एक कार्य कोड उदाहरण जोड़ सकते हैं जो त्रुटि संदेश उत्पन्न करता है? – sschaef

+0

आपको स्रोत कोड लाइन को त्रुटि और तीर के साथ पेस्ट करना चाहिए जो कि त्रुटि के सटीक स्थान को इंगित करता है जो भी प्रदर्शित होते हैं। –

+0

@Antoras संपादित –

उत्तर

4

SI-5958 के रूप में लॉग - निर्भर विधि प्रकार

2

यह अब 2.10.0M7 के रूप में काम करता में इस विकल्प। बग तय किया गया है।

val hex: HexRT = init.newHex(selfGrid, hexCood) //now compiles and runs correctly