{"push_id":1021532594,"size":1,"distinct_size":1,"ref":"refs/heads/Swift3.0_with_tests_Linux2","head":"9de46b4ad94ad814817cce81d174fa0a39d5f9f6","before":"76f0843245dfe463f4b2e2ab249648bc25d172ec","commits":[{"sha":"9de46b4ad94ad814817cce81d174fa0a39d5f9f6","author":{"email":"de108c8a47802ed442b2fec1eb9755429bf0a59a@il.ibm.com","name":"Vadim Eisenberg"},"message":"IBM-Swift/Kitura#169 Rewrote Boxing to compile on Linux\n\n It is not possible to override methods in extensions. Due to that, making\n NSObject and its subclasses implement MustacheBoxable and override mustacheBox\n methods does not compile. To overcome this, the following strategy is used:\n\n 1. NSObject only made MustacheBoxable. Its mustacheBox implements all the logic\n of boxing of subclasses of NSObject. Subclasses of NSObject are not\n MustacheBoxable and they do not implement mustacheBox method. Instead, added\n Box methods per each relevant NSObject subclass\n 2. The classes that are not subclasses of NSObject left AS IS\n 3. MustacheBox changed to not inherit from NSObject\n 4. Handling of AnyObject changed to handling Any. On OS X, everything is AnyObject\n when import Foundation is made. In general case, Any should be handled and not only\n AnyObject. To this end, AnyObject was replaced by Any in the file and BoxAnyObject\n changed to BoxAny\n 5. Swift reflection (Mirror) is used in BoxAny to cast Any parameter to its\n correct type","distinct":true,"url":"https://api.github.com/repos/IBM-Swift/GRMustache.swift/commits/9de46b4ad94ad814817cce81d174fa0a39d5f9f6"}]}