meowlang/typechecker/types/GenericTupleTypeDescription.cs

20 lines
586 B
C#
Raw Normal View History

namespace meowlang.typechecker;
public record GenericTupleTypeDescription : GenericTypeDescription
{
private readonly List<GenericTypeId> _members;
public GenericTupleTypeDescription(List<string> genericNames, List<GenericTypeId> members) : base(genericNames)
{
_members = members;
CheckGenericNames(members);
}
public override TupleTypeDescription Concretize(List<Guid> typeParams)
{
var members = _members.Select(x => ConcretizeGenericType(x, typeParams)).ToList();
return new TupleTypeDescription(members);
}
}