Commit Graph

282 Commits

Author SHA1 Message Date
Sergej Jaskiewicz b6aea2957a Use proper xcconfigs to fix CI 2019-11-29 22:06:34 +03:00
Sergej Jaskiewicz 9219c8841c Allow enumerating fields of value types 2019-11-29 21:08:51 +03:00
Sergej Jaskiewicz 5a41e2976c Useheaders from Swift repo for runtime introspection 2019-11-29 19:05:13 +03:00
Sergej Jaskiewicz e48d5d4492 Move headers into folders 2019-11-29 15:58:42 +03:00
Sergej Jaskiewicz 9b81672df8 Add dedicated tests for enumerateFields 2019-11-29 15:41:58 +03:00
Sergej Jaskiewicz d5944290e6 Make ObservableObject.objectWillChange available in Swift 5.0 2019-11-26 17:56:01 +03:00
Sergej Jaskiewicz a3e361a29a Add TrailingObjects.h
[skip ci]
2019-11-26 17:51:08 +03:00
Sergej Jaskiewicz 0dc2015ec6 Add SWIFT_VERSION setting to Combine-Compatibility.xcconfig 2019-11-26 17:51:08 +03:00
Sergej Jaskiewicz 1e6a7cd3b6 [WIP] Support generic ObservableObjects 2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz acb1b5996a [ObservableObject] Add a test for NSObject subclass 2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz 77e7ff75fb Compute OPENCOMBINE_SWIFT_CLASS_IS_SWIFT_MASK at runtime
based on the OS version.
2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz 26d6dc9971 [COpenCombineHelpers] Support C++ 14
The CI complains about missing headers, so let's reimplement std::string_view ourselves.
2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz 280ea0ac9a Fix ObservableObject behavior for subclasses of resilient classes 2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz 8798739caa [WIP] [ObservableObject] Make some tests pass 2019-11-26 17:49:07 +03:00
Sergej Jaskiewicz c6c79144c5 Implement ObservableObject protocol 2019-11-26 17:48:50 +03:00
Sergej Jaskiewicz 7c5a76cf2b Fix @Published (#112) 2019-11-26 17:46:01 +03:00
Max Desiatov 668c292245 Add more tests for the Future publisher (#111) 2019-11-26 14:23:51 +03:00
Max Desiatov 981ab4fa09 Add Future publisher with tests (#107) 2019-11-26 02:15:43 +03:00
Sergej Jaskiewicz 8cf71e0122 If Multicast receives subscription twice, cancel the second one (#110) 2019-11-25 16:52:55 +03:00
Max Desiatov 130125cb66 Use demand.assertNonZero() in PassthroughSubject (#108) 2019-11-24 21:44:14 +03:00
Daniel Peter 7b3ceae666 CocoaPods support (#103) 2019-11-24 21:17:13 +03:00
Max Desiatov 56202b1663 Fix typo in FilterProducer.swift
> subsription
2019-11-22 20:12:34 +03:00
Sergej Jaskiewicz d0a02de7c5 Warn about unguarded availability in C++ code. Fix the warnings. 2019-11-21 20:18:28 +03:00
Sergej Jaskiewicz c8058edc5f Test that Sink calls the callbacks even without upstream subscription 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 8b685f78a3 Test that ReplaceError saves demand until subscription arrives 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 0816abe33c Remove superfluous 'disable' swiftlint command 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz b6c7560f4c Use pthread_mutex_t instead of std::mutex on non-Darwin platforms
std::mutex doesn't guarantee error checks.
With pthread, we can enable them manually.

Error checks are essential, since the client code may bay be crafted
in such a way that causes a non-recursive lock to be recursively
acuired, which is undefined behavior with std::mutex.
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 7a9e8b22d2 Bump iOS version for compatibility tests in CircleCI config 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 26f9acd75a Reimplement FlatMap to make all the tests pass 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 4c42b434ca Add more tests for FlatMap 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 8afe945325 Test that CombineIdentifier uses UInt64 under the hood 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz eb879213ef Automatically confirm apt install 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz e402fb3980 Remove redundant Self 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 4f96378c02 Remove OperatorSubscription class 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 243f3d200e Implement PrefixWhile, TryPrefixWhile using FilterProducer 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz f1fb5552b5 Implement RemoveDuplicates, TryRemoveDuplicates using FilterProducer 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz bfd875ccba Simplify CompactMap and TryCompactMap using FilterProducer 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 27da28f378 Simplify Filter and TryFilter using FilterProducer 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz cba3a69e74 Implement FilterProducer 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz d634a76c39 A more robust test for Subscribers.Assign 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz b5e31a43ef Fix ReplaceError subscription behavior 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 1bb3583a36 More tests for contract violations in operators
- test the behavior when a value arrives earlier than the subscription
- test the behavior when a completion arrives earlier than
  the subscription
- test the behavior when requesting before a subscription arrives
- test the behavior when cancelling before a subscription arrives
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz 449b8eef48 Test that Record doesn't finilize its Recording 2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz d4bdd83a00 Implement the Record publisher 2019-11-12 17:31:29 +03:00
Sergej Jaskiewicz f1cc94adff Implement Publishers.Output 2019-11-11 20:26:31 +03:00
Sergej Jaskiewicz 5e1e10a780 Add CircleCI badge 2019-11-10 15:00:50 +03:00
Sergej Jaskiewicz 5b7358111c Remove redundant 2019-11-10 15:00:50 +03:00
Sergej Jaskiewicz 5f90c4c85f Add Gemfile.lock 2019-11-10 15:00:50 +03:00
Sergej Jaskiewicz 0dec30fcad Switch from Travis CI to CircleCI.
CircleCI has significantly faster builds. They also update their build
machines sooner than Travis CI.
2019-11-09 15:26:50 +03:00
Sergej Jaskiewicz a5ec9723e2 Make the tests pass on 32-bit platforms 2019-11-09 15:26:50 +03:00