glean/lang/clang/ast.cpp (21 lines): - line 52: // TODO: We don't handle class-scope UsingDecls for now as we'd have to - line 162: // TODO: We should probably cache this rather than recomputing every - line 253: // TODO: This is very hacky, make it better. - line 499: // TODO: is this always public? - line 598: return decl; // TODO: is this right? - line 603: return decl; // TODO: is this right? - line 608: return decl; // TODO: is this right? - line 628: return decl; // TODO: is this right? - line 633: return decl; // TODO: is this right? - line 638: return decl; // TODO: is this right? - line 643: return decl; // TODO: is this right? - line 796: // FIXME: complete - line 1156: // TODO: should we ignore deleted functions or have some info about them? - line 1795: // TODO: complete - line 1807: // TODO: remove? - line 2015: // TODO: It's not clear if/when this is used instead of - line 2029: // FIXME: This isn't quite right, the qualified name should be - line 2033: // FIXME: This isn't quite right, the qualified name should be - line 2077: // TODO: set the right context for constructor initialisers and exception - line 2103: // TODO: We aren't cross-referencing local variables for now but should - line 2113: // TODO: can this ever happen? or will it always be a MemberExpr? glean/glass/Glean/Glass/Pretty/Cxx.hs (6 lines): - line 140: -- TODO: there is a bug with const - line 184: Cxx.FunctionName_key_literalOperator _ -> True -- TODO: check it - line 185: Cxx.FunctionName_key_conversionOperator _ -> True -- TODO: check it - line 251: -- TODO: Make it better. Seems to be prone to errors - line 261: -- TODO: Decide anonymousNamespace | intentionallyEmpty | missingKey - line 268: -- TODO: Decide anonymousNamespace | intentionallyEmpty | missingKey glean/rts/cache.h (4 lines): - line 44: /// TODO: Switch to a variant of the Clock algorithm or something similar which - line 46: /// TODO: We probably want to remove facts which haven't been used for some time - line 48: /// TODO: Say we cache the result of idByKey but then only ever do typeById - line 52: /// TODO: We want to share one capacity between all db caches. glean/rts/ownership.cpp (4 lines): - line 209: // TODO: Store the set in the DB and assign it to the current fact. - line 221: // TODO: Try adding a fixed-size LRU (or LFU?) cache for set unions? - line 254: // TODO: We can drop the current's fact ownership info here - could shrink - line 277: // TODO: Should `completeOwnership` work with the trie rather than a glean/lang/clang/db.cpp (4 lines): - line 40: // TODO: Do we want to resolve symlinks ourselves instead of using - line 215: // TODO: What should we do if it's invalid? - line 222: // FIXME: what *should* we do if the end of the range is in a different - line 236: // FIXME: This is quite expensive and not always used. We should do this glean/db/Glean/Database/Storage/Memory.hs (3 lines): - line 66: -- FIXME: This is a terrible hack to ensure we don't remove everything when - line 76: -- TODO: ownership - line 81: -- TODO: ownership glean/db/Glean/Database/Work.hs (3 lines): - line 278: -- TODO: Clean up work queue - this will happen as workers - line 378: -- TODO: Move to Configerator (T64608954) - line 382: -- TODO: Move to Configerator (T64608954) glean/glass/Glean/Glass/Repos.hs (3 lines): - line 175: -- TODO: exception handling behavior - line 185: -- TODO: this should pass the configured repo list through - line 207: -- TODO: should take latest configuration repo list glean/db/Glean/Database/Catalog/Local/Files.hs (3 lines): - line 70: -- TODO: make this atomic if necessary (cf. renameat2) - line 78: -- TODO: make this atomic if necessary - line 84: -- TODO: make this atomic if necessary glean/cpp/glean.h (3 lines): - line 272: // TODO: Validate UTF-8? - line 442: // TODO: This is a temporary hack for backwards compatibility, add proper - line 507: // TODO: verify that predicates have the expected types glean/db/Glean/Write/JSON.hs (3 lines): - line 149: , idsRef :: {-# UNPACK #-} !(IORef [Fid]) -- TODO: use a Storable Vector - line 176: -- TODO: avoid copy - line 301: -- TODO: avoid the encodeUtf8 (name should really be a glean/bench/ServerQueryBench.hs (3 lines): - line 20: -- TODO: The queries shouldn't be hardcoded here and there should be a lot more - line 23: -- TODO: Better statistical analysis. - line 25: -- TODO: More knobs. glean/db/Glean/Database/Catalog.hs (3 lines): - line 225: -- TODO: What do we do in this case? - line 229: -- TODO: this is lame - it's not clear what to do if we can't - line 490: -- TODO: This isn't very efficient glean/if/glean.thrift (2 lines): - line 33: // Used to identify versions of a predicate (TODO: merge with schema.thrift) - line 180: 1: Repo stacked; // TODO remove? glean/glass/Glean/Glass/Query/Cxx.hs (2 lines): - line 89: -- TODO: we can generalize this to return more traces - line 256: -- TODO: this could be replaced with a single bulk fetch and Decl glean/glass/Glean/Glass/Logging.hs (2 lines): - line 140: -- TODO: Support logging multiple repos - line 189: -- TODO: Support logging multiple dbs glean/db/Glean/Database/Open.hs (2 lines): - line 185: -- TODO: different error? - line 394: -- TODO: later we will store the slice in the stacked DB, and read it glean/hs/Glean/RTS.hs (2 lines): - line 201: -- TODO: reimplement based on dByteStringRef - line 229: -- TODO: reimplement based on dStringRef glean/db/Glean/Query/Codegen.hs (2 lines): - line 484: -- TODO: matching like this is a bit janky. - line 666: -- TODO: if this is a trusted fact ID (i.e. not supplied by glean/rts/cache.cpp (2 lines): - line 194: // FIXME: probably do this before f - line 285: // TODO: defer this, see comments in evict glean/db/Glean/Database/Write/Batch.hs (2 lines): - line 81: -- TODO: Start substituting the next batch while the current batch - line 114: -- TODO: What if someone is already deduplicating another batch? Should we glean/lib/Glean/Search/Search.hs (2 lines): - line 275: -- TODO: scoped searches for Objc methods - line 282: -- TODO: extend this to include all selectors with ident glean/config/thrift_build.rs (1 line): - line 31: // TODO: replace canonicalize() with std::path::absolute() when glean/rts/lookup.cpp (1 line): - line 202: // TODO: If we're doing a prefix seek and demand requires values, this glean/rts/stacked.h (1 line): - line 125: // TODO: We probably want to look up in stacked first but the current glean/config/client/thrift_build.rs (1 line): - line 32: // TODO: replace canonicalize() with std::path::absolute() when glean/glass/Glean/Glass/Path.hs (1 line): - line 16: -- TODO: We probably want to read the repo config from a file, or put it in a glean/rts/factset.h (1 line): - line 127: // TODO: make this into an iterator over facts glean/db/Glean/Query/Reorder.hs (1 line): - line 252: Just (x, classifyPattern lhsScope key) -- TODO lookupScope here is wrong glean/rts/ownership/slice.h (1 line): - line 93: // TODO: this is wrong glean/hs/Glean/Query/Angle.hs (1 line): - line 392: TODO: glean/lang/clang/index.cpp (1 line): - line 634: // TODO: log this to Scuba if it turns out to happen a lot glean/glass/Glean/Glass/Main.hs (1 line): - line 106: -- TODO: snapshot the env, rather than passing in the mutable fields glean/lib/Glean/Util/EntityUtils.hs (1 line): - line 143: -- TODO: glean.cabal (1 line): - line 847: -- TODO: move into facebook/ ? glean/db/Glean/Database/Storage.hs (1 line): - line 113: -- ownership. (TODO: support ownership in the memory backend and glean/hs/Glean/RTS/Traverse.hs (1 line): - line 63: -- TODO: read byte rather than Nat if arity <= 127 glean/config/server/thrift_build.rs (1 line): - line 31: // TODO: replace canonicalize() with std::path::absolute() when glean/hs/Glean/RTS/Bytecode/Code.hs (1 line): - line 340: -- FIXME: This can loop if the generated code contains infinite loops glean/db/Glean/Database/Ownership.hs (1 line): - line 49: -- TODO: try the other layers when this is a stack glean/db/Glean/Query/UserQuery.hs (1 line): - line 1016: -- TODO: we should probably have MatchRefs [Fid] for glean/rts/factset.cpp (1 line): - line 360: // TODO: implement glean/db/Glean/Database/Logger.hs (1 line): - line 37: , Logger.setUploadDestination "" -- TODO: not sure how to glean/lang/clang/path.h (1 line): - line 29: /// TODO: We probably want to either always return a path that's relative to glean/db/Glean/Database/Schema/Types.hs (1 line): - line 175: -- TODO: This will loop if we have recursive typedefs but we don't allow glean/schema/gen/Glean/Schema/Gen/Cpp.hs (1 line): - line 219: -- FIXME: What we're currently doing still isn't enough. Consider this: glean/db/Glean/Database/Schema.hs (1 line): - line 149: TODO: we should also filter out Pids of predicates that were glean/db/Glean/Database/Create.hs (1 line): - line 106: -- FIXME: There is a tiny race here where we might fail in a weird way glean/rocksdb/rocksdb.cpp (1 line): - line 435: // TODO: initialize this lazily glean/schema/gen/Glean/Schema/Gen/Thrift.hs (1 line): - line 129: -- TODO: this shouldn't really go under schema/thrift glean/glass/Glean/Glass/Handler.hs (1 line): - line 192: -- TODO : do the plumbing via a class rather than function composition glean/glass/Glean/Glass/SymbolId/Class.hs (1 line): - line 108: -- TODO: use a short string builder glean/client/hs/Glean/Util/ShellPrint.hs (1 line): - line 400: -- FIXME: This is a terrible way to get the terminal size but we don't glean/client/hs/Glean.hs (1 line): - line 151: , Fid(..) -- TODO: Fid isn't very useful, might want to tidy up the API here glean/tools/gleancli/GleanCLI/Restore.hs (1 line): - line 143: ] -- TODO: List missing dependencies glean/db/Glean/Query/JSON.hs (1 line): - line 307: -- TODO: can be optimised if necessary glean/config/recipes/thrift_build.rs (1 line): - line 31: // TODO: replace canonicalize() with std::path::absolute() when glean/rts/ownership/setu32.h (1 line): - line 213: // TODO: try to vectorise and/or use lookup table glean/rts/ffi.cpp (1 line): - line 517: // TODO: Remove this copy glean/db/Glean/Database/Backup.hs (1 line): - line 234: -- TODO: implement buffered downloads in Manifold client glean/hs/Glean/RTS/Foreign/JSON.hs (1 line): - line 160: -- FIXME: This is a truly terrible hack. glean/db/Glean/Database/Writes.hs (1 line): - line 296: -- TODO: this could go away if we could get Thrift to use ByteString glean/rts/inventory.h (1 line): - line 123: // TODO: We implement substitution via the typechecker for now but it we