[swift-evolution] [Draft] Adding a Build Configuration Import Test

Pierre Monod-Broca pierremonodbroca at gmail.com
Wed Mar 23 03:23:20 CDT 2016


Good points.

Should we allow the following then? And then should Bar be imported if Baz is not present?

#if import Foo.Bar && import Foo.Baz
#endif


I also want to mention other forms for further discussion:

#if import Foo.Bar as FooBar
#endif

#if !import Foo
#endif



Pierre

Le 23 mars 2016 à 08:21, Brent Royal-Gordon <brent at architechies.com> a écrit :

>> My guess is most often one will want to import exactly what one is testing (Brent example) but I guess it would be very handy to do something like
>> 
>> #if canImport(Foo)
>>   import Foo.Bar as FooBar
>> #endif
> 
> I don't see any particular reason you couldn't support anything `import` can support in an `#if import`.
> 
>> Also +1 on Haraviks point:
>>> My only question is whether there should be a way to test minimum module versions? If I add support for a module but target a particularly recent version then that support won’t compile for platforms with older versions of the same module, so I should be able to prevent them from being a match.
> 
> I think we'd be better off extending our existing `@available` and `#availability` mechanisms to test module versions in addition to platform versions. Two small, orthogonal features are better than one big, confused one.
> 
> -- 
> Brent Royal-Gordon
> Architechies
> 


More information about the swift-evolution mailing list