22# extensions":
33#
44# * They emit syntactic forms with special `Kind`s and semantics known to
5- # lowering
5+ # lowering
66# * There is no other Julia surface syntax for these `Kind`s.
77
88# In order to implement these here without getting into bootstrapping problems,
99# we just write them as plain old macro-named functions and add the required
1010# __context__ argument ourselves.
1111#
12- # TODO : @inline, @noinline, @inbounds, @simd, @ccall, @isdefined, @ assume_effects
12+ # TODO : @inline, @noinline, @inbounds, @simd, @ccall, @assume_effects
1313#
1414# TODO : Eventually move these to proper `macro` definitions and use
1515# `JuliaLowering.include()` or something. Then we'll be in the fun little world
@@ -29,9 +29,11 @@ function _apply_nospecialize(ctx, ex)
2929 end
3030end
3131
32- function Base. var"@nospecialize" (__context__:: MacroContext , ex)
32+ function Base. var"@nospecialize" (__context__:: MacroContext , ex, exs ... )
3333 _apply_nospecialize (__context__, ex)
34+ Base. var"@nospecialize" (__context__, exs... )
3435end
36+ Base. var"@nospecialize" (__context__:: MacroContext ) = nothing # TODO implement this property
3537
3638function Base. var"@atomic" (__context__:: MacroContext , ex)
3739 @chk kind (ex) == K " Identifier" || kind (ex) == K " ::" (ex, " Expected identifier or declaration" )
@@ -220,4 +222,3 @@ function var"@inert"(__context__::MacroContext, ex)
220222 @chk kind (ex) == K " quote"
221223 @ast __context__ __context__. macrocall [K " inert" ex]
222224end
223-
0 commit comments