mirror of
https://github.com/catchorg/Catch2.git
synced 2025-05-01 04:53:53 +00:00
This also required some refactoring of how the pattern matching works. This means that the concepts of include and exclude patterns are no longer unified, with exclusion patterns working as just negation of an inclusion patterns (which led to including hidden tags by default, as they did not match the exclusion), but rather both include and exclude patterns are handled separately. The new logic is that given a filter and a test case, the test case must match _all_ include patterns and _no_ exclude patterns to be included by the filter. Furthermore, if the test case is hidden, then the filter must have at least one include pattern for the test case to be used. Closes #1184
49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
<a id="top"></a>
|
|
# Deprecations and incoming changes
|
|
|
|
This page documents current deprecations and upcoming planned changes
|
|
inside Catch2. The difference between these is that a deprecated feature
|
|
will be removed, while a planned change to a feature means that the
|
|
feature will behave differently, but will still be present. Obviously,
|
|
either of these is a breaking change, and thus will not happen until
|
|
at least the next major release.
|
|
|
|
|
|
## Deprecations
|
|
|
|
### SourceLineInfo::empty()
|
|
|
|
There should be no reason to ever have an empty `SourceLineInfo`, so the
|
|
method will be removed.
|
|
|
|
|
|
## Planned changes
|
|
|
|
### `CHECKED_IF` and `CHECKED_ELSE`
|
|
|
|
To make the `CHECKED_IF` and `CHECKED_ELSE` macros more useful, they will
|
|
be marked as "OK to fail" (`Catch::ResultDisposition::SuppressFail` flag
|
|
will be added), which means that their failure will not fail the test,
|
|
making the `else` actually useful.
|
|
|
|
|
|
### Console Colour API
|
|
|
|
The API for Catch2's console colour will be changed to take an extra
|
|
argument, the stream to which the colour code should be applied.
|
|
|
|
|
|
### Type erasure in the `PredicateMatcher`
|
|
|
|
Currently, the `PredicateMatcher` uses `std::function` for type erasure,
|
|
so that type of the matcher is always `PredicateMatcher<T>`, regardless
|
|
of the type of the predicate. Because of the high compilation overhead
|
|
of `std::function`, and the fact that the type erasure is used only rarely,
|
|
`PredicateMatcher` will no longer be type erased in the future. Instead,
|
|
the predicate type will be made part of the PredicateMatcher's type.
|
|
|
|
|
|
---
|
|
|
|
[Home](Readme.md#top)
|