souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
36 class SubsetType :
public Type {
38 SubsetType(QualifiedName
name, QualifiedName baseTypeName, SrcLocation loc = {})
39 :
Type(std::move(
name), std::move(loc)),
baseType(std::move(baseTypeName)) {}
51 void print(std::ostream& os)
const override {
52 os <<
".type " << getQualifiedName() <<
" <: " <<
getBaseType();
55 bool equal(
const Node& node)
const override {
56 const auto& other =
static_cast<const SubsetType&
>(node);
57 return getQualifiedName() == other.getQualifiedName() &&
baseType == other.baseType;
const Type & getBaseType() const
void print(std::ostream &out) const override
A type being a subset of another type.
const QualifiedName & getBaseType() const
Return base type.
auto clone(const std::vector< A * > &xs)
Type(const Type &other)=delete
Abstract class for syntactic elements in an input program.
Qualified Name class defines fully/partially qualified names to identify objects in components.
SubsetType(const TypeEnvironment &environment, const QualifiedName &name, const Type &base)