4848#include " common/constant.h"
4949#include " common/decl.h"
5050#include " common/expr.h"
51- #include " common/memory.h"
5251#include " common/source.h"
5352#include " common/type.h"
54- #include " common/type_factory.h"
5553#include " common/type_kind.h"
56- #include " extensions/protobuf/memory_manager.h"
5754#include " internal/status_macros.h"
5855#include " google/protobuf/arena.h"
5956
@@ -67,19 +64,6 @@ using Severity = TypeCheckIssue::Severity;
6764
6865constexpr const char kOptionalSelect [] = " _?._" ;
6966
70- class TrivialTypeFactory : public TypeFactory {
71- public:
72- explicit TrivialTypeFactory (absl::Nonnull<google::protobuf::Arena*> arena)
73- : arena_(arena) {}
74-
75- MemoryManagerRef GetMemoryManager () const override {
76- return extensions::ProtoMemoryManagerRef (arena_);
77- }
78-
79- private:
80- absl::Nonnull<google::protobuf::Arena*> arena_;
81- };
82-
8367std::string FormatCandidate (absl::Span<const std::string> qualifiers) {
8468 return absl::StrJoin (qualifiers, " ." );
8569}
@@ -253,7 +237,7 @@ class ResolveVisitor : public AstVisitorBase {
253237 const TypeCheckEnv& env, const AstImpl& ast,
254238 TypeInferenceContext& inference_context,
255239 std::vector<TypeCheckIssue>& issues,
256- absl::Nonnull<google::protobuf::Arena*> arena, TypeFactory& type_factory )
240+ absl::Nonnull<google::protobuf::Arena*> arena)
257241 : container_(container),
258242 namespace_generator_ (std::move(namespace_generator)),
259243 env_(&env),
@@ -262,7 +246,6 @@ class ResolveVisitor : public AstVisitorBase {
262246 ast_(&ast),
263247 root_scope_(env.MakeVariableScope()),
264248 arena_(arena),
265- type_factory_(&type_factory),
266249 current_scope_(&root_scope_) {}
267250
268251 void PreVisitExpr (const Expr& expr) override { expr_stack_.push_back (&expr); }
@@ -408,7 +391,7 @@ class ResolveVisitor : public AstVisitorBase {
408391 // Lookup message type by name to support WellKnownType creation.
409392 CEL_ASSIGN_OR_RETURN (
410393 absl::optional<StructTypeField> field_info,
411- env_->LookupStructField (*type_factory_, resolved_name, field.name ()));
394+ env_->LookupStructField (resolved_name, field.name ()));
412395 if (!field_info.has_value ()) {
413396 ReportUndefinedField (field.id (), field.name (), resolved_name);
414397 continue ;
@@ -455,7 +438,6 @@ class ResolveVisitor : public AstVisitorBase {
455438 absl::Nonnull<const ast_internal::AstImpl*> ast_;
456439 VariableScope root_scope_;
457440 absl::Nonnull<google::protobuf::Arena*> arena_;
458- absl::Nonnull<TypeFactory*> type_factory_;
459441
460442 // state tracking for the traversal.
461443 const VariableScope* current_scope_;
@@ -669,7 +651,7 @@ void ResolveVisitor::PostVisitStruct(const Expr& expr,
669651 Type resolved_type;
670652 namespace_generator_.GenerateCandidates (
671653 create_struct.name (), [&](const absl::string_view name) {
672- auto type = env_->LookupTypeName (*type_factory_, name);
654+ auto type = env_->LookupTypeName (name);
673655 if (!type.ok ()) {
674656 status.Update (type.status ());
675657 return false ;
@@ -938,7 +920,7 @@ absl::Nullable<const VariableDecl*> ResolveVisitor::LookupIdentifier(
938920 return decl;
939921 }
940922 absl::StatusOr<absl::optional<VariableDecl>> constant =
941- env_->LookupTypeConstant (*type_factory_, arena_, name);
923+ env_->LookupTypeConstant (arena_, name);
942924
943925 if (!constant.ok ()) {
944926 status_.Update (constant.status ());
@@ -1032,8 +1014,7 @@ absl::optional<Type> ResolveVisitor::CheckFieldType(int64_t id,
10321014 switch (operand_type.kind ()) {
10331015 case TypeKind::kStruct : {
10341016 StructType struct_type = operand_type.GetStruct ();
1035- auto field_info =
1036- env_->LookupStructField (*type_factory_, struct_type.name (), field);
1017+ auto field_info = env_->LookupStructField (struct_type.name (), field);
10371018 if (!field_info.ok ()) {
10381019 status_.Update (field_info.status ());
10391020 return absl::nullopt ;
@@ -1228,10 +1209,8 @@ absl::StatusOr<ValidationResult> TypeCheckerImpl::Check(
12281209
12291210 TypeInferenceContext type_inference_context (
12301211 &type_arena, options_.enable_legacy_null_assignment );
1231- TrivialTypeFactory type_factory (&type_arena);
12321212 ResolveVisitor visitor (env_.container (), std::move (generator), env_, ast_impl,
1233- type_inference_context, issues, &type_arena,
1234- type_factory);
1213+ type_inference_context, issues, &type_arena);
12351214
12361215 TraversalOptions opts;
12371216 opts.use_comprehension_callbacks = true ;
0 commit comments