1144 Commits (baaf81b554fe545088ba69fa21a1053862fd434b)

Author SHA1 Message Date
Mitya Lyubarskiy 108473e97b [nullsafe] Changes in wording of error messages: unified and more clear language
5 years ago
Mitya Lyubarskiy b860336640 [nullsafe] Render origin in a more light weight way
5 years ago
Mitya Lyubarskiy e0b688ceab [nullsafe] Don't render type origin in trivial cases
5 years ago
Nikos Gorogiannis bbb1237e90 [concurrency] add models for Android UI thread callbacks (ServiceConnection)
5 years ago
Nikos Gorogiannis 0c4d2d7a92 [starvation-whole-program] recognize Android callback methods as scheduled work
5 years ago
Nikos Gorogiannis 08df37ef76 [starvation] whole program analysis
5 years ago
Ezgi Çiçek 655096e87c [required-props] Add more tests for casting
5 years ago
Sungkeun Cho c3186578d6 [cost] Keep excluding unqualified variables by ItvUpdatedBy
5 years ago
Sungkeun Cho 50252d3152 [cost] Exclude bin-op-generated integers from control variables
5 years ago
Sungkeun Cho 0aec8a04e9 [inferbo] Substitution of array block of default case in Java
5 years ago
Ezgi Çiçek ddf6254b6f [required-props] Only report when there is a create
5 years ago
Nikos Gorogiannis 243835aca2 [starvation] extend models of scheduled work
5 years ago
Ezgi Çiçek a356ef19d7 [litho] Fix test naming convention and add another FP test
5 years ago
Ezgi Çiçek 9e5307b339 [pulse][impurity] Add Pulse Java models for get and cast
5 years ago
Sungkeun Cho ecc5c80a9b [inferbo] Fix a bug in SafeInvertedMap.join
5 years ago
Sungkeun Cho 7a5ce51901 [inferbo] Revise band semantics
5 years ago
Ezgi Çiçek 94f4ded9b4 [cost] Introduce cost issue types for functions on UI Thread
5 years ago
Sungkeun Cho e66a23a04c [infer] Narrow all loops at least once in the widening phase
5 years ago
Sungkeun Cho 0d700471c0 [inferbo] Add size alias when i=1
5 years ago
Sungkeun Cho 773766e3f7 [inferbo] Function call of Java enum values in class initializer
5 years ago
Sungkeun Cho b50e1cba51 [inferbo] Extend bound to express Min/Max(bound, bound)
5 years ago
Nikos Gorogiannis 5ea35133af [starvation] record scheduling parallel works via executors
5 years ago
Mitya Lyubarskiy 027ff479d1 [nullsafe] 3rd party annotations from the repo are respected in nullsafe
5 years ago
Mitya Lyubarskiy 3d2df4cc3c [nullsafe] Functionality to load 3rd party info from the storage
5 years ago
Ezgi Çiçek d50091bb17 [inferbo] Add models for Math.min and Math.max
5 years ago
Sungkeun Cho fa571100df [inferbo] Extend alias domain to have multiple aliases on a variable
5 years ago
Sungkeun Cho 0a8919166f [inferbo] Add a model: Object.clone
5 years ago
Nikos Gorogiannis dda0470b05 [starvation] make thread domain more precise
5 years ago
Nikos Gorogiannis d154415cd0 [starvation] add path sensitivity restricted to thread status
5 years ago
Sungkeun Cho 28cc6b33a9 [cost] Set the minimum basic cost of node
5 years ago
Mitya Lyubarskiy f9b0d06826 [nullsafe] Primitive types are always Nonnull
5 years ago
Sungkeun Cho 65c25cff23 [inferbo] Forget size alias when size changed in model
5 years ago
Nikos Gorogiannis 2b27a8ff2b [starvation] push thread status inside critical pairs
5 years ago
Sungkeun Cho 480f99cfc2 [inferbo] Avoid top value on unknown non-static function call
5 years ago
Mitya Lyubarskiy 0f1187a3a3 [nullsafe] Make Strict mode respect static methods
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
Ezgi Çiçek 02f747abca [required-props] Add new FPs
5 years ago
Mitya Lyubarskiy 6511b2052a [nullsafe] Introduce Strict mode
5 years ago
Mitya Lyubarskiy 4d52e874fc [nullsafe] Introduce DeclaredNonnull
5 years ago
Nikos Gorogiannis 734ae60cb7 [starvation] introduce a proper thread domain
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
Nikos Gorogiannis 0a06353bce [starvation] more tests documenting interaction with thread status
5 years ago
Nikos Gorogiannis 0149c3171e [starvation] hide ui-thread trace
5 years ago
Nikos Gorogiannis 31bb9b399a [starvation] add tests documenting path sensitivity FPs and FNs
5 years ago
Sungkeun Cho 5835139860 [cost] Conservative array length evaluation
5 years ago
Ezgi Çiçek 0ac75fdb31 [impurity] Hotfix broken tests
5 years ago
Ezgi Çiçek 42c4fde720 [impurity] Add initial Java support and don't run pulse twice
5 years ago
Sungkeun Cho fd16cb5985 [inferbo] Inequality for iterator alias target
5 years ago
Sungkeun Cho 83987fca96 [cost] Revise hasNext model
5 years ago
Nikos Gorogiannis 9dbe55c419 [java tracing] goodbye
5 years ago
Ezgi Çiçek 064e211e39 [inefficient-keyset] Add androidx.collections.SimpleArrayMap to eligible maps
5 years ago
Ezgi Çiçek 9882b37c6c [cost][inferbo] Add models for androidx.collection
5 years ago
Mitya Lyubarskiy fcd0efb7ba [nullsafe] Consolidate various things checking dereference and get rid of misleading names
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 c9f3e20fc4 [required-props] Add more tests showing the ineffectiveness of callee heuristic
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
Sungkeun Cho 2d26236bed [infer] Eagerly try narrowing for the outermost loops
5 years ago
Sungkeun Cho 1468dcc1d9 [inferbo] Extend alias for collection iteration loop
5 years ago
Nikos Gorogiannis 36de121dc5 [starvation] change domain to use critical pairs `(set of locks held, event)`
5 years ago
Nikos Gorogiannis fb77efea6a [starvation] add test for master-lock false positive
5 years ago
Nikos Gorogiannis f57bb9be0a [starvation] make deduplication depend on filtering config var
5 years ago
Nikos Gorogiannis 41729410ac [starvation] remove rarely-used logic for identifying locks
5 years ago
Sungkeun Cho 5303177a2d [inferbo] Symbolic value on functions returning only exception
5 years ago
Sungkeun Cho dda1486a67 [inferbo] Introduce inequality for size alias target
5 years ago
Ezgi Çiçek d163be3b87 [required-props] Added tests for Component.Builder prop added in the chain of calls.
5 years ago
Ezgi Çiçek c68dc542b7 [required-props] Refactor tests
5 years ago
Ezgi Çiçek 073e4db9d7 [required-props] Add support for checking varArgs
5 years ago
Mitya Lyubarskiy c472e95d72 [nullsafe] Add a test for field-overannotated warning
5 years ago
Sungkeun Cho c5ab00ae82 [cost] Avoid giving top to unknown global in Java
5 years ago
Sungkeun Cho 738a751d17 [cost] Add eval mode for cost substitution
5 years ago
Mitya Lyubarskiy 361e11b3be [nullsafe] When inferring type based on the formal type, respect NullsafeType instead of reading annotations
5 years ago
Sungkeun Cho 402f3115ea [cost] Strengthen condition for collecting control variables
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
Sungkeun Cho d55f5c02d5 [cost] Add modeled range
5 years ago
Sungkeun Cho 4ff2700bde [inferbo] Add InputStream.read model
5 years ago
Sungkeun Cho 2158090322 [inferbo] Extend Simple alias domain
5 years ago
Mitya Lyubarskiy 9e60679667 [nullsafe][easy] Remove duplicated test cases for condition redundant
5 years ago
Mitya Lyubarskiy b03d2fd520 [nullsafe] More test cases for Condition Redundant
5 years ago
Sungkeun Cho 21c890f23d [inferbo] Revise widen of bounds
5 years ago
Nikos Gorogiannis 3543c89c19 [lockless] detect lock acquisitions from methods annotated @Lockless
5 years ago
Sungkeun Cho afcb0ab46b [inferbo] Address collection add in loop
5 years ago
Mitya Lyubarskiy 4f8629727e [nullsafe] Delete nullsafe-gradual tests
5 years ago
Mitya Lyubarskiy 224d44d79a [nullsafe] Make intention of NullFieldAccess test explicit and add positive cases
5 years ago
Mitya Lyubarskiy 7132a84b0d [nullsafe] Reorder and add more cases for checking @PropagatesNullable annotation
5 years ago
Mitya Lyubarskiy 7a09618dc4 [nullsafe] Make test for @TrueOnNull and @FalseOnNull annotation specific about positive and negative cases
5 years ago
Mitya Lyubarskiy fbeb58c0f2 [nullafe] Consolidate different ways to suppress field not initialized
5 years ago
Mitya Lyubarskiy b1810ef3ff [nullsafe] @Nonnull should not suppress Field Not Initialized warning
5 years ago
Sungkeun Cho f79871c5fa [cost] Ignore character symbols in the cost results
5 years ago
Mitya Lyubarskiy 63a5ffb4dc [nullsafe] Make FieldNotInitialized cover negative cases together with positive ones
5 years ago
Mitya Lyubarskiy 5bd61e75f2 [nullsafe] Consolidate and expand tests for known initializers
5 years ago
Mitya Lyubarskiy 260176251c [nullsafe] Make @Initializer annotation test specific and without "builder" boilerplate
5 years ago
Mitya Lyubarskiy 0d69999de8 [nullsafe] Provide both positive and negative cases for @Cleanup annotation test
5 years ago
Mitya Lyubarskiy 090fa92c15 [nullsafe] Make FieldNotNullable test specific about both positive and negative cases
5 years ago
Mitya Lyubarskiy fe674937a4 [nullsafe] Improve the test for checking `onDestroy` handling
5 years ago
Sungkeun Cho 5e1e5d412c [inferbo] Add Java String constructor models
5 years ago
Mitya Lyubarskiy 8add080e4a [nullsafe][refactor tests] split and improve FieldNotNullable tests
5 years ago
Mitya Lyubarskiy 1046c63b0f [nullsafe] Prepare to introduce gradual mode: split tests
5 years ago
Mitya Lyubarskiy 46cf107411 [nullsafe] Remove functionality for @Present annotations
5 years ago
Sungkeun Cho ad4bc0a905 [cost] Ignore non-int symbols in the cost results
5 years ago
Sungkeun Cho a294085d9a [inferbo] Extend size alias domain for Java temporary variables
5 years ago
Mitya Lyubarskiy 2339791336 [nullsafe][EASY] rename test annotation for clarity
5 years ago
Mitya Lyubarskiy 5b0bdfb297 [nullsafe] Refine semantics of @Nonnull: obey minimum surprise principle
5 years ago
Ezgi Çiçek 193aa91b05 [litho] Hookup litho tests to main test suite
5 years ago
Sungkeun Cho fadd8cb541 [inferbo] Prune array size in Java
5 years ago
Sungkeun Cho aaa40084c4 [inferbo] Add Preconditions.checkArgument model
5 years ago
Sungkeun Cho 5f5b3de91a [inferbo] Pruning collection.size in Java
5 years ago
Sungkeun Cho 28d617b345 [cost] Revise Java's cast model
5 years ago
Sungkeun Cho e0a5cde2d5 [cost] Print elements field of collection
5 years ago
Ezgi Çiçek 22cfcc09f5 [cost] Add test about Preconditions
5 years ago
Sungkeun Cho 9c49841ebb [cost] Add Iterator.next model
5 years ago
Sungkeun Cho d3056d3309 [cost] Ignore boolean symbols in the cost results
5 years ago
Ezgi Çiçek 5fa9f89285 [cost] Fix misleading test names
5 years ago
Sungkeun Cho 7c18231c5c [cost] Revise hasNext() to avoid bottom in condition
5 years ago
Ezgi Çiçek 89782dfff9 [cost] Mask min/max symbols when printing big O
5 years ago
Ezgi Çiçek 9c5b704ddd [cost] Record bigO in error trace description
5 years ago
Ezgi Çiçek 57492f830b [inferbo] Add missing list initialization with initial capacity
5 years ago
Ezgi Çiçek 8286347ebf [inferbo] Add models for Java's Integer
5 years ago
Ezgi Çiçek b8d25d1301 [inferbo] Fix the model of Collections.emptySet
5 years ago
Sungkeun Cho f3311dfd98 [inferbo] Weak update on array contents
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 5b191c53ae [annotreach] clean up tests
5 years ago
Nikos Gorogiannis ffdc9193dc [annot-reach] complete the set of android thread annotations
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
Radu Grigore 10d87eec4e [topl] Simple error reporting.
6 years ago
Ezgi Çiçek 2db1a3b8e3 [cost,inferBo] Add models for Collections.unmodifiable* getters
6 years ago
Ezgi Çiçek 0f43930f40 [cost] Refactor cost issue types and enable detecting allocation complexity increase on cold start
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
Radu Grigore d86e2f0d1c [topl] Generate monitor.
6 years ago
Radu Grigore 047c64c528 [topl] Instrument SIL.
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 99eda7e3a8 [inferbo,cost] Fix java arrays
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 c14b917e7f [purity] Rename tests
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 639c91c29f [loop-invariance] Add FPs for modified global and static invalidation
6 years ago
Jeremy Dubreil c96e72b990 [eradicate] record example of false positive with invariants between variables
6 years ago
Jeremy Dubreil 79b0b8172d [eradicate] add a model for java.nio.file.Path.getParent()
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
Jeremy Dubreil 8d36c33d20 [eradicate] record false positive when testing the return on an assignment
6 years ago
Jeremy Dubreil 80ecc959a4 [eradicate] recording false positive example with nullability information stored into a boolean
6 years ago
Jeremy Dubreil adbf6861e9 [eradicate] record false positive when incorrectly looking up overriden methods
6 years ago
Jeremy Dubreil 4725c97fc9 [eradicate] record false positive with nullability information lost after assignment
6 years ago
Nikos Gorogiannis 1d846ba631 [racerd] kill original paths from summary
6 years ago
Jeremy Dubreil b47e2d13f3 [eradicate] simplify the analysis traces
6 years ago
Ezgi Çiçek da13e52b27 [inferbo] Generalize String.length to CharSequence.length
6 years ago
Ezgi Çiçek c85563d606 [inferbo,cost] Add cost models for java.util.Collections
6 years ago
Nikos Gorogiannis 941b63a426 [classloads] remove possible race
6 years ago
Jeremy Dubreil 07d6ab2dd6 [infer][racerd] report the thread safety violations as warnings instead of errors
6 years ago
Ezgi Çiçek f4cdc23543 [hoisting] Turn on hoisting of expensive functions by default
6 years ago
Ezgi Çiçek 7e16aafdba [loop-hoisting] Incorporate cost trace into EXPENSIVE_LOOP_INVARIANT_CALL issues
6 years ago
Ezgi Çiçek 6d25b0990d [cost,purity] Model java's Map as Collections
6 years ago
Ezgi Çiçek 105e50d432 [inferbo,cost] Add models for SparseArray
6 years ago
Ezgi Çiçek 4eec73c2f2 [loop-hoisting] Add complexity to EXPENSIVE_LOOP_INVARIANT_CALL issue message
6 years ago
Ezgi Çiçek a2140c3ae4 [hoisting] Rename LOOP_INVARIANT_CALL to EXPENSIVE_LOOP_INVARIANT_CALL and remove VariantForHoisting
6 years ago
Radu Grigore 344889775b [infer][PR] Don't join postconditions. Fixes #678.
6 years ago
Ezgi Çiçek b802620bc8 [cost] Add cost models for loop invariant functions
6 years ago
Nikos Gorogiannis 3e94fc7e16 [racerd] consider interfaces extending android.os.IInterface as automatically threadsafe
6 years ago
Nikos Gorogiannis cf6ced0580 [racerd] on-annotations
6 years ago
Nikos Gorogiannis fdcd4cf591 [racerd] modulo loc
6 years ago
Ezgi Çiçek 857c59e022 [inferbo] Add model for Java's cast
6 years ago
Ezgi Çiçek ce0ccc10ec [inferbo,cost] Add models for Java Strings
6 years ago
Nikos Gorogiannis f78dfbaeda [racerd] guardeby checks on uithread
6 years ago
Nikos Gorogiannis 98e796b006 [racerd] gate GuardedBy
6 years ago
Nikos Gorogiannis 4a75df2a83 [racerd] report only writes for GuardedBy
6 years ago
Sungkeun Cho c92d56e4ad [inferbo] Substitute symbolic value of unknown function call to top
6 years ago
Nikos Gorogiannis f32db5382f [racerd] restrict guarded by to one field/same or superclass
6 years ago
Radu Grigore 8bf65086e3 [topl] Parser for temporal properties
6 years ago
Ezgi Çiçek 713c308fc7 [inferbo] Generalize models for Java iterators
6 years ago
Nikos Gorogiannis 59a10d00d4 [racerd] guardedby
6 years ago
Dino Distefano 67b42bf021 Added new issue types for Allocation and IO
6 years ago
Ezgi Çiçek ce190547a5 [java] Add support for openjdk11
6 years ago
Dino Distefano 52b72f4bbe Added more allocation primitives
6 years ago
Wenzhe Lu ead4c44f9d Adding Long.parseLong model to nullsafe/modelTables.ml
6 years ago
Mehdi Bouaziz 564d0113b4 [Cost] More precise traces for Top
6 years ago
Ezgi Çiçek 88a1dedb90 [cost] Ignore counting dummy loads
6 years ago
Dino Distefano 3b8782a6c1 added allocation
6 years ago
Jeremy Dubreil 130a729674 [infer] report the Fragment Retains View issues as warnings instead of errors
6 years ago
Sungkeun Cho b55996d01a [inferbo] Symbolic value for global variable
6 years ago
Mehdi Bouaziz b48884bce7 [Cost] Traces for Top values
6 years ago
Mehdi Bouaziz f20e0737fd [inferbo] Extract abstract domain functor for 'set represented by its smallest element'
6 years ago
Ezgi Çiçek 340ac9d1c9 [purity] Fix global modification via argument passing
6 years ago
Jeremy Dubreil 82c4b716bf [eradicate] rename the warning raised when dereferencing nullable types
6 years ago
Sungkeun Cho a56902dc9b [inferbo] Widening threshold by comparison
6 years ago
Sungkeun Cho 8ea92c51e0 [inferbo] Suppress ALLOC_IS_ZERO for C++'s array object
6 years ago