Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.coderabbit.ai/llms.txt

Use this file to discover all available pages before exploring further.

| Infer is a static analysis tool for finding bugs in C, C++, and Java code. CodeRabbit uses Infer to report issues such as null dereferences, resource leaks, and concurrency bugs on changed files.

Files

Infer will run on changed files with the following extensions:
  • .c
  • .cc
  • .cpp
  • .cxx
  • .h
  • .hh
  • .hpp
  • .hxx
  • .java
Java analysis is disabled by default. Enable reviews.tools.fbinfer.enable_java when you want CodeRabbit to analyze changed Java files with Infer.

Configuration

reviews:
  tools:
    fbinfer:
      enabled: true
      enable_java: false

Compilation database discovery

Infer uses a compilation database when one is available. CodeRabbit checks for compile_commands.json, build/compile_commands.json, and compile_commands.json files inside top-level cmake-build* directories. When no compilation database is available, CodeRabbit falls back to direct compilation for changed .c, .cc, .cpp, and .cxx files. Header-only changes need a compilation database. Java files are analyzed only when Java analysis is enabled.

When we skip Infer

CodeRabbit will skip running Infer when:
  • Infer is disabled in CodeRabbit settings or .coderabbit.yaml.
  • No changed files match the supported file types.
  • Java is the only matching language and Java analysis is not enabled.
  • Infer is already running in GitHub workflows.
  • A header-only C/C++ change has no compilation database available.

What’s next

Tool catalog

Browse all linters, security analyzers, and CI/CD integrations by category and technology.

Tools reference

Explore detailed specifications and configuration options for CodeRabbit tools.