[clangd-dev] ClangD - Dropped Diagnostic Outside of main file.

Ilya Biryukov via clangd-dev clangd-dev at lists.llvm.org
Mon Aug 13 10:13:06 PDT 2018

Agree, having some errors is probably more useful than having none.

On Mon, Aug 13, 2018 at 6:12 PM Sam McCall <sam.mccall at gmail.com> wrote:

> On Mon, Aug 13, 2018, 17:43 Ilya Biryukov <ibiryukov at google.com> wrote:
>> Hi Dan, Sam,
>> Synthesizing the diagnostics sounds good!
>> Also agree we should summarize all diags coming from the include in a
>> single message to avoid potentially reporting a hundred diags at the same
>> line.
>> Please also note that we can't catch any errors in function bodies, since
>> we skip those. That's one of the reasons we don't report diags from other
>> files now - we just can't do it reliably.
> For the most part I suspect this will be acceptable. Uses mostly care
> about errors in headers to the extent that they impact the file theyre
> editing, and function bodies mostly don't do that.
> Careful observers will notice the discrepancy, but that's what they get
> for being careful :-)
> (There may be edge cases around templates too, as usual)
>> Missing files are actually the most common source of inconsistencies in
>> the current file, though, reporting them is definitely the right thing to
>> do!
>> Dan, would you be interested in coming up with a patch to fix this? We're
>> always happy to get new contributions.
>> On Mon, Aug 13, 2018 at 4:37 PM Sam McCall via clangd-dev <
>> clangd-dev at lists.llvm.org> wrote:
>>> +clangd-dev at lists.llvm.org
>>> On Fri, Aug 10, 2018 at 12:13 AM Dan Walmsley <dan at walms.co.uk> wrote:
>>>> Hi, I hope you dont mind me contacting you directly.
>>> I don't mind at all, but I'm out on parental leave so can't give this
>>> the attention it deserves. Adding the dev list.
>>>> https://github.com/llvm-mirror/clang-tools-extra/blame/86961faaaf0b56b1c5dac2ed979987879cbc5294/clangd/Diagnostics.cpp#L376
>>>> I am integrating ClangD with an open source IDE. I have come across a
>>>> minor issue, but its most likely my inexperience with clangd.
>>>> So if I have a file that includes another file and that file has an
>>>> include that cant be found, the diagnostics for that missing include get
>>>> dropped.
>>>> How would I be able to indicate to the users that there is a missing
>>>> include file, or get hold of the dropped diagnostic without the user having
>>>> to open that file first?
>>> So if we're dropping the "foo.h was not found" diagnostic when the
>>> missing file is directly included by the active file, this is just a bug we
>>> should fix. (I seem to recall this might be happening, at least in some
>>> situations).
>>> For diagnostics that occur in other files, we do currently just drop
>>> them, but we should do something smarter. (This includes transitive
>>> includes like main.cc -> foo.h -> bar.h where bar.h is missing, but also if
>>> foo.h has a syntax error).
>>> I'd suggest we synthesize a diagnostic at the #include site that says
>>> something like:
>>> > Included file had errors:
>>> >
>>> > foo.h:21: Missing ';'
>>> > foo.h:43: No such member 'qux', did you mean 'quux'
>>> > ...
>>> What do you think?
>>> (And anyone on clangd-dev want to take this up before I get back to
>>> work?)
>>> Any hints or advice is greatly appreciated.
>>>> Many Thanks
>>>> Dan - working on AvalonStudio
>>>> http://github.com/VitalElement/AvalonStudio
>>> Hadn't heard about AvalonStudio, will check it out!
>>> Please hit up clangd-dev if we can help!
>>> _______________________________________________
>>> clangd-dev mailing list
>>> clangd-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev
>> --
>> Regards,
>> Ilya Biryukov

Ilya Biryukov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/clangd-dev/attachments/20180813/91c613fd/attachment.html>

More information about the clangd-dev mailing list