 		
 		// new reason
 		reach = 0
-		asyncFail(error).finally { onSettled -> Promise<Int>? in
+		asyncFail(error).finally { () -> Promise<Int>? in
 			reach++
 			return self.asyncFail(error2)
 		}.catch { reason -> Promise<Int>? in

		
		// make fail
		reach = 0
		asyncSucceed(0).finally { onSettled -> Promise<Int>? in
			reach++
			return self.asyncFail(error)
		}.catch { reason -> Promise<Int>? in

			XCTFail("Never reaches here.")
			return Promise<Void>.reject(reason)
		}).wait()
		XCTAssert(reached, "")
		
		reached = false
		asyncFail(error).then ({ value -> Promise<Void> in
