| souffle
    2.0.2-371-g6315b36
    | 
#include "ast/QualifiedName.h"#include "ast/Type.h"#include "souffle/TypeAttribute.h"#include "souffle/utility/ContainerUtil.h"#include "souffle/utility/FunctionalUtil.h"#include "souffle/utility/MiscUtil.h"#include "souffle/utility/StreamUtil.h"#include "souffle/utility/tinyformat.h"#include <algorithm>#include <iostream>#include <map>#include <memory>#include <optional>#include <set>#include <stdexcept>#include <string>#include <utility>#include <vector>

Go to the source code of this file.
| Data Structures | |
| class | souffle::ast::analysis::AlgebraicDataType | 
| Aggregates types using sums and products.  More... | |
| struct | souffle::ast::analysis::AlgebraicDataType::Branch | 
| class | souffle::ast::analysis::ConstantType | 
| Representing the type assigned to a constant.  More... | |
| class | souffle::ast::analysis::PrimitiveType | 
| PrimitiveType = Number/Unsigned/Float/Symbol The class representing pre-built, concrete types.  More... | |
| struct | souffle::ast::analysis::RecordType | 
| A record type combining a list of fields into a new, aggregated type.  More... | |
| class | souffle::ast::analysis::SubsetType | 
| A type being a subset of another type.  More... | |
| class | souffle::ast::analysis::Type | 
| An abstract base class for types to be covered within a type environment.  More... | |
| class | souffle::ast::analysis::TypeEnvironment | 
| A type environment is a set of types.  More... | |
| struct | souffle::ast::analysis::TypeSet | 
| A collection to represent sets of types.  More... | |
| class | souffle::ast::analysis::UnionType | 
| A union type combining a list of types into a new, aggregated type.  More... | |
| Namespaces | |
| souffle | |
| souffle::ast | |
| souffle::ast::analysis | |
| Functions | |
| bool | souffle::ast::analysis::areEquivalentTypes (const Type &a, const Type &b) | 
| Determine if two types are equivalent.  More... | |
| TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const Type &a, const Type &b) | 
| Computes the greatest common sub types of the two given types.  More... | |
| template<typename... Types> | |
| TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const Types &... types) | 
| Computes the greatest common sub types of the given types.  More... | |
| TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const TypeSet &a, const TypeSet &b) | 
| The set of pair-wise greatest common sub types of the types in the two given sets.  More... | |
| TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const TypeSet &set) | 
| Computes the greatest common sub types of all the types in the given set.  More... | |
| TypeAttribute | souffle::ast::analysis::getTypeAttribute (const Type &type) | 
| std::optional< TypeAttribute > | souffle::ast::analysis::getTypeAttribute (const TypeSet &type) | 
| std::string | souffle::ast::analysis::getTypeQualifier (const Type &type) | 
| Returns full type qualifier for a given type.  More... | |
| bool | souffle::ast::analysis::haveCommonSupertype (const Type &a, const Type &b) | 
| Determine if there exist a type t such that a <: t and b <: t.  More... | |
| bool | souffle::ast::analysis::isADTEnum (const AlgebraicDataType &type) | 
| Determine if ADT is enumerations (are all constructors empty)  More... | |
| bool | souffle::ast::analysis::isNumericType (const TypeSet &type) | 
| bool | souffle::ast::analysis::isOfKind (const Type &type, TypeAttribute kind) | 
| Check if the type is of a kind corresponding to the TypeAttribute.  More... | |
| bool | souffle::ast::analysis::isOfKind (const TypeSet &typeSet, TypeAttribute kind) | 
| bool | souffle::ast::analysis::isOrderableType (const TypeSet &type) | 
| bool | souffle::ast::analysis::isSubtypeOf (const Type &a, const Type &b) | 
| Determines whether type a is a subtype of type b.  More... | |
 1.8.17
 1.8.17