Just updated my testlint project (http://github.com/erica/testlint) to start searching for Swift 3.0 issues. For example, SE-0003 will remove var parameters. So this will no longer compile:
if var testStream = OutputStream(path: aPath) { print("Testing custom output", toStream: &testStream) print("Hello ", terminator: "", toStream: &testStream) print("World", toStream: &testStream) print("Output sent to \(testStream.path)") } else { print("Failed to create custom output") }
Instead, you’ll need to use if-let and create a var inside the success branch.
if let outputStream = OutputStream(path: aPath) { var outputStream = outputStream print("Testing custom output", toStream: &outputStream) print("Hello ", terminator: "", toStream: &outputStream) print("World", toStream: &outputStream) print("Output sent to \(outputStream.path)") } else { print("Failed to create custom output") }
My linter started off as a complete hack, in response to SwiftLint‘s minimal beginnings. I kept working on the repo because (1) I had complete control over it and (2) it offered many more rules that I found valuable. It’s still a complete hack but it’s evolved into a way I can explore style rules in preparation for writing Swift Style.
It is still not a great linter (it goes line by line instead of parsing because I didn’t want to use inter-process hacking and it relies on regex, waving my hands, chicken entrails, etc). However, it’s been an amazing way to start thinking about the way I do and should write Swift.
I think you’d probably get more out of my comments in Linter.m than via daily use. Just thought I’d let you know that it was updated.
Comments are closed.