Interesting. I actually see two errors:

/Users/jrose/Desktop/SwifterJSON/App/AppDelegate.swift:19:18: error: ambiguous 
operator declarations found for operator
    json["root"] &= 4
                 ^
<unknown>:0: note: found this matching operator declaration
<unknown>:0: note: found this matching operator declaration
/Users/jrose/Desktop/SwifterJSON/App/AppDelegate.swift:19:18: error: operator 
is not a known binary operator
    json["root"] &= 4
                 ^

which actually seems correct in retrospect: '&=' is already a valid operator in 
the 'Swift' library, and you're redefining it rather than just reusing that 
definition. It works if I either remove your `infix operator &=` declaration 
(and leave all the implementations in place), or if I change to an operator 
that isn't already defined. Can you file a bug at bugs.swift.org 
<http://bugs.swift.org/> for the lousy diagnostics, at least?

Jordan


> On Feb 3, 2017, at 11:34, Rien <[email protected]> wrote:
> 
> This is the “defining” package/module:
> 
> https://github.com/Balancingrock/SwifterJSON 
> <https://github.com/Balancingrock/SwifterJSON>
> 
> For the consuming package simply generate a new executable and put the 
> following in main.swift:
> 
> 
> import SwifterJSON
> 
> 
> // Note: Error disappears when the line below is un-commented
> 
> // infix operator &=
> 
> var json = VJson()
> 
> json["root"] &= 4
> 
> print(json.code)
> 
> 
> (seems I have hit a snag with github, otherwise I would create a new repo for 
> the executable… sorry for that.)
> 
> Regards,
> Rien
> 
> Site: http://balancingrock.nl <http://balancingrock.nl/>
> Blog: http://swiftrien.blogspot.com <http://swiftrien.blogspot.com/>
> Github: http://github.com/Balancingrock <http://github.com/Balancingrock>
> Project: http://swiftfire.nl <http://swiftfire.nl/>
> 
> 
> 
> 
> 
>> On 03 Feb 2017, at 18:36, Jordan Rose <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> The operator itself. If you’re not seeing that behavior, that’s a bug! Do 
>> you have a small test case that reproduces it? (I guess it would take two 
>> modules regardless, so either a SwiftPM package or an Xcode project would do 
>> it.)
>> 
>> Jordan
>> 
>>> On Feb 3, 2017, at 09:34, Rien <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Are you referring to the definition of the operator (infix…) or the 
>>> availability of the function that defines the operator?
>>> 
>>> The functions are available, but I have to repeat the “infix…" everywhere I 
>>> need them.
>>> 
>>> I.e. I have a:
>>> 
>>> infix operator &=
>>> 
>>> And when I use that from another module I get “Operator is not a known 
>>> binary operator”
>>> 
>>> Once I repeat the "infix operator &=“ at the start of the file it works 
>>> fine.
>>> 
>>> Regards,
>>> Rien
>>> 
>>> Site: http://balancingrock.nl <http://balancingrock.nl/>
>>> Blog: http://swiftrien.blogspot.com <http://swiftrien.blogspot.com/>
>>> Github: http://github.com/Balancingrock <http://github.com/Balancingrock>
>>> Project: http://swiftfire.nl <http://swiftfire.nl/>
>>> 
>>> 
>>> 
>>> 
>>> 
>>>> On 03 Feb 2017, at 18:14, Jordan Rose <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> Operator declarations are actually public all the time, not internal. 
>>>> That’s itself probably a bug, but not the world-limiting one you’re 
>>>> concerned about.
>>>> 
>>>> Jordan
>>>> 
>>>> 
>>>>> On Feb 3, 2017, at 01:18, Rien via swift-users <[email protected] 
>>>>> <mailto:[email protected]>> wrote:
>>>>> 
>>>>> It is possible to define custom operators in a framework, but it is not 
>>>>> possible to assign access levels to them.
>>>>> 
>>>>> As a consequence they are module internal and cannot be used outside the 
>>>>> framework.
>>>>> 
>>>>> Each project needs to redefine the custom operators in order to use them 
>>>>> in that project.
>>>>> 
>>>>> What is the rationale behind that?
>>>>> 
>>>>> Or is it a bug?
>>>>> 
>>>>> Are there other ways to accomplish this?
>>>>> 
>>>>> Regards,
>>>>> Rien
>>>>> 
>>>>> Site: http://balancingrock.nl <http://balancingrock.nl/>
>>>>> Blog: http://swiftrien.blogspot.com <http://swiftrien.blogspot.com/>
>>>>> Github: http://github.com/Balancingrock <http://github.com/Balancingrock>
>>>>> Project: http://swiftfire.nl <http://swiftfire.nl/>
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> swift-users mailing list
>>>>> [email protected] <mailto:[email protected]>
>>>>> https://lists.swift.org/mailman/listinfo/swift-users
>>>> 
>>> 
>> 
> 

_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to