| \documentclass[10pt]{report} |
| |
| \input{manual-style.tex} |
| |
| \title{The Checker Framework Manual: \\ Custom pluggable types for Java} |
| \author{\url{https://checkerframework.org/}} |
| \newcommand{\ReleaseVersion}{3.13.0} |
| \newcommand{\ReleaseInfo}{3.13.0 (3 May 2021)} |
| \date{Version \ReleaseInfo{}} |
| |
| \begin{document} |
| |
| %%% TODO: This file no longer exists on buffalo; must find a new file to test. |
| %% Releases are made on buffalo, so this macro is really saying |
| %% "released version of the CF" as opposed to a development version. |
| \newif\ifonbuffalo |
| %HEVEA\makeatletter\@iffileexists{/scratch/secs-jenkins/java/jdk1.7.0/LICENSE}{\onbuffalotrue}{\onbuffalofalse}\makeatother |
| %BEGIN LATEX |
| \IfFileExists{/scratch/secs-jenkins/java/jdk1.7.0/LICENSE}{\onbuffalotrue}{\onbuffalofalse} |
| %END LATEX |
| |
| \begin{center} |
| %HEVEA\imgsrc{CFLogo.png} |
| %BEGIN LATEX |
| \includegraphics{../logo/Logo/CFLogo.pdf} |
| %END LATEX |
| \end{center} |
| |
| % Permit text on title page by making \newpage a no-op while running \maketitle |
| {\let\newpage\relax \maketitle} |
| |
| |
| \noindent |
| \textbf{For the impatient:} |
| Section~\refwithpageparen{installation} |
| describes how to \textbf{install and use} pluggable type-checkers. |
| |
| %HEVEA This manual is also available in \href{https://checkerframework.org/manual/checker-framework-manual.pdf}{PDF}. |
| |
| %HEVEA \setcounter{tocdepth}{1} |
| % Not supported by Hevea, so don't bother: \dominitoc |
| \tableofcontents |
| \newpage |
| |
| \input{introduction.tex} |
| |
| %% Checkers |
| % If you add a new checker, also update the lists in introduction.tex and |
| % advanced-features.tex . |
| |
| \input{nullness-checker.tex} |
| \input{map-key-checker.tex} |
| \input{optional-checker.tex} |
| \input{interning-checker.tex} |
| \input{lock-checker.tex} |
| \input{index-checker.tex} |
| \input{called-methods-checker} |
| \input{fenum-checker.tex} |
| \input{tainting-checker.tex} |
| |
| % These are focused on strings: |
| \input{regex-checker.tex} |
| \input{formatter-checker.tex} |
| \input{i18n-format-checker.tex} |
| \input{propkey-checker.tex} |
| \input{signature-checker.tex} |
| \input{guieffect-checker.tex} |
| \input{units-checker.tex} |
| |
| % These are focused on ints: |
| \input{signedness-checker.tex} |
| |
| % Checkers that tend to be used as components of other checkers rather |
| % than used for their own sake: |
| \input{purity-checker.tex} |
| \input{constant-value-checker.tex} |
| \input{returns-receiver-checker.tex} |
| \input{reflection-checker.tex} |
| \input{initialized-fields-checker.tex} |
| \input{aliasing-checker.tex} |
| \input{must-call-checker.tex} |
| |
| % Special subtyping checker and external checkers: |
| \input{subtyping-checker.tex} |
| \input{external-checkers.tex} |
| |
| %% Advanced material |
| |
| \input{generics.tex} |
| \input{advanced-features.tex} |
| \input{warnings.tex} |
| \input{inference.tex} |
| \input{annotating-libraries.tex} |
| \input{creating-a-checker.tex} |
| \input{accumulation-checker.tex} |
| \input{external-tools.tex} |
| \input{faq.tex} |
| \input{troubleshooting.tex} |
| |
| \htmlhr |
| \bibliographystyle{alpha} |
| \bibliography{bibstring-unabbrev,types,ernst,invariants,generals,alias,concurrency,crossrefs} |
| |
| \end{document} |
| |
| % LocalWords: pt TODO JavaDocs Arg api HEVEA html ernst |