Page MenuHomePhabricator

ilya-biryukov (Ilya Biryukov)Administrator
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 6 2017, 1:42 AM (156 w, 6 d)
Roles
Administrator

Recent Activity

Jan 31 2020

ilya-biryukov updated the diff for D69330: [AST] Add RecoveryExpr to retain expressions on semantic errors.

Fix compilation after rebase

Jan 31 2020, 6:42 AM · Restricted Project
ilya-biryukov updated the diff for D69330: [AST] Add RecoveryExpr to retain expressions on semantic errors.
  • Rebase
Jan 31 2020, 6:33 AM · Restricted Project
ilya-biryukov added a comment to D65591: [AST] Add a flag indicating if any subexpression had errors.

As soon as I add a new enum value, this starts crashing some tests (even if we don't ever set the flag or serialize it).
Not sure what causes it and won't have time to figure it out before I leave. Sorry about that :(

Jan 31 2020, 6:22 AM · Restricted Project
ilya-biryukov updated the diff for D65591: [AST] Add a flag indicating if any subexpression had errors.

Rebase on top of refactored dependence propagation

Jan 31 2020, 5:56 AM · Restricted Project
ilya-biryukov added a parent revision for D65591: [AST] Add a flag indicating if any subexpression had errors: D73638: [AST] Move dependence computations into a separate file.
Jan 31 2020, 5:56 AM · Restricted Project
ilya-biryukov added a child revision for D73638: [AST] Move dependence computations into a separate file: D65591: [AST] Add a flag indicating if any subexpression had errors.
Jan 31 2020, 5:56 AM · Restricted Project
ilya-biryukov accepted D73723: [clangd][Hover] Handle uninstantiated default args.

LGTM

Jan 31 2020, 5:18 AM · Restricted Project
ilya-biryukov updated the diff for D73638: [AST] Move dependence computations into a separate file.
  • Fix tests
Jan 31 2020, 4:04 AM · Restricted Project

Jan 29 2020

ilya-biryukov added a comment to D73638: [AST] Move dependence computations into a separate file.

@rsmith this does not pass through testing, I've messed up somewhere while moving the code.
I'll find what went wrong and fix it tomorrow. Please tell if the approach itself LG.

Jan 29 2020, 9:21 AM · Restricted Project
ilya-biryukov added a parent revision for D73638: [AST] Move dependence computations into a separate file: D71920: [AST] Refactor propagation of dependency bits. NFC.
Jan 29 2020, 9:21 AM · Restricted Project
ilya-biryukov added a child revision for D71920: [AST] Refactor propagation of dependency bits. NFC: D73638: [AST] Move dependence computations into a separate file.
Jan 29 2020, 9:21 AM · Restricted Project
ilya-biryukov accepted D73617: [clangd] Don't mmap source files on all platforms --> don't crash on git checkout.

LGTM!

Jan 29 2020, 9:21 AM · Restricted Project
Herald added a reviewer for D73638: [AST] Move dependence computations into a separate file: shafik.
Jan 29 2020, 9:21 AM · Restricted Project

Jan 28 2020

ilya-biryukov added a comment to D71920: [AST] Refactor propagation of dependency bits. NFC.

I've opted for duplicating the common flags across all the introduced enums (contains-unexpanded-pack, instantiation-dependent) , this is somewhat ugly, but everything else is even more complicated to use.
Less enums would also be a good idea probably, see the relevant comment.

Jan 28 2020, 11:46 AM · Restricted Project
ilya-biryukov updated the diff for D71920: [AST] Refactor propagation of dependency bits. NFC.
  • Use different types for different AST categories
  • Rename to getDependence
Jan 28 2020, 11:46 AM · Restricted Project
ilya-biryukov added inline comments to D71920: [AST] Refactor propagation of dependency bits. NFC.
Jan 28 2020, 2:05 AM · Restricted Project

Jan 27 2020

ilya-biryukov updated the diff for D71920: [AST] Refactor propagation of dependency bits. NFC.
  • Use DependencyFlags for TemplateName and NestedNameSpecifier
Jan 27 2020, 8:25 AM · Restricted Project

Jan 26 2020

ilya-biryukov added a comment to rGd08563486e06: [clangd] Make Notification a little safer..

Maybe move this into LLVM helpers? Duplicating threading primitives sounds like a bad idea, even for tests.

Jan 26 2020, 10:12 PM
ilya-biryukov added inline comments to D72508: [clangd] Support pseudo-obj expr, opaque values, and property references in findExplicitReferences().
Jan 26 2020, 10:12 PM · Restricted Project

Jan 14 2020

ilya-biryukov updated the diff for D72334: [Syntax] Build nodes for template declarations..
  • Rebase
Jan 14 2020, 10:14 AM · Restricted Project
ilya-biryukov updated the diff for D72089: [Syntax] Build declarator nodes.
  • Rebase, get rid of accidental changes with TemplateDeclaration
Jan 14 2020, 10:13 AM · Restricted Project
ilya-biryukov added a comment to D72715: [clang][CodeComplete] Propogate printing policy to FunctionDecl.

The patch contains only tests, are we missing the actual functional change?

Jan 14 2020, 9:36 AM · Restricted Project
ilya-biryukov committed rG013c07f69788: [Syntax] Unset IsOriginal flag on nodes removed from the tree (authored by ilya-biryukov).
[Syntax] Unset IsOriginal flag on nodes removed from the tree
Jan 14 2020, 8:03 AM
ilya-biryukov committed rG07a41018e9d2: [Syntax] Mark synthesized nodes as modifiable (authored by ilya-biryukov).
[Syntax] Mark synthesized nodes as modifiable
Jan 14 2020, 7:43 AM
ilya-biryukov committed rG3b929fe77635: [Syntax] Assert invariants on tree structure and fix a bug in mutations (authored by ilya-biryukov).
[Syntax] Assert invariants on tree structure and fix a bug in mutations
Jan 14 2020, 7:34 AM

Jan 13 2020

ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.

Currently, I think that in most cases, showing both expanded (canonical) and spelled types is sufficient.

This has been used in ycmd for ~4 years without complaint. https://github.com/clangd/clangd/issues/58#issuecomment-507800970

Jan 13 2020, 5:29 AM · Restricted Project

Jan 12 2020

ilya-biryukov updated the diff for D71920: [AST] Refactor propagation of dependency bits. NFC.
  • Add compound assignment operations
Jan 12 2020, 9:34 PM · Restricted Project
ilya-biryukov created D72581: [Syntax] Add mapping from spelled to expanded tokens for TokenBuffer.
Jan 12 2020, 9:16 PM · Restricted Project
ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.
  • hover over the front , you'll see "instance-method frontstd::vector<int, class std::allocator<int> >::reference".
  • hover over the push_back, you'll see "std::vector<int, class std::allocator<int> >::value_type && __x".
Jan 12 2020, 8:39 PM · Restricted Project
ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.

@ilya-biryukov @kadircet what do you think about unwrapping decltype only when it's a return value (optional: of a function whose leading return type is auto) to narrowly catch this idiom?

Jan 12 2020, 8:30 PM · Restricted Project
ilya-biryukov added a comment to D65591: [AST] Add a flag indicating if any subexpression had errors.

@ilya-biryukov Did I forget anything?

Jan 12 2020, 1:18 AM · Restricted Project

Jan 10 2020

ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.

Maybe we want both the normal type and the canonical type?

Canonical types are often *really* ugly, especially with STL types (we don't have the "as written" form). And presenting the types twice might be at least as confusing/noisy as helpful. But if you have examples where this would be better, it'd be interesting.

I'm mostly trying to find a consistent rule we can apply to make these decision.
auto, decltype and typedefs are very similar in this regard, it's a bit confusing we use different rules for those. Although I can see how auto and decltype could easily be perceived differently and fall into a different group.

Jan 10 2020, 6:09 AM · Restricted Project
ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.

I think typedef and decltype have different nature, the latter is a lot more obscure than the former, that was the reason why I handled decltypes specifically.

I tend to disagree here. decltype is normally the last resort, so whatever it produces is probably super-obscure, would even expect it to be not representable in C++ in many cases.
E.g.

auto Callback = []() { ... };
decltype(Callback) ^a = Callback;
Jan 10 2020, 6:07 AM · Restricted Project
ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.

It's particularly unclear to me why typeprinter descends into auto but prints decltype, but Kadir says that seems to be intentional.

Also don't see why they choose to have this inconsistency and I haven't seen any indication it's not a coincidence.
@kadircet, why do you think it's intentional? Should we put some comments there?

Jan 10 2020, 6:07 AM · Restricted Project
ilya-biryukov committed rG57a51b689e7b: [CodeComplete] Suggest 'return nullptr' in functions returning pointers (authored by ilya-biryukov).
[CodeComplete] Suggest 'return nullptr' in functions returning pointers
Jan 10 2020, 4:44 AM
ilya-biryukov closed D72497: [CodeComplete] Suggest 'return nullptr' in functions returning pointers.
Jan 10 2020, 4:44 AM · Restricted Project
ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.

Could it be the case that we want to show the canonical types (i.e. without all syntax sugar)?
Maybe we want both the normal type and the canonical type?

Jan 10 2020, 4:33 AM · Restricted Project
ilya-biryukov added a comment to D72498: [clangd] Print underlying type for decltypes in hover.

This does not work for more complicated types, though?
E.g. decltype(a+b)* a or vector<decltype(a+b)> a?

Jan 10 2020, 4:33 AM · Restricted Project
ilya-biryukov created D72497: [CodeComplete] Suggest 'return nullptr' in functions returning pointers.
Jan 10 2020, 2:59 AM · Restricted Project
ilya-biryukov requested changes to D72494: [clangd] Fix targetDecl() on certain usage of ObjC properties..

Could you also add a test (and possibly support this in the visitors) for findExplicitReferences?

Jan 10 2020, 1:47 AM · Restricted Project

Jan 9 2020

ilya-biryukov committed rG759c90456d41: [Syntax] Update comment, remove stale FIXME. NFC (authored by ilya-biryukov).
[Syntax] Update comment, remove stale FIXME. NFC
Jan 9 2020, 11:25 PM
ilya-biryukov accepted D72462: [clangd] Fix markdown rendering in VSCode.

LGTM

Jan 9 2020, 11:25 PM · Restricted Project
ilya-biryukov added inline comments to D59887: [Syntax] Introduce TokenBuffer, start clangToolingSyntax library.
Jan 9 2020, 11:25 PM · Restricted Project
ilya-biryukov accepted D72355: [clangd] Assert that the testcases in FindExplicitReferencesTest.All have no diagnostics.

LGTM, thanks!

Jan 9 2020, 11:13 PM · Restricted Project
ilya-biryukov added inline comments to D59887: [Syntax] Introduce TokenBuffer, start clangToolingSyntax library.
Jan 9 2020, 11:13 PM · Restricted Project
ilya-biryukov accepted D72458: [clangd] Adjust diagnostic range to be inside main file.

LGTM

Jan 9 2020, 8:49 AM · Restricted Project
ilya-biryukov updated the diff for D72446: [Syntax] Build mapping from AST to syntax tree nodes.
  • Remove debug logs
  • Cosmetics
Jan 9 2020, 5:59 AM · Restricted Project
ilya-biryukov added a parent revision for D72446: [Syntax] Build mapping from AST to syntax tree nodes: D72334: [Syntax] Build nodes for template declarations..
Jan 9 2020, 5:50 AM · Restricted Project
ilya-biryukov updated the diff for D72446: [Syntax] Build mapping from AST to syntax tree nodes.

Remove the (now redundant) NodeAndRole class

Jan 9 2020, 5:50 AM · Restricted Project
ilya-biryukov added a child revision for D72334: [Syntax] Build nodes for template declarations.: D72446: [Syntax] Build mapping from AST to syntax tree nodes.
Jan 9 2020, 5:50 AM · Restricted Project
ilya-biryukov created D72446: [Syntax] Build mapping from AST to syntax tree nodes.
Jan 9 2020, 5:50 AM · Restricted Project
ilya-biryukov added a comment to D72119: [clangd] Handle DeducedTemplateSpecializationType in TargetFinder.

Here's my attempt at storing the deduced type in TypeLocs: D72442.
It almost worked, but still needs an update to fix some test failures.

Jan 9 2020, 3:50 AM · Restricted Project
ilya-biryukov planned changes to D72442: [Sema] Store deduced type in TypeLoc.

This produces the following test failures after running check-clang:

Failing Tests (4):                                                                                                                                                                                                 
    Clang :: CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.class.deduct/p1.cpp                                                                                                                                            
    Clang :: SemaCXX/cxx1z-class-template-argument-deduction.cpp                                                                                                                                                   
    Clang-Unit :: Rename/./ClangRenameTests/RenameClassTests/RenameClassTest.RenameClasses/34                                                                                                                      
    Clang-Unit :: Rename/./ClangRenameTests/RenameEnumTests/RenameEnumTest.RenameEnums/7
Jan 9 2020, 3:50 AM · Restricted Project
ilya-biryukov created D72442: [Sema] Store deduced type in TypeLoc.
Jan 9 2020, 3:45 AM · Restricted Project

Jan 7 2020

ilya-biryukov added a comment to D71920: [AST] Refactor propagation of dependency bits. NFC.

@rsmith, gentle ping. WDYT? Is this a step in the right direction?

Jan 7 2020, 11:29 PM · Restricted Project
ilya-biryukov requested changes to D72355: [clangd] Assert that the testcases in FindExplicitReferencesTest.All have no diagnostics.
Jan 7 2020, 11:20 PM · Restricted Project
ilya-biryukov added a comment to D72119: [clangd] Handle DeducedTemplateSpecializationType in TargetFinder.

I'm also looking into fixing this in clang, this shouldn't be too hard.
But please land the workaround for now.

Jan 7 2020, 11:20 PM · Restricted Project
ilya-biryukov accepted D72119: [clangd] Handle DeducedTemplateSpecializationType in TargetFinder.

LGTM

Jan 7 2020, 11:11 PM · Restricted Project
ilya-biryukov updated the diff for D72334: [Syntax] Build nodes for template declarations..
  • Cosmetics
Jan 7 2020, 7:24 AM · Restricted Project
ilya-biryukov added a parent revision for D72334: [Syntax] Build nodes for template declarations.: D72089: [Syntax] Build declarator nodes.
Jan 7 2020, 7:24 AM · Restricted Project
ilya-biryukov created D72334: [Syntax] Build nodes for template declarations..
Jan 7 2020, 7:24 AM · Restricted Project
ilya-biryukov added a child revision for D72089: [Syntax] Build declarator nodes: D72334: [Syntax] Build nodes for template declarations..
Jan 7 2020, 7:24 AM · Restricted Project
ilya-biryukov accepted D71406: [clangd] Add xref for macros to FileIndex..

LGTM

Jan 7 2020, 3:04 AM · Restricted Project
ilya-biryukov added inline comments to D71406: [clangd] Add xref for macros to FileIndex..
Jan 7 2020, 12:45 AM · Restricted Project
ilya-biryukov added a comment to D67224: [clangd] Enable completions with fixes in VSCode.

Just throwing a wild idea out there: what if we used textDocument/onTypeFormatting to replace the . with -> as soon as it's typed?

Jan 7 2020, 12:36 AM · Restricted Project

Jan 3 2020

ilya-biryukov added inline comments to D71596: [clangd] Improve documentation for auto and implicit specs.
Jan 3 2020, 9:09 AM · Restricted Project
ilya-biryukov added inline comments to D71596: [clangd] Improve documentation for auto and implicit specs.
Jan 3 2020, 9:09 AM · Restricted Project
ilya-biryukov accepted D72163: [clangd] targetDecl() returns only NamedDecls..

LGTM

Jan 3 2020, 8:59 AM · Restricted Project
ilya-biryukov added inline comments to D71596: [clangd] Improve documentation for auto and implicit specs.
Jan 3 2020, 5:29 AM · Restricted Project
ilya-biryukov added inline comments to D71596: [clangd] Improve documentation for auto and implicit specs.
Jan 3 2020, 3:46 AM · Restricted Project
ilya-biryukov committed rG04f627f6b9ae: [Syntax] Build spanning SimpleDecalration for classes, structs, etc (authored by ilya-biryukov).
[Syntax] Build spanning SimpleDecalration for classes, structs, etc
Jan 3 2020, 3:37 AM
ilya-biryukov added inline comments to D71596: [clangd] Improve documentation for auto and implicit specs.
Jan 3 2020, 2:12 AM · Restricted Project
ilya-biryukov added inline comments to D71596: [clangd] Improve documentation for auto and implicit specs.
Jan 3 2020, 1:15 AM · Restricted Project
ilya-biryukov requested changes to D72119: [clangd] Handle DeducedTemplateSpecializationType in TargetFinder.

Please add a test for findExplicitReferences too

Jan 3 2020, 1:03 AM · Restricted Project

Jan 2 2020

ilya-biryukov added a parent revision for D72089: [Syntax] Build declarator nodes: D72073: [Sema] Fix location of star ('*') inside MemberPointerTypeLoc.
Jan 2 2020, 8:33 AM · Restricted Project
ilya-biryukov added a child revision for D72073: [Sema] Fix location of star ('*') inside MemberPointerTypeLoc: D72089: [Syntax] Build declarator nodes.
Jan 2 2020, 8:33 AM · Restricted Project
ilya-biryukov added a parent revision for D72089: [Syntax] Build declarator nodes: D72072: [AST] Respect shouldTraversePostOrder when traversing type locs.
Jan 2 2020, 8:33 AM · Restricted Project
ilya-biryukov added a child revision for D72072: [AST] Respect shouldTraversePostOrder when traversing type locs: D72089: [Syntax] Build declarator nodes.
Jan 2 2020, 8:33 AM · Restricted Project
ilya-biryukov created D72089: [Syntax] Build declarator nodes.
Jan 2 2020, 8:33 AM · Restricted Project
ilya-biryukov added inline comments to D71920: [AST] Refactor propagation of dependency bits. NFC.
Jan 2 2020, 8:14 AM · Restricted Project
ilya-biryukov added a comment to D72085: [clangd] Fix hover for functions inside templated classes.

I landed a patch that does exactly this a few days ago:
14e11005d1a6ac1fecb230c470e9011d6956b8e4

Jan 2 2020, 8:04 AM · Restricted Project
ilya-biryukov updated the summary of D67224: [clangd] Enable completions with fixes in VSCode.
Jan 2 2020, 6:19 AM · Restricted Project
ilya-biryukov updated the summary of D67224: [clangd] Enable completions with fixes in VSCode.
Jan 2 2020, 6:19 AM · Restricted Project
ilya-biryukov accepted D71652: [clangd] Replace shortenNamespace with getQualification.

LGTM

Jan 2 2020, 6:14 AM · Restricted Project
ilya-biryukov created D72073: [Sema] Fix location of star ('*') inside MemberPointerTypeLoc.
Jan 2 2020, 3:02 AM · Restricted Project
ilya-biryukov added a comment to D72072: [AST] Respect shouldTraversePostOrder when traversing type locs.

Would be nice to write a test too, but didn't get to it yet...

Jan 2 2020, 2:43 AM · Restricted Project
ilya-biryukov created D72072: [AST] Respect shouldTraversePostOrder when traversing type locs.
Jan 2 2020, 2:36 AM · Restricted Project
ilya-biryukov added inline comments to D71920: [AST] Refactor propagation of dependency bits. NFC.
Jan 2 2020, 2:16 AM · Restricted Project
ilya-biryukov updated the diff for D71920: [AST] Refactor propagation of dependency bits. NFC.
  • Use DependencyFlagsBits for computing NumExprBits
  • Reformat
Jan 2 2020, 2:07 AM · Restricted Project

Dec 31 2019

ilya-biryukov committed rG4f82af81a04d: [Attributor] Suppress unused warnings when assertions are disabled. NFC (authored by ilya-biryukov).
[Attributor] Suppress unused warnings when assertions are disabled. NFC
Dec 31 2019, 1:29 AM

Dec 30 2019

ilya-biryukov accepted D71965: include missing <cstdlib> for std::abort.

LGTM. Do you have commit access or should we land this for you?

Dec 30 2019, 1:40 AM · Restricted Project, Restricted Project
ilya-biryukov added a comment to D71982: [docs] Update path to clang-tools-extra.

+1, please upload a diff with full context

Dec 30 2019, 1:38 AM · Restricted Project, Restricted Project

Dec 28 2019

ilya-biryukov added a comment to D71962: Fix crash in getFullyQualifiedName for inline namespace.

Thanks for fixing this!

Dec 28 2019, 8:34 AM · Restricted Project
ilya-biryukov accepted D71962: Fix crash in getFullyQualifiedName for inline namespace.

LGTM

Dec 28 2019, 8:34 AM · Restricted Project

Dec 27 2019

ilya-biryukov added inline comments to D71920: [AST] Refactor propagation of dependency bits. NFC.
Dec 27 2019, 1:37 AM · Restricted Project
ilya-biryukov added a comment to D71920: [AST] Refactor propagation of dependency bits. NFC.

Also note that this change does not move any code around to make sure this change is easy to review and validate that the code is doing the same thing.
I'm also planning to move all the code that computes dependencies into one place (it's currently scattered around many files and it certainly makes it quite hard to find bugs in the code and update it). But I would really like to get everyone aligned on the direction we're taking here.

Dec 27 2019, 1:37 AM · Restricted Project
ilya-biryukov added a comment to D71920: [AST] Refactor propagation of dependency bits. NFC.

@rsmith, could you please take a look and let me know whether you think adding a new type for this makes sense?

Dec 27 2019, 1:29 AM · Restricted Project
ilya-biryukov created D71920: [AST] Refactor propagation of dependency bits. NFC.
Dec 27 2019, 1:28 AM · Restricted Project
ilya-biryukov committed rGe2d9f4e6a284: [clangd] Reformat `HoverTests.cpp` NFC (authored by ilya-biryukov).
[clangd] Reformat `HoverTests.cpp` NFC
Dec 27 2019, 12:43 AM
ilya-biryukov committed rG14e11005d1a6: [clangd] Fix crash in hover (authored by ilya-biryukov).
[clangd] Fix crash in hover
Dec 27 2019, 12:16 AM