1 //===-- lib/Semantics/check-select-type.h -----------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef FORTRAN_SEMANTICS_CHECK_SELECT_TYPE_H_ 10 #define FORTRAN_SEMANTICS_CHECK_SELECT_TYPE_H_ 11 12 #include "flang/Semantics/semantics.h" 13 14 namespace Fortran::parser { 15 struct SelectTypeConstruct; 16 struct Selector; 17 } // namespace Fortran::parser 18 19 namespace Fortran::semantics { 20 21 class SelectTypeChecker : public virtual BaseChecker { 22 public: SelectTypeChecker(SemanticsContext & context)23 explicit SelectTypeChecker(SemanticsContext &context) : context_{context} {}; 24 void Enter(const parser::SelectTypeConstruct &); 25 26 private: 27 const SomeExpr *GetExprFromSelector(const parser::Selector &); 28 SemanticsContext &context_; 29 }; 30 } // namespace Fortran::semantics 31 #endif // FORTRAN_SEMANTICS_CHECK_SELECT_TYPE_H_ 32