Skip to content

Commit 2b64b2b

Browse files
committed
skip validation for malformed types
1 parent a6a2fb8 commit 2b64b2b

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

src/subtype.c

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1725,21 +1725,16 @@ JL_DLLEXPORT int jl_subtype_env(jl_value_t *x, jl_value_t *y, jl_value_t **env,
17251725
#ifdef NDEBUG
17261726
if (obvious_subtype == 0)
17271727
return obvious_subtype;
1728-
else if (jl_has_free_typevars(y))
1729-
obvious_subtype = 3;
17301728
else if (envsz == 0)
17311729
return obvious_subtype;
1732-
#else
1733-
if (jl_has_free_typevars(y))
1734-
obvious_subtype = 3;
17351730
#endif
17361731
}
17371732
else {
17381733
obvious_subtype = 3;
17391734
}
17401735
init_stenv(&e, env, envsz);
17411736
int subtype = forall_exists_subtype(x, y, &e, 0);
1742-
assert(obvious_subtype == 3 || obvious_subtype == subtype);
1737+
assert(obvious_subtype == 3 || obvious_subtype == subtype || jl_has_free_typevars(x) || jl_has_free_typevars(y));
17431738
return subtype;
17441739
}
17451740

@@ -1793,8 +1788,6 @@ JL_DLLEXPORT int jl_types_equal(jl_value_t *a, jl_value_t *b)
17931788
if (subtype_ab == 0)
17941789
return 0;
17951790
#endif
1796-
if (jl_has_free_typevars(b))
1797-
subtype_ab = 3;
17981791
}
17991792
else {
18001793
subtype_ab = 3;
@@ -1814,8 +1807,6 @@ JL_DLLEXPORT int jl_types_equal(jl_value_t *a, jl_value_t *b)
18141807
if (subtype_ba == 0)
18151808
return 0;
18161809
#endif
1817-
if (jl_has_free_typevars(a))
1818-
subtype_ba = 3;
18191810
}
18201811
else {
18211812
subtype_ba = 3;
@@ -1832,7 +1823,7 @@ JL_DLLEXPORT int jl_types_equal(jl_value_t *a, jl_value_t *b)
18321823
if (subtype == 0)
18331824
return 0;
18341825
#endif
1835-
assert(subtype_ab == 3 || subtype_ab == subtype);
1826+
assert(subtype_ab == 3 || subtype_ab == subtype || jl_has_free_typevars(a) || jl_has_free_typevars(b));
18361827
subtype_ab = subtype;
18371828
}
18381829
#ifdef NDEBUG
@@ -1845,7 +1836,7 @@ JL_DLLEXPORT int jl_types_equal(jl_value_t *a, jl_value_t *b)
18451836
if (subtype == 0)
18461837
return 0;
18471838
#endif
1848-
assert(subtype_ba == 3 || subtype_ba == subtype);
1839+
assert(subtype_ba == 3 || subtype_ba == subtype || jl_has_free_typevars(a) || jl_has_free_typevars(b));
18491840
subtype_ba = subtype;
18501841
}
18511842
// all tests successful

0 commit comments

Comments
 (0)