I've been trying to get JavaCall to work with the latest Julia master, 
after the Tuplecalypse. I am getting a method ambiguity warning, and am a 
bit confused by the suggested fix. Any help appreciated. 

so the warning message says: 

Warning: New definition 
    
convertTuple{Type{JavaCall.JavaObject{symbol("java.lang.String")}},T<:AbstractString}
 
at /home/vagrant/.julia/v0.4/JavaCall/src/JavaCall.jl:150
is ambiguous with: 
    convertTuple{Type{T},T} at base.jl:38.
To fix, define 
    
convertTuple{Type{JavaCall.JavaObject{symbol("java.lang.String")}},JavaCall.JavaObject{symbol("java.lang.String")}}
before the new definition.

The method definition at line 150 of JavaCall.jl is :

convert{T<:String}(::Type{JString}, str::T) = JString(str)

where "JString" is a type alias:

typealias JString JavaObject{symbol("java.lang.String")}

My primary point of confusion is that the suggested fix seems to ask me to 
define an identity method. Is that really what I need to do? I suppose I 
haven't really understood why this method definition should be ambigous. 
Especially since this was OK in 0.3, and older versions of 0.4.

Regards
-
Avik

Reply via email to