2023-05-31 14:26:46 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <functional>
|
|
|
|
#include <string_view>
|
|
|
|
#include <vector>
|
|
|
|
|
2023-07-05 09:14:05 +01:00
|
|
|
#include "oi/type_graph/Types.h"
|
|
|
|
|
2023-07-26 15:31:53 +01:00
|
|
|
namespace oi::detail::type_graph {
|
2023-05-31 14:26:46 +01:00
|
|
|
class Pass;
|
2023-08-02 11:11:52 +01:00
|
|
|
class TypeGraph;
|
2023-07-26 15:31:53 +01:00
|
|
|
} // namespace oi::detail::type_graph
|
|
|
|
|
|
|
|
using namespace oi::detail;
|
2023-05-31 14:26:46 +01:00
|
|
|
|
2023-08-02 11:11:52 +01:00
|
|
|
void check(const type_graph::TypeGraph& typeGraph,
|
2023-06-20 17:57:43 +01:00
|
|
|
std::string_view expected,
|
|
|
|
std::string_view comment);
|
|
|
|
|
2023-07-11 17:01:13 +01:00
|
|
|
void test(type_graph::Pass pass,
|
|
|
|
std::string_view input,
|
|
|
|
std::string_view expectedAfter);
|
|
|
|
|
|
|
|
void testNoChange(type_graph::Pass pass, std::string_view input);
|
|
|
|
|
2023-11-02 13:05:35 +00:00
|
|
|
std::vector<std::unique_ptr<ContainerInfo>> getContainerInfos();
|
2023-07-05 09:14:05 +01:00
|
|
|
type_graph::Container getVector(type_graph::NodeId id = 0);
|
|
|
|
type_graph::Container getMap(type_graph::NodeId id = 0);
|
|
|
|
type_graph::Container getList(type_graph::NodeId id = 0);
|
2023-07-06 15:29:06 +01:00
|
|
|
type_graph::Container getPair(type_graph::NodeId id = 0);
|