@@ -102,10 +102,14 @@ public class Dynamic: CustomDebugStringConvertible, Loggable {
log("Get:", "\(object?.debugDescription ?? "").\(name)")
let resolved = resolve()
- if resolved == nil || resolved is Error {
+ if resolved is Error {
return self
}
+ if resolved == nil {
+ return Self.nil
+ }
+
log(.end)
return Dynamic(resolved, memberName: name)
@@ -189,7 +189,7 @@ final class DynamicTests: XCTestCase {
let errorChained = error.thisMethodCallHasNoEffect(123).randomProperty
XCTAssertTrue(errorChained === error, "Calling methods and properties form error should return the same object")
- let null = ObjC(nil)
+ let null = ObjC.nil
XCTAssertNil(null.asObject, "Wrapped nil should return nil")
let nullChained = null.thisMethodCallHasNoEffect(123).randomProperty