Skip to content

Commit 2d4c1ef

Browse files
authored
Merge pull request #876 from Quick/remove-old-matcher-api
[BREAKING] Remove old Matcher API
2 parents 8b9127d + 4b8a9d5 commit 2d4c1ef

14 files changed

+58
-841
lines changed

Nimble.xcodeproj/project.pbxproj

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,29 +36,23 @@
3636
1F1871C91CA89EDB00A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; };
3737
1F1871CA1CA89EDB00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; };
3838
1F1871CB1CA89EDB00A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; };
39-
1F1871CC1CA89EDB00A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; };
4039
1F1871D21CA89EEE00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; };
4140
1F1871D31CA89EEE00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; };
4241
1F1871D41CA89EEE00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; };
4342
1F1871D61CA89EEF00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; };
4443
1F1871D71CA89EEF00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; };
4544
1F1871D81CA89EEF00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; };
4645
1F1871D91CA89EF100A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; };
47-
1F1871DA1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; };
4846
1F1871DB1CA89EF100A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; };
49-
1F1871DC1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; };
5047
1F1871DD1CA89EF500A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; };
5148
1F1871DE1CA89EF500A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; };
5249
1F1871DF1CA89EF500A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; };
5350
1F1871E01CA89EF600A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; };
5451
1F1871E11CA89EF600A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; };
5552
1F1871E21CA89EF600A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; };
5653
1F1871E41CA89FB600A34BF2 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* Async.swift */; };
57-
1F1871E61CA89FCD00A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; };
5854
1F1871E71CA8A18400A34BF2 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* Async.swift */; };
5955
1F1871E81CA8A18400A34BF2 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* Async.swift */; };
60-
1F1871E91CA8A18700A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; };
61-
1F1871EB1CA8A18800A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; };
6256
1F1A742F1940169200FFFC47 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1A742E1940169200FFFC47 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; };
6357
1F1A74351940169200FFFC47 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F1A74291940169200FFFC47 /* Nimble.framework */; };
6458
1F1B5AD41963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; };
@@ -360,9 +354,6 @@
360354
B20058C620E92CE400C1264D /* ElementsEqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20058C420E92CE400C1264D /* ElementsEqualTest.swift */; };
361355
B20058C720E92CE400C1264D /* ElementsEqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20058C420E92CE400C1264D /* ElementsEqualTest.swift */; };
362356
CD3D9A79232647BC00802581 /* CwlCatchBadInstructionPosix.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD3D9A78232647BC00802581 /* CwlCatchBadInstructionPosix.swift */; };
363-
CD4C8F092464365300A7BDE0 /* SynchronousDeprecatedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD4C8F082464365300A7BDE0 /* SynchronousDeprecatedTest.swift */; };
364-
CD4C8F0A2464365300A7BDE0 /* SynchronousDeprecatedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD4C8F082464365300A7BDE0 /* SynchronousDeprecatedTest.swift */; };
365-
CD4C8F0B2464365300A7BDE0 /* SynchronousDeprecatedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD4C8F082464365300A7BDE0 /* SynchronousDeprecatedTest.swift */; };
366357
CD79C99E1D2CC832004B6F9A /* ObjCAsyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */; };
367358
CD79C99F1D2CC835004B6F9A /* ObjCSyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */; };
368359
CD79C9A01D2CC839004B6F9A /* ObjCBeAnInstanceOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */; };
@@ -514,10 +505,8 @@
514505
1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NMBStringify.h; sourceTree = "<group>"; };
515506
1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NMBStringify.m; sourceTree = "<group>"; };
516507
1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NMBExpectation.swift; sourceTree = "<group>"; };
517-
1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NMBObjCMatcher.swift; sourceTree = "<group>"; };
518508
1F1871CD1CA89EE000A34BF2 /* ExceptionCapture.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExceptionCapture.swift; sourceTree = "<group>"; };
519509
1F1871E31CA89FB600A34BF2 /* Async.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = "<group>"; };
520-
1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatcherFunc.swift; sourceTree = "<group>"; };
521510
1F1A74291940169200FFFC47 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; };
522511
1F1A742D1940169200FFFC47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
523512
1F1A742E1940169200FFFC47 /* Nimble.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Nimble.h; sourceTree = "<group>"; };
@@ -634,7 +623,6 @@
634623
B20058C020E92C7500C1264D /* ElementsEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElementsEqual.swift; sourceTree = "<group>"; };
635624
B20058C420E92CE400C1264D /* ElementsEqualTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElementsEqualTest.swift; sourceTree = "<group>"; };
636625
CD3D9A78232647BC00802581 /* CwlCatchBadInstructionPosix.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstructionPosix.swift; sourceTree = "<group>"; };
637-
CD4C8F082464365300A7BDE0 /* SynchronousDeprecatedTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronousDeprecatedTest.swift; sourceTree = "<group>"; };
638626
CDBC39B82462EA7D00069677 /* PredicateTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PredicateTest.swift; sourceTree = "<group>"; };
639627
CDC157902511957100EAA480 /* DSLTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSLTest.swift; sourceTree = "<group>"; };
640628
CDFB6A1E1F7E07C600AD8CC7 /* CwlCatchException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchException.swift; sourceTree = "<group>"; };
@@ -792,7 +780,6 @@
792780
CDC157902511957100EAA480 /* DSLTest.swift */,
793781
CDBC39B82462EA7D00069677 /* PredicateTest.swift */,
794782
1F0648D31963AAB2001F9C46 /* SynchronousTest.swift */,
795-
CD4C8F082464365300A7BDE0 /* SynchronousDeprecatedTest.swift */,
796783
1F925EE5195C121200ED456B /* AsynchronousTest.swift */,
797784
965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */,
798785
6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */,
@@ -861,7 +848,6 @@
861848
1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */,
862849
1F1871BA1CA89E2500A34BF2 /* NonObjectiveC */,
863850
1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */,
864-
1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */,
865851
);
866852
path = Adapters;
867853
sourceTree = "<group>";
@@ -892,7 +878,6 @@
892878
1FD8CD1C1968AB07008ED995 /* Equal.swift */,
893879
472FD1341B9E085700C7B8DA /* HaveCount.swift */,
894880
DDB4D5EC19FE43C200E9D9FE /* Match.swift */,
895-
1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */,
896881
1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */,
897882
AE7ADE441C80BF8000B94CD3 /* MatchError.swift */,
898883
1FCF91521C61C8A400B15DCB /* PostNotification.swift */,
@@ -1366,7 +1351,6 @@
13661351
62FB326323B78BF90047BED9 /* BeginWithPrefix.swift in Sources */,
13671352
1FD8CD5A1968AB07008ED995 /* Equal.swift in Sources */,
13681353
1FD8CD4C1968AB07008ED995 /* BeLessThan.swift in Sources */,
1369-
1F1871CC1CA89EDB00A34BF2 /* NMBObjCMatcher.swift in Sources */,
13701354
1FD8CD461968AB07008ED995 /* BeGreaterThan.swift in Sources */,
13711355
F8A1BE2F1CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */,
13721356
1F1871C61CA89EDB00A34BF2 /* DSL.m in Sources */,
@@ -1382,7 +1366,6 @@
13821366
1FD8CD441968AB07008ED995 /* BeginWith.swift in Sources */,
13831367
1FD8CD4A1968AB07008ED995 /* BeIdenticalTo.swift in Sources */,
13841368
1FE661581E6574E30035F243 /* ExpectationMessage.swift in Sources */,
1385-
1F1871E61CA89FCD00A34BF2 /* MatcherFunc.swift in Sources */,
13861369
1FD8CD421968AB07008ED995 /* BeEmpty.swift in Sources */,
13871370
1F1871E41CA89FB600A34BF2 /* Async.swift in Sources */,
13881371
1F1871CA1CA89EDB00A34BF2 /* NMBStringify.m in Sources */,
@@ -1439,7 +1422,6 @@
14391422
1F925EF9195C175000ED456B /* BeNilTest.swift in Sources */,
14401423
CDC157922511957100EAA480 /* DSLTest.swift in Sources */,
14411424
7A6AB2C31E7F547E00A2F694 /* ToSucceedTest.swift in Sources */,
1442-
CD4C8F0A2464365300A7BDE0 /* SynchronousDeprecatedTest.swift in Sources */,
14431425
A8A3B707207368F000E25A08 /* ObjCSatisfyAllOfTest.m in Sources */,
14441426
1F4A56701A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */,
14451427
1F4A56971A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */,
@@ -1513,7 +1495,6 @@
15131495
1FCF91551C61C8A400B15DCB /* PostNotification.swift in Sources */,
15141496
1F5DF1831BDCA0F500C3A531 /* Contain.swift in Sources */,
15151497
1F5DF1851BDCA0F500C3A531 /* Equal.swift in Sources */,
1516-
1F1871DC1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */,
15171498
F8A1BE311CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */,
15181499
1FE661591E6574E30035F243 /* ExpectationMessage.swift in Sources */,
15191500
1FA0C4011E30B14500623165 /* Predicate.swift in Sources */,
@@ -1526,7 +1507,6 @@
15261507
1F5DF16D1BDCA0F500C3A531 /* AdapterProtocols.swift in Sources */,
15271508
1F5DF17B1BDCA0F500C3A531 /* BeginWith.swift in Sources */,
15281509
1F5DF17E1BDCA0F500C3A531 /* BeIdenticalTo.swift in Sources */,
1529-
1F1871E91CA8A18700A34BF2 /* MatcherFunc.swift in Sources */,
15301510
1F5DF17A1BDCA0F500C3A531 /* BeEmpty.swift in Sources */,
15311511
1F5DF18C1BDCA0F500C3A531 /* Await.swift in Sources */,
15321512
1F1871D81CA89EEF00A34BF2 /* NMBStringify.m in Sources */,
@@ -1581,7 +1561,6 @@
15811561
1F5DF1921BDCA10200C3A531 /* AsynchronousTest.swift in Sources */,
15821562
CDC157932511957100EAA480 /* DSLTest.swift in Sources */,
15831563
1F5DF1A91BDCA10200C3A531 /* MatchTest.swift in Sources */,
1584-
CD4C8F0B2464365300A7BDE0 /* SynchronousDeprecatedTest.swift in Sources */,
15851564
A8A3B708207368F100E25A08 /* ObjCSatisfyAllOfTest.m in Sources */,
15861565
1F5DF1A81BDCA10200C3A531 /* HaveCountTest.swift in Sources */,
15871566
1F5DF1971BDCA10200C3A531 /* AllPassTest.swift in Sources */,
@@ -1657,7 +1636,6 @@
16571636
1FD8CD4D1968AB07008ED995 /* BeLessThan.swift in Sources */,
16581637
1FD8CD471968AB07008ED995 /* BeGreaterThan.swift in Sources */,
16591638
F8A1BE301CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */,
1660-
1F1871DA1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */,
16611639
1FD8CD311968AB07008ED995 /* AdapterProtocols.swift in Sources */,
16621640
1F1871D21CA89EEE00A34BF2 /* DSL.m in Sources */,
16631641
AE7ADE461C80BF8000B94CD3 /* MatchError.swift in Sources */,
@@ -1671,7 +1649,6 @@
16711649
1FD8CD491968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */,
16721650
1FE661571E6574E30035F243 /* ExpectationMessage.swift in Sources */,
16731651
1FD8CD451968AB07008ED995 /* BeginWith.swift in Sources */,
1674-
1F1871EB1CA8A18800A34BF2 /* MatcherFunc.swift in Sources */,
16751652
1FD8CD4B1968AB07008ED995 /* BeIdenticalTo.swift in Sources */,
16761653
1FD8CD431968AB07008ED995 /* BeEmpty.swift in Sources */,
16771654
1F1871D41CA89EEE00A34BF2 /* NMBStringify.m in Sources */,
@@ -1728,7 +1705,6 @@
17281705
1F4A56771A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */,
17291706
CDC157912511957100EAA480 /* DSLTest.swift in Sources */,
17301707
1F925EFA195C175000ED456B /* BeNilTest.swift in Sources */,
1731-
CD4C8F092464365300A7BDE0 /* SynchronousDeprecatedTest.swift in Sources */,
17321708
7A6AB2C21E7F547E00A2F694 /* ToSucceedTest.swift in Sources */,
17331709
A8A3B706207368EF00E25A08 /* ObjCSatisfyAllOfTest.m in Sources */,
17341710
1F4A56711A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */,

README.md

Lines changed: 2 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,76 +1600,8 @@ Previously (`<7.0.0`), Nimble supported matchers via the following types:
16001600
- `NonNilMatcherFunc`
16011601
- `MatcherFunc`
16021602

1603-
All of those types have been replaced by `Predicate`. While migrating can be a
1604-
lot of work, Nimble currently provides several steps to aid migration of your
1605-
custom matchers:
1606-
1607-
### Minimal Step - Use `.predicate`
1608-
1609-
Nimble provides an extension to the old types that automatically naively
1610-
converts those types to the newer `Predicate`.
1611-
1612-
```swift
1613-
// Swift
1614-
public func beginWith<S: Sequence>(_ startingElement: S.Element) -> Predicate<S> where S.Element: Equatable {
1615-
return NonNilMatcherFunc { actualExpression, failureMessage in
1616-
failureMessage.postfixMessage = "begin with <\(startingElement)>"
1617-
if let actualValue = actualExpression.evaluate() {
1618-
var actualGenerator = actualValue.makeIterator()
1619-
return actualGenerator.next() == startingElement
1620-
}
1621-
return false
1622-
}.predicate
1623-
}
1624-
```
1625-
1626-
This is the simpliest way to externally support `Predicate` which allows easier
1627-
composition than the old Nimble matcher interface, with minimal effort to change.
1628-
1629-
### Convert to use `Predicate` Type with Old Matcher Constructor
1630-
1631-
The second most convenient step is to utilize special constructors that
1632-
`Predicate` supports that closely align to the constructors of the old Nimble
1633-
matcher types.
1634-
1635-
```swift
1636-
// Swift
1637-
public func beginWith<S: Sequence>(_ startingElement: S.Element) -> Predicate<S> where S.Element: Equatable {
1638-
return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in
1639-
failureMessage.postfixMessage = "begin with <\(startingElement)>"
1640-
if let actualValue = actualExpression.evaluate() {
1641-
var actualGenerator = actualValue.makeIterator()
1642-
return actualGenerator.next() == startingElement
1643-
}
1644-
return false
1645-
}
1646-
}
1647-
```
1648-
1649-
This allows you to completely drop the old types from your code, although the
1650-
intended behavior may alter slightly to what is desired.
1651-
1652-
### Convert to `Predicate` Type with Preferred Constructor
1653-
1654-
Finally, you can convert to the native `Predicate` format using one of the
1655-
constructors not used to assist in the migration.
1656-
1657-
### Deprecation Roadmap
1658-
1659-
Nimble 7 introduces `Predicate` but will support the old types with warning
1660-
deprecations. A couple major releases of Nimble will remain backwards
1661-
compatible with the old matcher api, although new features may not be
1662-
backported.
1663-
1664-
The deprecating plan is a 3 major versions removal. Which is as follows:
1665-
1666-
1. Introduce new `Predicate` API, deprecation warning for old matcher APIs.
1667-
(Nimble `v7.x.x` and `v8.x.x`)
1668-
2. Introduce warnings on migration-path features (`.predicate`,
1669-
`Predicate`-constructors with similar arguments to old API). (Nimble
1670-
`v9.x.x`)
1671-
3. Remove old API. (Nimble `v10.x.x`)
1672-
1603+
All of those types have been replaced by `Predicate`. The old API has been
1604+
removed completely in Nimble v10.
16731605

16741606
# Installing Nimble
16751607

0 commit comments

Comments
 (0)