@@ -17,7 +17,7 @@ public enum AstrojectError: LocalizedError {
17
17
/// A dependency is requested but no corresponding registration is found in the container.
18
18
///
19
19
/// This case occurs when attempting to resolve a dependency that has not been registered.
20
- case noRegistrationFound
20
+ case noRegistrationFound( type : String , name : String ? = nil )
21
21
22
22
/// A circular dependency is detected during the resolution process.
23
23
///
@@ -47,8 +47,12 @@ public enum AstrojectError: LocalizedError {
47
47
} else {
48
48
return " A registration for type ' \( type) ' already exists. "
49
49
}
50
- case . noRegistrationFound:
51
- return " No registration found for the requested dependency. "
50
+ case . noRegistrationFound( let type, let name) :
51
+ if let name {
52
+ return " No registration found for dependency of ' \( type) ' with name ' \( name) '. "
53
+ } else {
54
+ return " No registration found for dependency of ' \( type) '. "
55
+ }
52
56
case . circularDependencyDetected( let type, let name) :
53
57
if let name = name {
54
58
return " A circular dependency was detected while resolving type ' \( type) ' with name ' \( name) '. "
@@ -109,12 +113,13 @@ extension AstrojectError: Equatable {
109
113
public static func == ( lhs: AstrojectError , rhs: AstrojectError ) -> Bool {
110
114
switch ( lhs, rhs) {
111
115
case ( . alreadyRegistered( let lhsType, let lhsName) , . alreadyRegistered( let rhsType, let rhsName) ) ,
116
+ ( . noRegistrationFound( let lhsType, let lhsName) ,
117
+ . noRegistrationFound( let rhsType, let rhsName) ) ,
112
118
( . circularDependencyDetected( let lhsType, let lhsName) ,
113
119
. circularDependencyDetected( let rhsType, let rhsName) ) :
114
120
// Compare the associated types and names for alreadyRegistered and circularDependencyDetected errors.
115
121
return lhsType == rhsType && lhsName == rhsName
116
- case ( . noRegistrationFound, . noRegistrationFound) ,
117
- ( . invalidInstance, . invalidInstance) :
122
+ case ( . invalidInstance, . invalidInstance) :
118
123
// noRegistrationFound and invalidInstance errors are equal if they are the same case.
119
124
return true
120
125
case ( . underlyingError( let lhsError) , . underlyingError( let rhsError) ) :
0 commit comments