I saw the issue #83 was implemented however I had some observations.
Given a source file source.swift;
#if DEBUG
import X
#elseif RELEASE
import Y
#endif
/// @mockable
protocol SwiftTest {}
mockolo -srcs source.swift -d Mock.swift && cat Mock.swift outputs;
#if DEBUG
import X
#endif
#if RELEASE
import Y
#endif
which is reflected correctly.
However;
#if DEBUG
import X
#else
import Y
#endif
/// @mockable
protocol SwiftTest {}
outputs;
import X
import Y
#if DEBUG
import X
#endif
which is incorrect. import Y should only be there for #else case.
Another observation (I don't know if this is supported or not) I had was compiler directives are not working inside the protocol definitions.
/// @mockable
protocol SwiftCompilerTest {
#if compiler(<4.0)
func swiftLessThan4()
#else
func swift()
#endif
}
outputs;
class SwiftCompilerTestMock: SwiftCompilerTest {
init() { }
#if compiler(<4.0)
private(set) var swiftLessThan4CallCount = 0
var swiftLessThan4Handler: (() -> ())?
func swiftLessThan4() {
swiftLessThan4CallCount += 1
if let swiftLessThan4Handler = swiftLessThan4Handler {
swiftLessThan4Handler()
}
}
#endif
}
func swift() seems to be completely ignored in this case.
- mockolo version :
2.1.1
- swift version:
swift: swiftlang-6.0.0.9.10 clang-1600.0.26.2
I saw the issue #83 was implemented however I had some observations.
Given a source file
source.swift;mockolo -srcs source.swift -d Mock.swift && cat Mock.swiftoutputs;which is reflected correctly.
However;
outputs;
which is incorrect.
import Yshould only be there for#elsecase.Another observation (I don't know if this is supported or not) I had was compiler directives are not working inside the
protocoldefinitions.outputs;
func swift()seems to be completely ignored in this case.2.1.1swift: swiftlang-6.0.0.9.10 clang-1600.0.26.2