Why would we want to serialize the origin?
We only serialize and deserialize for the static index, it does not seem to
be useful to serialize origin in that scenario.

Am I missing something?

On Fri, Sep 21, 2018 at 3:06 PM Eric Liu via cfe-commits <
cfe-commits@lists.llvm.org> wrote:

> Author: ioeric
> Date: Fri Sep 21 06:04:57 2018
> New Revision: 342730
>
> URL: http://llvm.org/viewvc/llvm-project?rev=342730&view=rev
> Log:
> [clangd] Remember to serialize symbol origin in YAML.
>
> Modified:
>     clang-tools-extra/trunk/clangd/index/SymbolYAML.cpp
>     clang-tools-extra/trunk/unittests/clangd/SerializationTests.cpp
>
> Modified: clang-tools-extra/trunk/clangd/index/SymbolYAML.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/index/SymbolYAML.cpp?rev=342730&r1=342729&r2=342730&view=diff
>
> ==============================================================================
> --- clang-tools-extra/trunk/clangd/index/SymbolYAML.cpp (original)
> +++ clang-tools-extra/trunk/clangd/index/SymbolYAML.cpp Fri Sep 21
> 06:04:57 2018
> @@ -27,6 +27,7 @@ namespace yaml {
>
>  using clang::clangd::Symbol;
>  using clang::clangd::SymbolID;
> +using clang::clangd::SymbolOrigin;
>  using clang::clangd::SymbolLocation;
>  using clang::index::SymbolInfo;
>  using clang::index::SymbolKind;
> @@ -65,6 +66,17 @@ struct NormalizedSymbolFlag {
>    uint8_t Flag = 0;
>  };
>
> +struct NormalizedSymbolOrigin {
> +  NormalizedSymbolOrigin(IO &) {}
> +  NormalizedSymbolOrigin(IO &, SymbolOrigin O) {
> +    Origin = static_cast<uint8_t>(O);
> +  }
> +
> +  SymbolOrigin denormalize(IO &) { return
> static_cast<SymbolOrigin>(Origin); }
> +
> +  uint8_t Origin = 0;
> +};
> +
>  template <> struct MappingTraits<SymbolLocation::Position> {
>    static void mapping(IO &IO, SymbolLocation::Position &Value) {
>      IO.mapRequired("Line", Value.Line);
> @@ -102,6 +114,8 @@ template <> struct MappingTraits<Symbol>
>      MappingNormalization<NormalizedSymbolID, SymbolID> NSymbolID(IO,
> Sym.ID);
>      MappingNormalization<NormalizedSymbolFlag, Symbol::SymbolFlag>
> NSymbolFlag(
>          IO, Sym.Flags);
> +    MappingNormalization<NormalizedSymbolOrigin, SymbolOrigin>
> NSymbolOrigin(
> +        IO, Sym.Origin);
>      IO.mapRequired("ID", NSymbolID->HexString);
>      IO.mapRequired("Name", Sym.Name);
>      IO.mapRequired("Scope", Sym.Scope);
> @@ -110,6 +124,7 @@ template <> struct MappingTraits<Symbol>
>                     SymbolLocation());
>      IO.mapOptional("Definition", Sym.Definition, SymbolLocation());
>      IO.mapOptional("References", Sym.References, 0u);
> +    IO.mapOptional("Origin", NSymbolOrigin->Origin);
>      IO.mapOptional("Flags", NSymbolFlag->Flag);
>      IO.mapOptional("Signature", Sym.Signature);
>      IO.mapOptional("CompletionSnippetSuffix",
> Sym.CompletionSnippetSuffix);
>
> Modified: clang-tools-extra/trunk/unittests/clangd/SerializationTests.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clangd/SerializationTests.cpp?rev=342730&r1=342729&r2=342730&view=diff
>
> ==============================================================================
> --- clang-tools-extra/trunk/unittests/clangd/SerializationTests.cpp
> (original)
> +++ clang-tools-extra/trunk/unittests/clangd/SerializationTests.cpp Fri
> Sep 21 06:04:57 2018
> @@ -7,6 +7,7 @@
>  //
>
>  
> //===----------------------------------------------------------------------===//
>
> +#include "index/Index.h"
>  #include "index/Serialization.h"
>  #include "index/SymbolYAML.h"
>  #include "llvm/Support/ScopedPrinter.h"
> @@ -35,6 +36,7 @@ CanonicalDeclaration:
>    End:
>      Line: 1
>      Column: 1
> +Origin:    4
>  Flags:    1
>  Documentation:    'Foo doc'
>  ReturnType:    'int'
> @@ -82,6 +84,7 @@ TEST(SerializationTest, YAMLConversions)
>    EXPECT_EQ(Sym1.Documentation, "Foo doc");
>    EXPECT_EQ(Sym1.ReturnType, "int");
>    EXPECT_EQ(Sym1.CanonicalDeclaration.FileURI, "file:///path/foo.h");
> +  EXPECT_EQ(Sym1.Origin, SymbolOrigin::Static);
>    EXPECT_TRUE(Sym1.Flags & Symbol::IndexedForCodeCompletion);
>    EXPECT_FALSE(Sym1.Flags & Symbol::Deprecated);
>    EXPECT_THAT(Sym1.IncludeHeaders,
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>


-- 
Regards,
Ilya Biryukov
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to