From a462610376b4c877a4112bf400f80a521c977efa Mon Sep 17 00:00:00 2001 From: yuyi Date: Thu, 8 Sep 2022 14:20:30 +0800 Subject: [PATCH] ast: minor optimization in sumtype_check_function_variant() (#15694) --- vlib/v/ast/table.v | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vlib/v/ast/table.v b/vlib/v/ast/table.v index 604c852b97..863c402d24 100644 --- a/vlib/v/ast/table.v +++ b/vlib/v/ast/table.v @@ -1307,16 +1307,16 @@ pub fn (t &Table) sumtype_has_variant(parent Type, variant Type, is_as bool) boo } fn (t &Table) sumtype_check_function_variant(parent_info SumType, variant Type, is_as bool) bool { + variant_fn := (t.sym(variant).info as FnType).func + variant_fn_sig := t.fn_type_source_signature(variant_fn) + for v in parent_info.variants { v_sym := t.sym(v) - if v_sym.kind != .function { - continue - } - v_fn := (v_sym.info as FnType).func - variant_fn := (t.sym(variant).info as FnType).func - if t.fn_type_source_signature(v_fn) == t.fn_type_source_signature(variant_fn) - && (!is_as || v.nr_muls() == variant.nr_muls()) { - return true + if v_sym.info is FnType { + if t.fn_type_source_signature(v_sym.info.func) == variant_fn_sig + && (!is_as || v.nr_muls() == variant.nr_muls()) { + return true + } } } return false