-
Notifications
You must be signed in to change notification settings - Fork 348
/
manual.tex
107 lines (85 loc) · 2.99 KB
/
manual.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
\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.35.0}
\newcommand{\ReleaseInfo}{3.35.0 (1 Jun 2023)}
\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{called-methods-checker}
\input{resource-leak-checker}
\input{fenum-checker.tex}
\input{tainting-checker.tex}
\input{lock-checker.tex}
\input{index-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,alias,concurrency,ernst,games,generals,invariants,security,types,crossrefs}
\end{document}
% LocalWords: pt TODO JavaDocs Arg api HEVEA html ernst