ilya-biryukov marked 4 inline comments as done.
ilya-biryukov added inline comments.


================
Comment at: clangd/Quality.h:98
+  /// Whether the item matches the type expected in the completion context.
+  bool TypeMatchesPreferred = false;
   /// FIXME: unify with index proximity score - signals should be
----------------
sammccall wrote:
> ilya-biryukov wrote:
> > sammccall wrote:
> > > sammccall wrote:
> > > > you've inserted in the middle of the file proximity stuff :-)
> > > Generally we'd put both context/symbol types as the signal here, rather 
> > > than just whether they match, unless it's prohibitive. They'd get 
> > > populated manually, and by merge() overloads, respectively.
> > I did it to avoid inefficiencies of:
> > 1. copying the context type for each completion item,
> > 2. copying the symbol type for each of the indexed items.
> > 
> > My understanding is that (1) can be avoided by storing a reference to a 
> > type, since it outlives the signals.
> > But we'll still have to do a copy for (2), right?
> > 
> > That's probably not a bottleneck anyway, but keeping it a bool flag for now 
> > and happy to change it  to your liking.
> Agree with your analysis.
> 
> I think our goal here should be to have a model with small # of per-symbol 
> types, and small size of each type, so the per-symbol copy would be cheap. 
> Sequencing is tricky - we don't have that optimization yet. Can we replay a 
> session with some code completion and see if it shows up in a profiler?
> 
> (Perfect would be one type per symbol, types are 8-byte hashes. Unfortunately 
> I think pointer->base conversions mean symbols must admit multiple tokens. 
> But I have some ideas...)
After discussing offline, we ended up with a bunch of flags to indicate whether:
1. a symbol or a sema decl had a type,
2. a context had a type,
3. those types were the same.

Let me know if that look ok. The bit that I don't like is that they're computed 
ad-hoc outside the merge function, which is a bit ugly.


Repository:
  rCTE Clang Tools Extra

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D52276/new/

https://reviews.llvm.org/D52276



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

Reply via email to