11using JuliaSyntax: JuliaSyntax, SyntaxNode, children, child, sourcetext, kind, @K_str
2- using TypedSyntax: TypedSyntax, TypedSyntaxNode, getsrc
2+ using TypedSyntax: TypedSyntax, TypedSyntaxNode
33using Dates, InteractiveUtils, Test
44
55has_name_typ (node, name:: Symbol , @nospecialize (T)) = kind (node) == K " Identifier" && node. val === name && node. typ === T
@@ -15,8 +15,7 @@ include("test_module.jl")
1515 """
1616 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN1.jl" )
1717 TSN. eval (Expr (rootnode))
18- src, _, mi = getsrc (TSN. f, (Float32, Int, Float64))
19- tsn = TypedSyntaxNode (rootnode, src, mi)
18+ tsn = TypedSyntaxNode (rootnode, TSN. f, (Float32, Int, Float64))
2019 sig, body = children (tsn)
2120 @test children (sig)[2 ]. typ === Float32
2221 @test children (sig)[3 ]. typ === Int
@@ -33,8 +32,7 @@ include("test_module.jl")
3332 """
3433 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN2.jl" )
3534 TSN. eval (Expr (rootnode))
36- src, _, mi = getsrc (TSN. g, (Int16, Int16, Int32))
37- tsn = TypedSyntaxNode (rootnode, src, mi)
35+ tsn = TypedSyntaxNode (rootnode, TSN. g, (Int16, Int16, Int32))
3836 sig, body = children (tsn)
3937 @test length (children (sig)) == 4
4038 @test children (body)[2 ]. typ === Int32
@@ -46,8 +44,7 @@ include("test_module.jl")
4644 st = " math(x) = x + sin(x + π / 4)"
4745 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN2.jl" )
4846 TSN. eval (Expr (rootnode))
49- src, _, mi = getsrc (TSN. math, (Int,))
50- tsn = TypedSyntaxNode (rootnode, src, mi)
47+ tsn = TypedSyntaxNode (rootnode, TSN. math, (Int,))
5148 sig, body = children (tsn)
5249 @test has_name_typ (child (body, 1 ), :x , Int)
5350 @test has_name_typ (child (body, 3 , 2 , 1 ), :x , Int)
@@ -70,8 +67,7 @@ include("test_module.jl")
7067 st = " math2(x) = sin(x) + sin(x)"
7168 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN2.jl" )
7269 TSN. eval (Expr (rootnode))
73- src, _, mi = getsrc (TSN. math2, (Int,))
74- tsn = TypedSyntaxNode (rootnode, src, mi)
70+ tsn = TypedSyntaxNode (rootnode, TSN. math2, (Int,))
7571 sig, body = children (tsn)
7672 @test body. typ === Float64
7773 @test_broken child (body, 1 ). typ === Float64
@@ -91,8 +87,7 @@ include("test_module.jl")
9187 )
9288 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN3.jl" )
9389 TSN. eval (Expr (rootnode))
94- src, _, mi = getsrc (TSN. firstfirst, (Vector{Vector{Real}},))
95- tsn = TypedSyntaxNode (rootnode, src, mi)
90+ tsn = TypedSyntaxNode (rootnode, TSN. firstfirst, (Vector{Vector{Real}},))
9691 sig, body = children (tsn)
9792 @test child (body, idxsinner... ). typ === nothing
9893 @test child (body, idxsouter... ). typ === Vector{Real}
@@ -150,8 +145,7 @@ include("test_module.jl")
150145 """
151146 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN4.jl" )
152147 TSN. eval (Expr (rootnode))
153- src, rt, mi = getsrc (TSN. setlist!, (Vector{Vector{Float32}}, Vector{Vector{UInt8}}, Int, Int))
154- tsn = TypedSyntaxNode (rootnode, src, mi)
148+ tsn = TypedSyntaxNode (rootnode, TSN. setlist!, (Vector{Vector{Float32}}, Vector{Vector{UInt8}}, Int, Int))
155149 sig, body = children (tsn)
156150 nodelist = child (body, 1 , 2 , 1 , 1 ) # `listget`
157151 @test sourcetext (nodelist) == " listget" && nodelist. typ === Vector{Vector{UInt8}}
@@ -175,8 +169,7 @@ include("test_module.jl")
175169 """
176170 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN5.jl" )
177171 TSN. eval (Expr (rootnode))
178- src, rt, mi = getsrc (TSN. callfindmin, (Vector{Float64},))
179- tsn = TypedSyntaxNode (rootnode, src, mi)
172+ tsn = TypedSyntaxNode (rootnode, TSN. callfindmin, (Vector{Float64},))
180173 sig, body = children (tsn)
181174 t = child (body, 1 , 1 )
182175 @test kind (t) == K " tuple"
@@ -280,7 +273,8 @@ include("test_module.jl")
280273 """
281274 rootnode = JuliaSyntax. parsestmt (SyntaxNode, st; filename= " TSN6.jl" )
282275 TSN. eval (Expr (rootnode))
283- src, rt, mi = getsrc (TSN. avoidzero, (Int,))
276+ inferred_result = TypedSyntax. get_inferred_result (TSN. avoidzero, (Int,))
277+ src, rt, mi = inferred_result. src, inferred_result. rt, inferred_result. mi
284278 # src looks like this:
285279 # %1 = Main.TSN.:(var"#avoidzero#6")(true, #self#, x)::Float64
286280 # return %1
@@ -290,8 +284,7 @@ include("test_module.jl")
290284 @test rt === Float64
291285 # Try the kwbodyfunc
292286 m = which (TSN. avoidzero, (Int,))
293- src, rt, mi = getsrc (Base. bodyfunction (m), (Bool, typeof (TSN. avoidzero), Int,))
294- tsn = TypedSyntaxNode (rootnode, src, mi)
287+ tsn = TypedSyntaxNode (rootnode, Base. bodyfunction (m), (Bool, typeof (TSN. avoidzero), Int,))
295288 sig, body = children (tsn)
296289 isz = child (body, 2 , 1 , 1 )
297290 @test kind (isz) == K " call" && child (isz, 1 ). val == :iszero
@@ -520,8 +513,7 @@ include("test_module.jl")
520513 @test_broken body. typ == Int
521514
522515 # Construction from MethodInstance
523- src, rt, mi = TypedSyntax. getsrc (TSN. myoftype, (Float64, Int))
524- tsn = TypedSyntaxNode (mi)
516+ tsn = TypedSyntaxNode (TSN. myoftype, (Float64, Int))
525517 sig, body = children (tsn)
526518 node = child (body, 1 )
527519 @test node. typ === Type{Float64}
@@ -641,7 +633,8 @@ include("test_module.jl")
641633 @test isa (tsnc, TypedSyntaxNode)
642634
643635 # issue 487
644- src, rt, mi = getsrc (TSN. f487, (Int,))
636+ inferred_result = TypedSyntax. get_inferred_result (TSN. f487, (Int,))
637+ src, mi = inferred_result. src, inferred_result. mi
645638 rt = Core. Const (1 )
646639 tsn, _ = TypedSyntax. tsn_and_mappings (mi, src, rt)
647640 @test_nowarn str = sprint (tsn; context= :color => false ) do io, obj
0 commit comments