Skip to content
A static analyzer for Java, C, C++, and Objective-C
Branch: master
Clone or download
jberdine and facebook-github-bot [sledge] Hoist conditional exps above boolean exps
The backend does not generally interpret conditional expressions
specially. Therefore it is logically stronger to hoist them over other
boolean exps, for example normalizing

`e = (c ? t : f)` to `(c ? e = t : e =f)`

This enables the treatment of top-level conditional expressions in
terms of disjunction, conjunction and negation.

Reviewed By: mbouaziz

Differential Revision: D14495815

fbshipit-source-id: 4f2e8053f
Latest commit a0a8c63 Mar 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
dependencies [setup] opam 2 Nov 23, 2018
docker [lab] fix issues discovered during POPL tutorial Jan 21, 2019
examples [RFC] Format all java files Sep 27, 2018
facebook-clang-plugins @ 36266f6
infer [racerd] More cleanup in transition function Mar 18, 2019
m4 [setup] opam 2 Nov 23, 2018
scripts [release] less but also more clowny way of shipping dynamic libraries Feb 28, 2019
sledge [sledge] Hoist conditional exps above boolean exps Mar 19, 2019
.buckconfig [infer][genrule] Add example of Buck DEFS macro to generate Infer ana… Dec 10, 2016
.clang-format fix sync mishaps Jun 21, 2016
.gitmodules [infer] Add facebook clang plugins submodule Aug 18, 2015
.ocamlformat [ocamlformat] upgrade ocamlformat to 0.8 Oct 12, 2018
.travis.yml [infer][PR] Update Aug 2, 2018 [github] add issue and PR templates Feb 7, 2019
CONTRIBUTORS Inferbo Jan 31, 2017
DEFS [trace] infer subcommand for inferTraceBugs Aug 4, 2017
Makefile [purity] Enable Clang in purity analysis Mar 16, 2019 [java] Add support for openjdk11 Mar 15, 2019
Makefile.config [man] check in manual pages Sep 24, 2018 [github] add issue and PR templates Feb 7, 2019 Change license to MIT May 31, 2018 [release] preparing for binary releases Jun 4, 2018
dotbuckversion bump .buckversion Jun 22, 2018
install-sh [utils] Add CTypes binding of fts and implement remove_directory_tree Nov 20, 2016
opam [infer][PR] Move to base64.3.0.0 Feb 7, 2019
opam.locked [infer][PR] Move to base64.3.0.0 Feb 7, 2019

Infer Build Status

Infer is a static analysis tool for Java, C++, Objective-C, and C. Infer is written in OCaml.


Read our Getting Started page for details on how to install packaged versions of Infer. To build Infer from source, see




Infer is MIT-licensed.

Note: Enabling Java support may require you to download and install components licensed under the GPL.

You can’t perform that action at this time.