Modules might work but they bring other annoyances... I would be fine with
a warning and just ignoring the whole type block.
Similar to:
julia> const a = 1
1
julia> const a = 2
WARNING: redefining constant a
2
couldn't it be:
julia> type Foo2{T}
a::T
end
julia> type Foo2{T}
a::T
end
WARNING: did not redefine constant Foo2
On Thursday, February 11, 2016 at 6:16:46 PM UTC+1, Stefan Karpinski wrote:
>
> Defining types in a module and then reloading the module helps. The
> bindings get messy though, so it's best to qualify all accesses when you're
> developing like that. This is kind of an annoyance – not sure how hard it
> would be to fix but it should be doable.
>
> On Thu, Feb 11, 2016 at 12:10 PM, Kristoffer Carlsson <[email protected]
> <javascript:>> wrote:
>
>> I have a file that defines a type and a few functions. Sometimes I want
>> to reload this file in the REPL to update some modified functions in the
>> file. If the type is parameterized then this will fail even though the type
>> definition does not change.
>>
>> Example:
>>
>>
>> julia> type Foo
>> a::Int
>> end
>>
>> julia> type Foo
>> a::Int
>> end
>>
>> julia> type Foo2{T}
>> a::T
>> end
>>
>> julia> type Foo2{T}
>> a::T
>> end
>> ERROR: invalid redefinition of constant Foo2
>>
>>
>> Is there a good way to work around this? I don't really want to
>> workspace() all the time because then I have to compile everything again.
>>
>
>