* Improve compilation time
Before this change, `trailingClosure` took 8.6s to type check.
After this change, it takes 31ms.
* Speed up type checking `isDecimal(number:)`
Before: 377ms
After: 2ms
* Speed up type checking testViolationMessageForExpressibleByIntegerLiteral()
Before: 285ms
After: 175ms
* Fix OSSCheck
More than just rules are in `Source/SwiftLintFramework/Rules/`
* Shim XCTUnwrap for Swift 5.0
Ruby's documentation mentions that `popen3` requires that you flush
stderr to prevent deadlocking:
> You should be careful to avoid deadlocks. Since pipes are fixed length
> buffers, ::popen3(“prog”) {|i, o, e, t| o.read } deadlocks if the
> program generates too much output on stderr. You should read stdout and
> stderr simultaneously (using threads or IO.select). However, if you
> don't need stderr output, you can use ::popen2.
The MIT license doesn't require that all files be prepended with this
licensing or copyright information. Realm confirmed that they're ok with this
change. This will enable some companies to contribute to SwiftLint and the
date & authorship information will remain accessible via git source control.
- Use same build directory to `branch` and `master` for incremental building
- Add options:
```terminal.sh-session
$ script/oss-check --help
Usage: oss-check [options]
--branch BRANCH compares the performance of BRANCH against 'master'
--iterations N iterates lint N times on each repositories
--skip-clean skip cleaning on completion
-v, --[no-]verbose Run verbosely
```