File tree Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Original file line number Diff line number Diff line change @@ -29,3 +29,9 @@ extension Module {
29
29
case MixedSources( String )
30
30
}
31
31
}
32
+
33
+ extension Product {
34
+ public enum Error : ErrorProtocol {
35
+ case NoModules( String )
36
+ }
37
+ }
Original file line number Diff line number Diff line change @@ -37,10 +37,18 @@ extension Package {
37
37
////// add products from the manifest
38
38
39
39
for p in manifest. products {
40
- //FIXME no bang
41
- let modules = p. modules. map { moduleName in
42
- modules. pick { $0. name == moduleName } as! SwiftModule
40
+ let modules : [ SwiftModule ] = p. modules. flatMap { moduleName in
41
+ guard case let picked as SwiftModule = ( modules. pick { $0. name == moduleName } ) else {
42
+ print ( " warning: No module \( moduleName) found for product \( p. name) " )
43
+ return nil
44
+ }
45
+ return picked
43
46
}
47
+
48
+ guard !modules. isEmpty else {
49
+ throw Product . Error. NoModules ( p. name)
50
+ }
51
+
44
52
let product = Product ( name: p. name, type: p. type, modules: modules)
45
53
products. append ( product)
46
54
}
You can’t perform that action at this time.
0 commit comments