 
 public func ==(lhs: ResolutionError, rhs: ResolutionError) -> Bool {
     switch (lhs, rhs){
-    case (.optional(let lname), .optional(let rname)):
-        return lname == rname
-    case (.implicitlyUnwrappedOptional(let lname), .implicitlyUnwrappedOptional(let rname)):
-        return lname == rname
     case (.tooManyDependencies(let ldependencyCount), .tooManyDependencies(let rdependencyCount)):
         return ldependencyCount == rdependencyCount
     default:

    class UnwrappedService {
        init(a: DependencyA!, b: DependencyB){}
    }
    
    class BadService {
        init(a: DependencyA, b: DependencyB, c: DependencyC!, d: DependencyD?, e: DependencyE!, f: DependencyF, g: DependencyG, h: DependencyH?, i: DependencyI, j: DependencyJ, k: DependencyA, l: DependencyB, m: DependencyC, n: DependencyD, o: DependencyE, p: DependencyF, q: DependencyG, r: DependencyH, s: DependencyI, t: DependencyJ, u: DependencyA){}
    }
    
    class OptionalSingleTupleService {
        init(tuple: (a: DependencyA?, b: DependencyB?, c: DependencyC?)){}
    }

                expect(w.count) == 0
            }
            
            it("doesnt show warning for optional closure"){
                let w = resolutionErrors(forInitializer: OptionalNestedClosureService.init)
                expect(w.count) == 0
            }
            
        }
