|
souffle
2.0.2-371-g6315b36
|
#include "ast/analysis/TypeSystem.h"#include "ast/Type.h"#include "souffle/utility/FunctionalUtil.h"#include "souffle/utility/StreamUtil.h"#include "souffle/utility/StringUtil.h"#include "souffle/utility/tinyformat.h"#include <cassert>#include <initializer_list>
Go to the source code of this file.
Data Structures | |
| struct | souffle::ast::analysis::TypeVisitor< R > |
| A visitor for Types. More... | |
| class | souffle::ast::analysis::VisitOnceTypeVisitor< R > |
| A visitor for types visiting each type only once (effectively breaking recursive cycles). More... | |
Namespaces | |
| souffle | |
| souffle::ast | |
| souffle::ast::analysis | |
Macros | |
| #define | CREATE_PRIMITIVE(TYPE) |
| #define | FORWARD(TYPE) if (auto* t = dynamic_cast<const TYPE##Type*>(&type)) return visit##TYPE##Type(*t); |
| #define | VISIT(TYPE) |
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... | |
| 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::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::isOfRootType (const Type &type, const Type &root) |
| Determines whether the given type is a sub-type of the given root type. More... | |
| bool | souffle::ast::analysis::isSubtypeOf (const Type &a, const Type &b) |
| Determines whether type a is a subtype of type b. More... | |
| #define CREATE_PRIMITIVE | ( | TYPE | ) |
| #define FORWARD | ( | TYPE | ) | if (auto* t = dynamic_cast<const TYPE##Type*>(&type)) return visit##TYPE##Type(*t); |
Definition at line 100 of file TypeSystem.cpp.
| #define VISIT | ( | TYPE | ) |
Definition at line 114 of file TypeSystem.cpp.
1.8.17