/// <summary> /// Define a new name-agnostic type (like a function type) /// </summary> /// <param name="type">Type.</param> /// <param name="tt">Tt.</param> // FileAndLine is passed as an empty string, because it is used to throw duplicite type definition error and that can't happen with auto-named types public Ty(AstType type, ref TypeTable tt) : this(type.GetMangledName(), type, ref tt, "") { IsAutoNamed = true; }
public abstract bool TryMonomorphize(AstType ExpectedType, ref Dictionary <string, Ty> TypeArgs, string[] ExpectedTypeArgs);
public override bool TryMonomorphize(AstType ExpectedType, ref Dictionary <string, Ty> TypeArgs, string[] ExpectedTypeArgs) => ExpectedType.Is <StringType>();