public ArrayType(long length, LType elementType) { Length = length; ElementType = elementType; }
public override bool StructurallyEquals(LType other) => other is VoidType;
public override bool StructurallyEquals(LType other) => other is ArrayType a &&
public override bool StructurallyEquals(LType other) => other is FloatType a &&
public override bool StructurallyEquals(LType other) => other is NamedType a &&
public PointerType(LType elementType, int addressSpace) { ElementType = elementType; AddressSpace = addressSpace; }
public override bool StructurallyEquals(LType other) => other is PointerType a &&
public override bool StructurallyEquals(LType other) => other is LiteralStructureType a &&
public abstract bool StructurallyEquals(LType other);
public override bool StructurallyEquals(LType other) => other is OpaqueStructureType;
public VectorType(int length, LType elementType) { Length = length; ElementType = elementType; }
public override bool StructurallyEquals(LType other) => other is VectorType a &&
public override bool StructurallyEquals(LType other) => other is FunctionType a &&
public FunctionType(LType returnType, IEnumerable <LType> parameterTypes) { ReturnType = returnType; ParameterTypes = parameterTypes.ToArray(); }