Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Due to problems outlined in #302, I ended up adding more virtual time tests and found quite some behaviors weren't working as expected. Since #222 is still open, and it's something I wanted to tackle, and since the high level of inheritance in operators like
switchAll
made debugging a little painful, I opted for a refactor.Unfortunately, refactoring merge touched a lot of other operators (
concat
,concatAll
,switchAll
,switchLatest
,switchLatestTo
,flatMap
,flatMapTo
,merge
,mergeAll
,Observable.merge
,Observable.concat
, andexpand
)The basics of the changes are as follows:
expand
has it's own standalone subscriberflatMap
has it's own standalone subscriberswitchAll
has it's own standalone subscribermergeAll
has it's own standalone subscriberswitchLatest
(which should beswitchMap
) inherits fromflatMap
subscriberflatMapTo
inherits fromflatMap
subscriberswitchLatestTo
inherits fromflatMapTo
subscriberother changes were just changes to calls to reflect better typing information.
Also, I had to fix a bug in the TestScheduler that was having
hot
observables subscribe and emit before the expectation observables did. This meant that if a subject (hot observable) emitted on frame 0, it wouldn't be provided to the expectation observable being tested because it hadn't subscribed yet.sincerest apologies for such a large PR
... at least I broke it into several commits.