1538 Commits (d36aae1bcfceee08f52b7e51be2a47cc06e29bf3)

Author SHA1 Message Date
Mitya Lyubarskiy f291f93248 [nullsafe] Implement class-level analysis and calculate meta-issues.
5 years ago
Ezgi Çiçek 2bd39abefc [purity] Add model for Object.clone()
5 years ago
Jules Villard 3ba91fd596 [pulse] refactor of PrePost.t vs AbductiveDomain.t
5 years ago
Ezgi Çiçek a4c3925d9a [impurity] Track unique accesses
5 years ago
Ezgi Çiçek e3c89b1f10 [impurity] Fix include_value_history
5 years ago
Jules Villard e5b50d7d46 [quandaryBO] delete :(
5 years ago
Ezgi Çiçek b90d7c42d3 [impurity] Do not add value history in impurity traces
5 years ago
Jules Villard 8e5ee67fed [config] datatype for checkers
5 years ago
Ezgi Çiçek ddd09b83fd [impurity] Refactor and ignore invalidations to constant dereferences
5 years ago
Ezgi Çiçek c144761a26 [pulse] Pull skipped calls into AbductiveDomain
5 years ago
Mitya Lyubarskiy bd83813b3e [tech debt] Remove experimental nullability checkers
5 years ago
Mitya Lyubarskiy db821846d7 [nullsafe] Respect RecentlyNonNull annotation
5 years ago
Dulma Churchill 634a42b619 [SelfInBlock] Take ns_noescape into account when reporting captured strong self.
5 years ago
Mitya Lyubarskiy e1f4da320f [nullsafe] Consistent severity for nullsafe issues.
5 years ago
Nikos Gorogiannis 876abcb283 [annotreach] stop printing trace in report
5 years ago
Mitya Lyubarskiy 73e78d9e20 [orchestration][refactoring] Introduce stronger contract for file-level callback
5 years ago
Mitya Lyubarskiy d94b365b65 Add documentation and better naming around checker callbacks
5 years ago
Artem Pianykh b50f13eb18 [nullsafe] Support Nullsafe(Local, trust=all/none) mode
5 years ago
Nikos Gorogiannis 281385203f [biabduction] kill guarded by check
5 years ago
Mitya Lyubarskiy 8ab9a7e14e [nullsafe] Don't emit Field Not Initialized warnings on @JsonField-annotated fields
5 years ago
Nikos Gorogiannis ace23a1670 [java] use plain strings instead of mangled for JavaClassName
5 years ago
Nikos Gorogiannis a85dfe6af4 [java] get type name directly from procname
5 years ago
Dulma Churchill 58913e6a1c [Infer] Dedup reports of weakSelf in Noescape block
5 years ago
Dulma Churchill 00c52a52c2 [Infer] Dedup the reporting of Captured StrongSelf
5 years ago
Dulma Churchill f6341977fb [Infer] Dedup reports of strongSelf Not checked
5 years ago
Artem Pianykh 44f41d2929 [infer] Extend annotation framework to handle wider variety of param types
5 years ago
Ezgi Çiçek 7f8ce501d0 [purity] Remove duplicated/unnecessary code
5 years ago
Jules Villard 66361961b6 [ocaml] more Not_found_s
5 years ago
Jules Villard a684a1edf0 [ocaml] preparations for core v13
5 years ago
Dulma Churchill 51c713adf2 [SelfInBlock] Improve the error message of stronSelf Not checked
5 years ago
Dulma Churchill 682f8c5355 [SelfInBlock] Add the procname to the is_no_escape_block flag to improve the error message of the weakSelf In Noescape block check
5 years ago
Dulma Churchill 7631d34f43 [SelfInBlock] Refactor the reporting to run only once over the domain
5 years ago
Dulma Churchill af380708aa [SelfInBlock] Fixing bugs in checking nullable annotation when reporting strongSelfNotChecked
5 years ago
Dulma Churchill 63428e7b69 [SelfInBlock] Check for when weakSelf is used in a no escaping block
5 years ago
Dulma Churchill 9dfd1943e6 [selfInBlock] Remove false positive from mix self weakSelf
5 years ago
Ezgi Çiçek 4677584018 [pulse] Remove map suffix from SkippedCalls
5 years ago
Ezgi Çiçek a0fd5a0e6a [pulse] Refactor attributes into domain
5 years ago
Dulma Churchill b1eb969635 [selfInBlock] Add a new check when strongSelf is captured in a (sub)block.
5 years ago
Dulma Churchill edc47d4a96 [selfInBlock] Handle conditionals as well as ifs
5 years ago
Dulma Churchill 66c6a73cc6 [SelfInBlock] Report strongSelf Not Checked when strongSelf passed to a function as argument
5 years ago
Dulma Churchill 05bd4185e0 [SelfInBlock] Reporting strongSelf Not Checked only in field access
5 years ago
Ezgi Çiçek d673bb0073 [cost] Move cost to its own realm and refactor
5 years ago
Ezgi Çiçek 2e8fc68080 [cost] Add mli file for CostDomain
5 years ago
Ezgi Çiçek dd59a141f0 [impurity] Rely on set of skipped functions to determine impurity
5 years ago
Ezgi Çiçek 95bf0d3c98 [impurity] Read pulse from Payload
5 years ago
Ezgi Çiçek a28ccbb180 [purity] Add pure frontend functions
5 years ago
Ezgi Çiçek 61b83c037d [purity] Simplify should_report
5 years ago
Sungkeun Cho 9b1001eda2 [litho] Make analysis null return aware
5 years ago
Nikos Gorogiannis a79a819679 [typ][javaclass] abstract typename
5 years ago
Ezgi Çiçek 12dcede3e9 [litho] Use read_full
5 years ago
Sungkeun Cho 4371a2c2f0 [cost][inferbo] Refactor to use Payload.read/read_full
5 years ago
Sungkeun Cho 0b7e479b34 [cost] Use actual call path when printing unknown function calls
5 years ago
Sungkeun Cho b49f39b80e [cost] Add a cost model
5 years ago
Nikos Gorogiannis 91fa6a5404 [typ] extract Procname from Typ
5 years ago
Nikos Gorogiannis 33352623a5 [typ] extract Fieldname from Typ
5 years ago
Nikos Gorogiannis cef051dd1a [typ] extract Struct module
5 years ago
Sungkeun Cho 78ff7f7942 [litho] Distinguish builder object by latest callsite
5 years ago
Sungkeun Cho 805e3f17fc [litho] Do not remove non-build-called part at build calls
5 years ago
Ezgi Çiçek 5776d7cfab [litho] Report at created location with bold message
5 years ago
Ezgi Çiçek ada1d6f3c7 [litho] Add create method to the trace and simplify trace printing
5 years ago
Ezgi Çiçek 1e1d40b460 [litho] Remove functor that is instantiated once
5 years ago
Ezgi Çiçek 9ed9363207 [litho] Remove receiver from MethodCallPrefix
5 years ago
Ezgi Çiçek 38421e2735 [litho] Remove old domain
5 years ago
Nikos Gorogiannis e42bd8cd6c [typ][fieldname] further reduce and improve interface
5 years ago
Nikos Gorogiannis 59a95b316c [typ][fieldname] simplify and streamline interface
5 years ago
Sungkeun Cho bc5f740945 [infer] make deadcode is back
5 years ago
Sungkeun Cho 6fb2a94f57 [litho] Not ignore location
5 years ago
Sungkeun Cho 1f64acf3de [litho] Moved is_build_called and added is_return_called
5 years ago
Ezgi Çiçek 47c89611a5 [litho] Remove GraphQL ShouldUpdate analysis
5 years ago
Nikos Gorogiannis ce39017611 [typ][fieldname] make java representation more sharing friendly and typesafe
5 years ago
Sungkeun Cho dc85213813 [litho] Analyze child using its code and summary
5 years ago
Sungkeun Cho 2835468df9 [litho] Add substitution at function calls
5 years ago
Sungkeun Cho 251d648f0c [litho] Add callees formal information to extras
5 years ago
Ezgi Çiçek f4d3513724 Revert "[litho] Check and report on all nodes where return calls"
5 years ago
Ezgi Çiçek 776d4bf97d [litho] Change the domain
5 years ago
Ezgi Çiçek bdd4664177 [litho] Ignore location in CreatedLocation
5 years ago
Sungkeun Cho fc3110f651 [litho] Use another method call type that compare only prefix
5 years ago
Ezgi Çiçek e356ae2b01 [litho] Treat inter-proc calls as no-op for now
5 years ago
Ezgi Çiçek cff85799de [litho] MethodCalls comparison shouldn't take receiver into account
5 years ago
Sungkeun Cho 5f77a3c1a5 [litho] Check and report on all nodes where return calls
5 years ago
Ezgi Çiçek 9c1bef41e7 [litho] Make MethodCall comparison oblivious to prop suffixes
5 years ago
Ezgi Çiçek 07cef38d1f [litho] Track Typ.name of create methods
5 years ago
Sungkeun Cho 47790ed496 [litho] Add prop check in the new domain
5 years ago
Sungkeun Cho 5514238f45 [litho] Add domain for a model called
5 years ago
Sungkeun Cho 060a0914ba [litho] Add a domain for created locations
5 years ago
Sungkeun Cho f16534f390 [litho] Add dummy memory type
5 years ago
Jules Villard bf0d1d8861 [uninit] do not spam spurious error
5 years ago
Dulma Churchill f69d0992bc [self-in-block] Add new issue type MULTIPLE_WEAKSELF
5 years ago
Dulma Churchill 431a9beaf0 [self-in-block] Improving the error message for strong_self_not_checked
5 years ago
Josh Berdine 3c6e2469de [ocamlformat] Enable parsing and reformatting docstrings
5 years ago
Sungkeun Cho 8fa098474e [cost] Fix the model of substring
5 years ago
Ezgi Çiçek fb56f42716 [infer] Rename value to arg_payload in ProcnameDispatcher.Call.FuncArg
5 years ago
Ezgi Çiçek 3d181bd831 [infer] Polymorphic value type for `FuncArg`
5 years ago
Ezgi Çiçek 3792b9b17a [infer] Record the value of function arguments in ProcnameDispatcher calls
5 years ago
Jules Villard a9df6a917f [IR] kill never-true "no_return" flag of Tfun type desc
5 years ago
Mitya Lyubarskiy 88d6f67589 [nullsafe] Support @RecentlyNullable annotation
5 years ago
Dulma Churchill 510a5e2933 [self in block] Adding traces to the Strong_self_not_checked check
5 years ago
Dulma Churchill bf581e0b72 [self in block] Add a check for strongSelf not checked for null
5 years ago
Ezgi Çiçek ddf6254b6f [required-props] Only report when there is a create
5 years ago
Ezgi Çiçek 128bf030ea [impurity] Remove mistakenly added Payload again
5 years ago
Ezgi Çiçek e6c1ee219f [litho][required-props] Enable tracking all create and build methods intra-procedurally
5 years ago
Josh Berdine 8d20e4d64d [ocamlformat] Upgrade ocamlformat version
5 years ago
Ezgi Çiçek 9e5307b339 [pulse][impurity] Add Pulse Java models for get and cast
5 years ago
Ezgi Çiçek 94f4ded9b4 [cost] Introduce cost issue types for functions on UI Thread
5 years ago
Dulma Churchill f303c9fa87 [self in block] Fix error in choosing variables fmor the domain for reporting
5 years ago
Dulma Churchill 41fffa690c [self in block] Adding traces to the mixed self with weakself check
5 years ago
Dulma Churchill 43823266ec [self in block] Add a new checker to detect correct uses of when ObjC blocks capture self.
5 years ago
Mitya Lyubarskiy 0c3e568fa4 [Pp] Rename Pp.to_string
5 years ago
Sungkeun Cho 28cc6b33a9 [cost] Set the minimum basic cost of node
5 years ago
Jules Villard 00e5ec5a4c [pulse] separate traces from their action
5 years ago
Nikos Gorogiannis e9b0ca9ce4 [AI] rename Domain.( <= ) to Domain.leq
5 years ago
Ezgi Çiçek 6781ba36d3 [impurity] Start checking equivalence at materialized addresses in pre
5 years ago
Ezgi Çiçek 75a18b5027 [required-props] Track create methods
5 years ago
Mitya Lyubarskiy 6511b2052a [nullsafe] Introduce Strict mode
5 years ago
Jules Villard e3285d1340 [pulse][8/9] Domain interface
5 years ago
Jules Villard 4ded39240f [pulse][6/9] add PulseAbstractValue to PulseBasicInterface
5 years ago
Jules Villard 994d35ed38 [pulse][5/9] add PulseAttribute{,s} to PulseBasicInterface
5 years ago
Jules Villard 27c0d7258d [pulse][4/9] add PulseTrace to PulseBasicInterface
5 years ago
Jules Villard 168237a605 [pulse][2/9] add PulseInvalidation to PulseBasicInterface
5 years ago
Ezgi Çiçek 43990ee60b [cost] Clarify outdated comments
5 years ago
Jules Villard 6a738045fd [pulse] interprocedural histories and traces
5 years ago
Nikos Gorogiannis a9c90368e8 [annotation reachability] fix bug on android annotation check
5 years ago
Jules Villard 8182514f35 [impurity] clarify string parameter of `ImpurityDomain.add_to_errlog`
5 years ago
Jules Villard 65debe4fe0 [pulse][minor] put call events in a submodule
5 years ago
Ezgi Çiçek 42c4fde720 [impurity] Add initial Java support and don't run pulse twice
5 years ago
Jules Villard 42470d8809 [hmm] sexp_{option,list} -> {option,list}
5 years ago
Ezgi Çiçek 557e2bfa3f [impurity] Consider functions with no pulse summary as impure
5 years ago
Nikos Gorogiannis 9dbe55c419 [java tracing] goodbye
5 years ago
Sungkeun Cho df40a1dbd4 [cost] Add a cost model: ImmutableSet.chooseTableSize
5 years ago
Ezgi Çiçek 064e211e39 [inefficient-keyset] Add androidx.collections.SimpleArrayMap to eligible maps
5 years ago
Nikos Gorogiannis 023b6f5905 [racerd] remove fixmes
5 years ago
Sungkeun Cho 96a8b1cf5a [cost] Add some cost models of IntHashMap
5 years ago
Sungkeun Cho cae993aae0 [cost] Add FB-specific cost model
5 years ago
Sungkeun Cho c509f1c178 [cost] Add FB-specific cost models
5 years ago
Ezgi Çiçek 08f9cd4eb8 [required-props] Improve the heuristic to check build() for summaries
5 years ago
Ezgi Çiçek 2e129a5abe [required-props] Add call chain to trace
5 years ago
Ezgi Çiçek 856dfc5b74 [litho] Split into two checkers: litho-required-props and litho-graphql-field-access
5 years ago
Nikos Gorogiannis e0d7950e07 [concurrency] fix over-eager modeling of thread status
5 years ago
Nikos Gorogiannis 965bf52bf8 [filtering/dedup] add deduplicate flag and disambiguate filtering
5 years ago
Sungkeun Cho 5303177a2d [inferbo] Symbolic value on functions returning only exception
5 years ago
Sungkeun Cho bd637bd290 [inferbo] Refactor pretty print of alias domain
5 years ago
Ezgi Çiçek 073e4db9d7 [required-props] Add support for checking varArgs
5 years ago
Ezgi Çiçek 598dcd63dc [impurity] Remove Payload
5 years ago
Sungkeun Cho 738a751d17 [cost] Add eval mode for cost substitution
5 years ago
Ezgi Çiçek 8c1fdab0a8 [java] Enhance annotation parsing with the ability to pick up parameter names
5 years ago
Nikos Gorogiannis aab8826b2a [explicittrace][easy] make call printer a functor arg
5 years ago
Nikos Gorogiannis fd40a5df6c [explicitrace] pp_human -> describe
5 years ago
Nikos Gorogiannis 58efca6328 [strings][easy] don't allocate when checking annotation endings
5 years ago
Ezgi Çiçek f7903007ee [required-props] Extend required prop setting with more custom suffixes
5 years ago
Ezgi Çiçek df712bc629 [required-props] Refine Required Props checker to only check @Prop
5 years ago
Ezgi Çiçek c5ca4db8d0 [pulse][impurity] Use pulse for detecting impurity
5 years ago
Nikos Gorogiannis 3543c89c19 [lockless] detect lock acquisitions from methods annotated @Lockless
5 years ago
Sungkeun Cho d397ea03d1 [cost] Print debug information when top value is generated
5 years ago
Mitya Lyubarskiy b00b526928 [nullsafe] Remove "Field not mutable" check
5 years ago
Sungkeun Cho 5e1e5d412c [inferbo] Add Java String constructor models
5 years ago
Sungkeun Cho 962e56cb1b [infer] Use typ instead of root_typ if possible
5 years ago
Sungkeun Cho a50fcaf2dd [infer] Use inline record for Sil.Load and Sil.Store
5 years ago
Mitya Lyubarskiy 46cf107411 [nullsafe] Remove functionality for @Present annotations
5 years ago
Sungkeun Cho 4351ba9bd1 [cost] Add version to BasicCost.t
5 years ago
Mitya Lyubarskiy 356ec9afe5 [easy] make method with side-effects looks like it has side-effects
5 years ago
Jules Villard 9e5115a9e0 [annotreach] support for new `"symbol_regexps"` matcher
5 years ago
Jules Villard 0af754f3d7 [annot reachability] apply sanitizers in more cases
5 years ago
Jules Villard 00cbc9c1e4 [annot reachability] add debug logging and light refactor
5 years ago
Ezgi Çiçek 9c5b704ddd [cost] Record bigO in error trace description
5 years ago
Jules Villard 73179f7182 [specs] put specs files operations in their own module
5 years ago
Ezgi Çiçek 0682ccc1e9 [cost][inferbo] Add models for indexOf
5 years ago
Nikos Gorogiannis 4f46567fa7 [annotreach] kill custom path sensitivity
5 years ago
Nikos Gorogiannis ffdc9193dc [annot-reach] complete the set of android thread annotations
5 years ago
Phoebe Nichols 2f6510395e Remove redundant fields from proc_callback_args
5 years ago
Phoebe Nichols a3eed439f6 Supply caller summary to Ondemand.analyze_proc_desc and Ondemand.analyze_proc_name
5 years ago
Phoebe Nichols d9535f42d5 Introduce method SummaryPayload.read_toplevel_procedure
5 years ago
Ezgi Çiçek 4114f7fbdf [inefficientKeysetIterator] Chase predecessors 4 more nodes to check the pattern
5 years ago
Ezgi Çiçek 102018734f [inefficientKeysetIterator] Add missing type checks
5 years ago
Phoebe Nichols fa1bcbe12d Change ProcData to have a summary instead of a proc_desc
5 years ago
Phoebe Nichols 13c2c84897 Remove proc_desc from proc_callback_args
5 years ago
Jules Villard c89a8d3e63 delete ownership checker
5 years ago
Jules Villard ae3089c2b2 [uninit] look at complex HIL expressions too
5 years ago
Ezgi Çiçek 898dd104c8 [cost] Invoke Cost issues only once
6 years ago
Ezgi Çiçek 0f43930f40 [cost] Refactor cost issue types and enable detecting allocation complexity increase on cold start
6 years ago
Ezgi Çiçek be85296759 [frontend] Move Preanalysis to frontend so that it is run always
6 years ago
Josh Berdine cfc1c8be36 [copyright] Remove years
6 years ago
Ezgi Çiçek d2eb3c8cc6 [inefficient-keyset-iterator] New checker for finding inefficient keySet iterator
6 years ago
Ezgi Çiçek 99bc7363bf [cost] Suppress reports on Java access methods
6 years ago
Ezgi Çiçek 19eac53f0e [cost] Add models for Collections.max/min
6 years ago
Ezgi Çiçek 0ef038332d [purity] More models for Java Map
6 years ago
Ezgi Çiçek bb9f44dee2 [cost] Fix and refactor cost models
6 years ago
Ezgi Çiçek 5b2a36409c [inferbo] Add models for org.json.JSONArray
6 years ago
Ezgi Çiçek 98ecc13a5e [inferbo,cost] Add models for java.util.Arrays and java.util.List
6 years ago
Ezgi Çiçek 2c15245260 [loop-invariance] Take purity models into account
6 years ago
Ezgi Çiçek a01a4a3658 [purity] Enhance purity models with invalidated arguments
6 years ago
Ezgi Çiçek a092c4f3f9 [cost] Generalize Java's sort model
6 years ago
Ezgi Çiçek bc082da199 [cost] Make unmodeled functions pure by default
6 years ago
Ezgi Çiçek b455baae5d [loop-invariance] Invalidate args to T function calls
6 years ago
Ezgi Çiçek d033e72196 [purity] Add tests for locality
6 years ago
Andrew Adams-Moran 0ad15356c2 Add @Cleanup annotation
6 years ago
Mehdi Bouaziz 0a5810c579 [NodePrinter] Force usage of with_session
6 years ago
David Lively 94c0cffd56 [checkers] Fiddling w/annotation-reachability-cxx trace format
6 years ago
David Lively e0ce8c4392 Add --annotation-reachability-cxx-sources override option
6 years ago
Ezgi Çiçek c85563d606 [inferbo,cost] Add cost models for java.util.Collections
6 years ago
Nikos Gorogiannis cbf0d00d09 [cost] reduce noise
6 years ago