File tree Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -1286,7 +1286,7 @@ JL_CALLABLE(jl_f_invoke_kwsorter)
1286
1286
if (nt < jl_page_size /sizeof (jl_value_t * )) {
1287
1287
jl_value_t * * types = (jl_value_t * * )alloca (nt * sizeof (jl_value_t * ));
1288
1288
types [0 ] = (jl_value_t * )jl_namedtuple_type ;
1289
- types [1 ] = jl_typeof (func );
1289
+ types [1 ] = jl_is_type ( func ) ? ( jl_value_t * ) jl_wrap_Type ( func ) : jl_typeof (func );
1290
1290
for (i = 2 ; i < nt ; i ++ )
1291
1291
types [i ] = jl_tparam (argtypes , i - 2 );
1292
1292
argtypes = (jl_value_t * )jl_apply_tuple_type_v (types , nt );
@@ -1295,7 +1295,7 @@ JL_CALLABLE(jl_f_invoke_kwsorter)
1295
1295
jl_svec_t * types = jl_alloc_svec_uninit (nt );
1296
1296
JL_GC_PUSH1 (& types );
1297
1297
jl_svecset (types , 0 , jl_namedtuple_type );
1298
- jl_svecset (types , 1 , jl_typeof (func ));
1298
+ jl_svecset (types , 1 , jl_is_type ( func ) ? ( jl_value_t * ) jl_wrap_Type ( func ) : jl_typeof (func ));
1299
1299
for (i = 2 ; i < nt ; i ++ )
1300
1300
jl_svecset (types , i , jl_tparam (argtypes , i - 2 ));
1301
1301
argtypes = (jl_value_t * )jl_apply_tuple_type (types );
Original file line number Diff line number Diff line change @@ -1524,6 +1524,12 @@ let
1524
1524
@test invoke (i2169, Tuple{Array}, Int8[1 ]) === Int8 (- 128 )
1525
1525
end
1526
1526
1527
+ # issue #44227
1528
+ struct F{T} end
1529
+ F {Int32} (; y= 1 ) = 1
1530
+ F {Int64} (; y= 1 ) = invoke (F{Int32}, Tuple{}; y)
1531
+ @test F {Int64} () === 1
1532
+
1527
1533
# issue #2365
1528
1534
mutable struct B2365{T}
1529
1535
v:: Union{T, Nothing}
You can’t perform that action at this time.
0 commit comments