Skip to content

Commit aa7a84a

Browse files
committed
stop using types before they are defined
1 parent 2618146 commit aa7a84a

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/differentials.jl

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,9 @@ wrapped by `x`, such that mutating `extern(x)` might mutate `x` itself.
4848
abstract type AbstractWirtinger <: AbstractDifferential end
4949

5050
unwrap_wirtinger(x) = x
51-
unwrap_wirtinger(x::Union{Casted,AbstractThunk}) = unwrap_wirtinger(extern(x))
5251

5352
wirtinger_primal(x) = x
54-
wirtinger_primal(x::Union{Casted,AbstractThunk}) =
55-
throw(ArgumentError("`wirtinger_primal` is not defined for $(typeof(x)). Call `unwrap_wirtinger` first")
5653
wirtinger_conjugate(::Any) = Zero()
57-
wirtinger_primal(x::Union{Casted,AbstractThunk}) =
58-
throw(ArgumentError("`wirtinger_conjugate` is not defined for $(typeof(x)). Call `unwrap_wirtinger` first")
5954

6055
extern(x::AbstractWirtinger) = throw(ArgumentError("`AbstractWirtinger` cannot be converted to an external type."))
6156

@@ -214,6 +209,13 @@ end
214209
return element, (externed, new_state)
215210
end
216211

212+
unwrap_wirtinger(x::Union{Casted,AbstractThunk}) = unwrap_wirtinger(extern(x))
213+
214+
wirtinger_primal(x::Union{Casted,AbstractThunk}) =
215+
throw(ArgumentError("`wirtinger_primal` is not defined for $(typeof(x)). Call `unwrap_wirtinger` first"))
216+
wirtinger_primal(x::Union{Casted,AbstractThunk}) =
217+
throw(ArgumentError("`wirtinger_conjugate` is not defined for $(typeof(x)). Call `unwrap_wirtinger` first"))
218+
217219
#####
218220
##### `Thunk`
219221
#####

0 commit comments

Comments
 (0)