pauljohanneskraft / Map

MKMapView wrapper for SwiftUI as drop-in to MapKit's SwiftUI view. Easily extensible annotations and overlays, iOS 13 support and backwards compatible with MKAnnotation and MKOverlay!
MIT License
191 stars 49 forks source link

Fails to compile for macOS (Apple Silicon) #43

Closed leeronr closed 1 year ago

leeronr commented 1 year ago

M1 iMac macOS 13.2.1 Xcode 14.3

Haven't dove into the code, but compilation for macOS arm64 yields the following log excerpt:

SwiftCompile normal arm64 [PATH]/Map/Sources/Map/Map.swift (in target 'Map' from project 'Map')

...

[PATH]/Map/Sources/Map/Map.swift:55:139: error: contextual closure type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body
        @OptionalMapAnnotationBuilder clusterAnnotation: @escaping (MKClusterAnnotation, [AnnotationItems.Element]) -> MapAnnotation? = { _ in nil },
                                                                                                                                          ^
                                                                                                                                           ,_ 
[PATH]/Map/Sources/Map/Map.swift:55:137: error: generic parameter 'AnnotationItems' could not be inferred
        @OptionalMapAnnotationBuilder clusterAnnotation: @escaping (MKClusterAnnotation, [AnnotationItems.Element]) -> MapAnnotation? = { _ in nil },
                                                                                                                                        ^
[PATH]/Map/Sources/Map/Map.swift:13:19: note: 'AnnotationItems' declared as parameter to type 'Map'
public struct Map<AnnotationItems: RandomAccessCollection, OverlayItems: RandomAccessCollection>
                  ^
[PATH]/Map/Sources/Map/Map.swift:285:32: error: extra argument 'clusterAnnotation' in call
            clusterAnnotation: { annotation, _ in clusterAnnotation(annotation) },
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[PATH]/Map/Sources/Map/Map.swift:493:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:493:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:524:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:524:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:558:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:558:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:592:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:592:32: error: cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'
            clusterAnnotation: clusterAnnotation,
                               ^
[PATH]/Map/Sources/Map/Map.swift:711:32: error: contextual closure type '(MKClusterAnnotation, [IdentifiableObject<any MKAnnotation>]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                               ^
[PATH]/Map/Sources/Map/Map.swift:711:55: error: value of type 'MKClusterAnnotation' has no member 'map'
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                                                   ~~ ^~~
[PATH]/Map/Sources/Map/Map.swift:711:59: error: cannot infer key path type from context; consider explicitly specifying a root type
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                                                          ^
                                                           <#Root#>
[PATH]/Map/Sources/Map/Map.swift:745:32: error: contextual closure type '(MKClusterAnnotation, [IdentifiableObject<any MKAnnotation>]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                               ^
[PATH]/Map/Sources/Map/Map.swift:745:55: error: value of type 'MKClusterAnnotation' has no member 'map'
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                                                   ~~ ^~~
[PATH]/Map/Sources/Map/Map.swift:745:59: error: cannot infer key path type from context; consider explicitly specifying a root type
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                                                          ^
                                                           <#Root#>
[PATH]/Map/Sources/Map/Map.swift:782:32: error: contextual closure type '(MKClusterAnnotation, [IdentifiableObject<any MKAnnotation>]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                               ^
[PATH]/Map/Sources/Map/Map.swift:782:55: error: value of type 'MKClusterAnnotation' has no member 'map'
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                                                   ~~ ^~~
[PATH]/Map/Sources/Map/Map.swift:782:59: error: cannot infer key path type from context; consider explicitly specifying a root type
            clusterAnnotation: { clusterAnnotation($0.map(\.object)) },
                                                          ^
                                                           <#Root#>

[PATH]/Map/Sources/Map/Map.swift:55:139: Contextual closure type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body

[PATH]/Map/Sources/Map/Map.swift:55:137: Generic parameter 'AnnotationItems' could not be inferred

[PATH]/Map/Sources/Map/Map.swift:285:32: Extra argument 'clusterAnnotation' in call

[PATH]/Map/Sources/Map/Map.swift:493:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:493:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:524:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:524:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:558:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:558:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:592:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:592:32: Cannot convert value of type '([AnnotationItems.Element]) -> (any MapAnnotation)?' to expected argument type '(MKClusterAnnotation, [AnnotationItems.Element]) -> (any MapAnnotation)?'

[PATH]/Map/Sources/Map/Map.swift:711:32: Contextual closure type '(MKClusterAnnotation, [IdentifiableObject<any MKAnnotation>]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body

[PATH]/Map/Sources/Map/Map.swift:711:55: Value of type 'MKClusterAnnotation' has no member 'map'

[PATH]/Map/Sources/Map/Map.swift:711:59: Cannot infer key path type from context; consider explicitly specifying a root type

[PATH]/Map/Sources/Map/Map.swift:745:32: Contextual closure type '(MKClusterAnnotation, [IdentifiableObject<any MKAnnotation>]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body

[PATH]/Map/Sources/Map/Map.swift:745:55: Value of type 'MKClusterAnnotation' has no member 'map'

[PATH]/Map/Sources/Map/Map.swift:745:59: Cannot infer key path type from context; consider explicitly specifying a root type

[PATH]/Map/Sources/Map/Map.swift:782:32: Contextual closure type '(MKClusterAnnotation, [IdentifiableObject<any MKAnnotation>]) -> (any MapAnnotation)?' expects 2 arguments, but 1 was used in closure body

[PATH]/Map/Sources/Map/Map.swift:782:55: Value of type 'MKClusterAnnotation' has no member 'map'

[PATH]/Map/Sources/Map/Map.swift:782:59: Cannot infer key path type from context; consider explicitly specifying a root type
pauljohanneskraft commented 1 year ago

This is not Apple Silicon specific, but it currently has issues compiling on macOS in general - I will try to fix this ASAP - sorry for the inconvenience.

leeronr commented 1 year ago

Thanks for the response and for the good work!