67 lines
1.8 KiB
Julia
67 lines
1.8 KiB
Julia
# This file is a part of Julia. License is MIT: https://julialang.org/license
|
|
|
|
using Base.Test
|
|
|
|
module DeprecationTests # to test @deprecate
|
|
f() = true
|
|
|
|
# test the Symbol path of @deprecate
|
|
@deprecate f1 f
|
|
@deprecate f2 f false # test that f2 is not exported
|
|
|
|
# test the Expr path of @deprecate
|
|
@deprecate f3() f()
|
|
@deprecate f4() f() false # test that f4 is not exported
|
|
@deprecate f5(x::T) where T f()
|
|
|
|
# test deprecation of a constructor
|
|
struct A{T} end
|
|
@deprecate A{T}(x::S) where {T, S} f()
|
|
end # module
|
|
module Foo1234
|
|
export foo1234
|
|
foo1234(x) = x+1
|
|
end
|
|
|
|
# issue #21972
|
|
struct T21972
|
|
@noinline function T21972()
|
|
Base.depwarn("something", :T21972)
|
|
new()
|
|
end
|
|
end
|
|
|
|
@testset "@deprecate" begin
|
|
using .DeprecationTests
|
|
using .Foo1234
|
|
@test foo1234(3) == 4
|
|
|
|
# enable when issue #22043 is fixed
|
|
# @test @test_warn "f1 is deprecated, use f instead." f1()
|
|
# @test @test_nowarn f1()
|
|
|
|
# @test_throws UndefVarError f2() # not exported
|
|
# @test @test_warn "f2 is deprecated, use f instead." DeprecationTests.f2()
|
|
# @test @test_nowarn DeprecationTests.f2()
|
|
|
|
# @test @test_warn "f3() is deprecated, use f() instead." f3()
|
|
# @test @test_nowarn f3()
|
|
|
|
# @test_throws UndefVarError f4() # not exported
|
|
# @test @test_warn "f4() is deprecated, use f() instead." DeprecationTests.f4()
|
|
# @test @test_nowarn DeprecationTests.f4()
|
|
|
|
# @test @test_warn "f5(x::T) where T is deprecated, use f() instead." f5(1)
|
|
# @test @test_nowarn f5(1)
|
|
|
|
# @test @test_warn "A{T}(x::S) where {T, S} is deprecated, use f() instead." A{Int}(1.)
|
|
# @test @test_nowarn A{Int}(1.)
|
|
|
|
# issue #21972
|
|
@noinline function f21972()
|
|
T21972()
|
|
end
|
|
@test_warn "deprecated" f21972()
|
|
@test_nowarn f21972()
|
|
end
|