njames93 created this revision. njames93 added reviewers: sammccall, kadircet. Herald added subscribers: cfe-commits, usaxena95, arphaman. Herald added a project: clang. njames93 requested review of this revision. Herald added subscribers: MaskRay, ilya-biryukov.
This enables using the arrow operator to access members of the contained item. Located<std::string> X; const char* CStr = X->c_str(); This is inline with how classes like `Optional` handle the arrow operator. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D90682 Files: clang-tools-extra/clangd/ConfigFragment.h Index: clang-tools-extra/clangd/ConfigFragment.h =================================================================== --- clang-tools-extra/clangd/ConfigFragment.h +++ clang-tools-extra/clangd/ConfigFragment.h @@ -51,8 +51,8 @@ : Range(Range), Value(std::move(Value)) {} llvm::SMRange Range; - T &operator->() { return Value; } - const T &operator->() const { return Value; } + T *operator->() { return &Value; } + const T *operator->() const { return &Value; } T &operator*() { return Value; } const T &operator*() const { return Value; }
Index: clang-tools-extra/clangd/ConfigFragment.h =================================================================== --- clang-tools-extra/clangd/ConfigFragment.h +++ clang-tools-extra/clangd/ConfigFragment.h @@ -51,8 +51,8 @@ : Range(Range), Value(std::move(Value)) {} llvm::SMRange Range; - T &operator->() { return Value; } - const T &operator->() const { return Value; } + T *operator->() { return &Value; } + const T *operator->() const { return &Value; } T &operator*() { return Value; } const T &operator*() const { return Value; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits