Issue 1:
The following MWE shows a @test_throws regression. The throw is not anymore detected (this occurs also with Julia 1.6):

julia> import ParallelStencil.ParallelKernel.parallel_indices

julia> using ParallelStencil.ParallelKernel.Exceptions

julia> using Test

julia> @test_throws ArgumentError parallel_indices(:((ix,iy,iz)), :(f()=(99; if x return y end; return)))
Test Failed at none:1
Expression: parallel_indices(:((ix, iy, iz)), :(f() = begin
99
if x
return y
end
return
end))
Expected: ArgumentError
Thrown: UndefVarError
ERROR: There was an error during testing

If we call the function directly with these arguments, we see that it does throw an ArgumentError:

julia> parallel_indices(:((ix,iy,iz)), :(f()=(99; if x return y end; return)))
ERROR: ArgumentError: invalid kernel in @parallel kernel definition: only one return statement is allowed in the kernel and it must return nothing and be the last statement (required to ensure equal behaviour with different packages for parallellization).
Stacktrace:
[1] remove_return(body::Expr)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/shared.jl:80
[2] parallel_kernel(package::Symbol, numbertype::DataType, indices::Expr, kernel::Expr)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/parallel.jl:130
[3] parallel_indices(::Expr, ::Vararg{Expr, N} where N; package::Symbol, async::Bool)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/parallel.jl:113
[4] parallel_indices(::Expr, ::Vararg{Expr, N} where N)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/parallel.jl:112
[5] top-level scope
@ none:1

Note that the other similar tests in the testsuite, it still works fine, e.g.:

julia> @test_throws ArgumentError parallel_indices(:((ix,iy,iz)), :(f()=(99; return something)))
Test Passed
Thrown: ArgumentError

julia> parallel_indices(:((ix,iy,iz)), :(f()=(99; return something)))
ERROR: ArgumentError: invalid kernel in @parallel kernel definition: the last statement must be a `return nothing` statement ('return' or 'return nothing' or 'nothing') as required for any CUDA kernels.
Stacktrace:
[1] remove_return(body::Expr)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/shared.jl:76
[2] parallel_kernel(package::Symbol, numbertype::DataType, indices::Expr, kernel::Expr)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/parallel.jl:130
[3] parallel_indices(::Expr, ::Vararg{Expr, N} where N; package::Symbol, async::Bool)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/parallel.jl:113
[4] parallel_indices(::Expr, ::Vararg{Expr, N} where N)
@ ParallelStencil.ParallelKernel ~/.julia/dev/ParallelStencil/src/ParallelKernel/parallel.jl:112
[5] top-level scope
@ none:1

Issue 2:
core.jl (setfield on an immutable throws a different error message)

checked.jl (runtime-intrinsic implementation problems?)

~errorshow.jl (dispatch or type-system mistake? shows up as recursive StackOverflow)~~ moving to separate issue #29695

math.jl (incorrect answers in sinh/cosh) duplicate of #29400 / fixed by #29401.