4040#include " checker/type_check_issue.h"
4141#include " checker/validation_result.h"
4242#include " common/ast.h"
43- #include " common/ast/expr.h"
4443#include " common/ast_rewrite.h"
4544#include " common/ast_traverse.h"
4645#include " common/ast_visitor.h"
5756namespace cel ::checker_internal {
5857namespace {
5958
60- using AstType = cel::ast_internal::Type ;
59+ using AstType = cel::TypeSpec ;
6160using Severity = TypeCheckIssue::Severity;
6261
6362constexpr const char kOptionalSelect [] = " _?._" ;
@@ -134,28 +133,26 @@ absl::StatusOr<AstType> FlattenAbstractType(const OpaqueType& type) {
134133 parameter_types.push_back (std::move (param_type));
135134 }
136135
137- return AstType (ast_internal::AbstractType ( std::string (type. name ()),
138- std::move (parameter_types)));
136+ return AstType (
137+ AbstractType ( std::string (type. name ()), std::move (parameter_types)));
139138}
140139
141140absl::StatusOr<AstType> FlattenMapType (const MapType& type) {
142141 CEL_ASSIGN_OR_RETURN (auto key, FlattenType (type.key ()));
143142 CEL_ASSIGN_OR_RETURN (auto value, FlattenType (type.value ()));
144143
145- return AstType (
146- ast_internal::MapType (std::make_unique<AstType>(std::move (key)),
147- std::make_unique<AstType>(std::move (value))));
144+ return AstType (MapTypeSpec (std::make_unique<AstType>(std::move (key)),
145+ std::make_unique<AstType>(std::move (value))));
148146}
149147
150148absl::StatusOr<AstType> FlattenListType (const ListType& type) {
151149 CEL_ASSIGN_OR_RETURN (auto elem, FlattenType (type.element ()));
152150
153- return AstType (
154- ast_internal::ListType (std::make_unique<AstType>(std::move (elem))));
151+ return AstType (ListTypeSpec (std::make_unique<AstType>(std::move (elem))));
155152}
156153
157154absl::StatusOr<AstType> FlattenMessageType (const StructType& type) {
158- return AstType (ast_internal::MessageType (std::string (type.name ())));
155+ return AstType (MessageTypeSpec (std::string (type.name ())));
159156}
160157
161158absl::StatusOr<AstType> FlattenTypeType (const TypeType& type) {
@@ -173,29 +170,29 @@ absl::StatusOr<AstType> FlattenTypeType(const TypeType& type) {
173170absl::StatusOr<AstType> FlattenType (const Type& type) {
174171 switch (type.kind ()) {
175172 case TypeKind::kDyn :
176- return AstType (ast_internal::DynamicType ());
173+ return AstType (DynTypeSpec ());
177174 case TypeKind::kError :
178- return AstType (ast_internal::ErrorType ());
175+ return AstType (ErrorTypeSpec ());
179176 case TypeKind::kNull :
180- return AstType (ast_internal::NullType ());
177+ return AstType (NullTypeSpec ());
181178 case TypeKind::kBool :
182- return AstType (ast_internal:: PrimitiveType::kBool );
179+ return AstType (PrimitiveType::kBool );
183180 case TypeKind::kInt :
184- return AstType (ast_internal:: PrimitiveType::kInt64 );
181+ return AstType (PrimitiveType::kInt64 );
185182 case TypeKind::kEnum :
186- return AstType (ast_internal:: PrimitiveType::kInt64 );
183+ return AstType (PrimitiveType::kInt64 );
187184 case TypeKind::kUint :
188- return AstType (ast_internal:: PrimitiveType::kUint64 );
185+ return AstType (PrimitiveType::kUint64 );
189186 case TypeKind::kDouble :
190- return AstType (ast_internal:: PrimitiveType::kDouble );
187+ return AstType (PrimitiveType::kDouble );
191188 case TypeKind::kString :
192- return AstType (ast_internal:: PrimitiveType::kString );
189+ return AstType (PrimitiveType::kString );
193190 case TypeKind::kBytes :
194- return AstType (ast_internal:: PrimitiveType::kBytes );
191+ return AstType (PrimitiveType::kBytes );
195192 case TypeKind::kDuration :
196- return AstType (ast_internal::WellKnownType ::kDuration );
193+ return AstType (WellKnownTypeSpec ::kDuration );
197194 case TypeKind::kTimestamp :
198- return AstType (ast_internal::WellKnownType ::kTimestamp );
195+ return AstType (WellKnownTypeSpec ::kTimestamp );
199196 case TypeKind::kStruct :
200197 return FlattenMessageType (type.GetStruct ());
201198 case TypeKind::kList :
@@ -205,30 +202,24 @@ absl::StatusOr<AstType> FlattenType(const Type& type) {
205202 case TypeKind::kOpaque :
206203 return FlattenAbstractType (type.GetOpaque ());
207204 case TypeKind::kBoolWrapper :
208- return AstType (ast_internal::PrimitiveTypeWrapper (
209- ast_internal::PrimitiveType::kBool ));
205+ return AstType (PrimitiveTypeWrapper (PrimitiveType::kBool ));
210206 case TypeKind::kIntWrapper :
211- return AstType (ast_internal::PrimitiveTypeWrapper (
212- ast_internal::PrimitiveType::kInt64 ));
207+ return AstType (PrimitiveTypeWrapper (PrimitiveType::kInt64 ));
213208 case TypeKind::kUintWrapper :
214- return AstType (ast_internal::PrimitiveTypeWrapper (
215- ast_internal::PrimitiveType::kUint64 ));
209+ return AstType (PrimitiveTypeWrapper (PrimitiveType::kUint64 ));
216210 case TypeKind::kDoubleWrapper :
217- return AstType (ast_internal::PrimitiveTypeWrapper (
218- ast_internal::PrimitiveType::kDouble ));
211+ return AstType (PrimitiveTypeWrapper (PrimitiveType::kDouble ));
219212 case TypeKind::kStringWrapper :
220- return AstType (ast_internal::PrimitiveTypeWrapper (
221- ast_internal::PrimitiveType::kString ));
213+ return AstType (PrimitiveTypeWrapper (PrimitiveType::kString ));
222214 case TypeKind::kBytesWrapper :
223- return AstType (ast_internal::PrimitiveTypeWrapper (
224- ast_internal::PrimitiveType::kBytes ));
215+ return AstType (PrimitiveTypeWrapper (PrimitiveType::kBytes ));
225216 case TypeKind::kTypeParam :
226217 // Convert any remaining free type params to dyn.
227- return AstType (ast_internal::DynamicType ());
218+ return AstType (DynTypeSpec ());
228219 case TypeKind::kType :
229220 return FlattenTypeType (type.GetType ());
230221 case TypeKind::kAny :
231- return AstType (ast_internal::WellKnownType ::kAny );
222+ return AstType (WellKnownTypeSpec ::kAny );
232223 default :
233224 return absl::InternalError (
234225 absl::StrCat (" unsupported type encountered making AST serializable: " ,
0 commit comments