public override bool @is(Type type)
{
if (this == type) return true;
if (type is FuncType)
{
FuncType t = (FuncType)type;
// match return type (if void is needed, anything matches)
if (t.m_ret != Sys.VoidType && !m_ret.@is(t.m_ret)) return false;
// match params - it is ok for me to have less than
// the type params (if I want to ignore them), but I
// must have no more
if (m_params.Length > t.m_params.Length) return false;
for (int i=0; i<m_params.Length; ++i)
if (!t.m_params[i].@is(m_params[i])) return false;
// this method works for the specified method type
return true;
}
return @base().@is(type);
}