This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
<!DOCTYPE html>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>JavaFrontend__JSourceFileInfo (infer.JavaFrontend__JSourceFileInfo)</title><linkrel="stylesheet"href="../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.0"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../index.html">infer</a>» JavaFrontend__JSourceFileInfo</nav><h1>Module <code>JavaFrontend__JSourceFileInfo</code></h1></header><divclass="spec module"id="module-Array"><ahref="#module-Array"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Array/index.html">Array</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><dl><dtclass="spec value"id="val-incr_linenum"><ahref="#val-incr_linenum"class="anchor"></a><code><spanclass="keyword">val</span> incr_linenum : Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dd><p>classic Ocamllex function to update current lexbuf line at each end of line</p></dd></dl><dl><dtclass="spec value"id="val-end_pos"><ahref="#val-end_pos"class="anchor"></a><code><spanclass="keyword">val</span> end_pos : Stdlib.Lexing.lexbuf <span>-></span> int * int</code></dt><dd><p>position of the char just after lexbuf</p></dd></dl><dl><dtclass="spec value"id="val-location_suffix"><ahref="#val-location_suffix"class="anchor"></a><code><spanclass="keyword">val</span> location_suffix : string <span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int * int</code></dt><dd><p>return the exact position start of the suffix <code>classname</code> in <code>lexbuf</code></p></dd></dl><dl><dtclass="spec value"id="val-location_start"><ahref="#val-location_start"class="anchor"></a><code><spanclass="keyword">val</span> location_start : Stdlib.Lexing.lexbuf <span>-></span> int * int</code></dt><dd><p>return the position start of <code>lexbuf</code></p></dd></dl><dl><dtclass="spec type"id="type-expr"><ahref="#type-expr"class="anchor"></a><code><spanclass="keyword">type</span> expr</code><code> = </code><tableclass="variant"><trid="type-expr.AllocExpr"class="anchored"><tdclass="def constructor"><ahref="#type-expr.AllocExpr"class="anchor"></a><code>| </code><code><spanclass="constructor">AllocExpr</span></code></td></tr><trid="type-expr.OtherExpr"class="anchored"><tdclass="def constructor"><ahref="#type-expr.OtherExpr"class="anchor"></a><code>| </code><code><spanclass="constructor">OtherExpr</span></code></td></tr></table></dt><dd><p>We traverse the structure of the source file by recording the encompassing blocks in a stack of frame. We use the stack to recover the full inner class name at bytecode level</p></dd></dl><dl><dtclass="spec type"id="type-frame"><ahref="#type-frame"class="anchor"></a><code><spanclass="keyword">type</span> frame</code><code> = </code><code>{</code><tableclass="record"><trid="type-frame.short_class_name"class="anchored"><tdclass="def field"><ahref="#type-frame.short_class_name"class="anchor"></a><code>short_class_name : string;</code></td></tr><trid="type-frame.is_enum"class="anchored"><tdclass="def field"><ahref="#type-frame.is_enum"class="anchor"></a><code>is_enum : bool;</code></td></tr><trid="type-frame.next_anonymous_class"class="anchored"><tdclass="def field"><ahref="#type-frame.next_anonymous_class"class="anchor"></a><code>next_anonymous_class : int;</code></td></tr><trid="type-frame.opened_blocks"class="anchored"><tdclass="def field"><ahref="#type-frame.opened_blocks"class="anchor"></a><code>opened_blocks : int;</code></td></tr><trid="type-frame.exprs"class="anchored"><tdclass="def field"><ahref="#type-frame.exprs"class="anchor"></a><code>exprs : <span><ahref="index.html#type-expr">expr</a> list</span>;</code></td></tr></table><code>}</code></dt><dtclass="spec type"id="type-state"><ahref="#type-state"class="anchor"></a><code><spanclass="keyword">type</span> state</code><code> = </code><code>{</code><tableclass="record"><trid="type-state.stack"class="anchored"><tdclass="def field"><ahref="#type-state.stack"class="anchor"></a><code>stack : <span><ahref="index.html#type-frame">frame</a> list</span>;</code></td></tr><trid="type-state.record_location"class="anchored"><tdclass="def field"><ahref="#type-state.record_location"class="anchor"></a><code>record_location : <span>classname:string</span><span>-></span><span>col:int</span><span>-></span><span>line:int</span><span>-></span> unit;</code></td></tr></table><code>}</code></dt></dl><dl><dtclass="spec value"id="val-push"><ahref="#val-push"class="anchor"></a><code><spanclass="keyword">val</span> push : <ahref="index.html#type-frame">frame</a><span>-></span><ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-state">state</a></code></dt></dl><dl><dtclass="spec exception"id="exception-Missing_opening_bracket"><ahref="#exception-Missing_opening_bracket"class="anchor"></a><code><spanclass="keyword">exception</span></code><code><spanclass="exception">Missing_opening_bracket</span></code></dt><dtclass="spec exception"id="exception-Missing_opening_parenthesis"><ahref="#exception-Missing_opening_parenthesis"class="anchor"></a><code><spanclass="keyword">exception</span></code><code><spanclass="exception">Missing_opening_parenthesis</span></code></dt></dl><dl><dtclass="spec value"id="val-add_package"><ahref="#val-add_package"class="anchor"></a><code><spanclass="keyword">val</span> add_package : string <span>-></span><ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-state">state</a></code></dt><dtclass="spec value"id="val-pop_class"><ahref="#val-pop_class"class="anchor"></a><code><spanclass="keyword">val</span> pop_class : <ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-state">state</a></code></dt><dtclass="spec value"id="val-incr_next_anonymous"><ahref="#val-incr_next_anonymous"class="anchor"></a><code><spanclass="keyword">val</span> incr_next_anonymous : <ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-state">state</a></code></dt><dtclass="spec value"id="val-add_expr"><ahref="#val-add_expr"class="anchor"></a><code><spanclass="keyword">val</span> add_expr : <ahref="index.html#type-expr">expr</a><span>-></span><ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-state">state</a></code></dt><dtclass="spec value"id="val-pop_exprs"><ahref="#val-pop_exprs"class="anchor"></a><code><spanclass="keyword">val</span> pop_exprs : <ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-expr">expr</a> * <ahref="index.html#type-state">state</a></code></dt><dtclass="spec value"id="val-in_field_declaration_area"><ahref="#val-in_field_declaration_area"class="anchor"></a><code><spanclass="keyword">val</span> in_field_declaration_area : <ahref="index.html#type-state">state</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-get_opened_blocks"><ahref="#val-get_opened_blocks"class="anchor"></a><code><spanclass="keyword">val</span> get_opened_blocks : <ahref="index.html#type-state">state</a><span>-></span> int</code></dt><dtclass="spec value"id="val-is_enum"><ahref="#val-is_enum"class="anchor"></a><code><spanclass="keyword">val</span> is_enum : <ahref="index.html#type-state">state</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-get_next_anonymous_class"><ahref="#val-get_next_anonymous_class"class="anchor"></a><code><spanclass="keyword">val</span> get_next_anonymous_class : <ahref="index.html#type-state">state</a><span>-></span> string</code></dt><dtclass="spec value"id="val-decr_opened_blocks"><ahref="#val-decr_opened_blocks"class="anchor"></a><code><spanclass="keyword">val</span> decr_opened_blocks : <ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-state">state</a></code></dt><dtclass="spec value"id="val-incr_opened_blocks"><ahref="#val-incr_opened_blocks"class="anchor"></a><code><spanclass="keyword">val</span> incr_opened_blocks : <ahref="index.html#type-state">state</a><span>-></span><ahref="index.html#type-state">state</a></code></dt><dtclass="spec value"id="val-long_class_name"><ahref="#val-long_class_name"class="anchor"></a><code><spanclass="keyword">val</span> long_class_name : string <span>-></span><ahref="index.html#type-state">state</a><span>-></span> string</code></dt><dtclass="spec value"id="val-__ocaml_lex_tables"><ahref="#val-__ocaml_lex_tables"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_tables : Stdlib.Lexing.lex_tables</code></dt><dtclass="spec value"id="val-class_scan"><ahref="#val-class_scan"class="anchor"></a><code><spanclass="keyword">val</span> class_scan : <ahref="index.html#type-state">state</a><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_class_scan_rec"><ahref="#val-__ocaml_lex_class_scan_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_class_scan_rec : <ahref="index.html#type-state">state</a><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt><dtclass="spec value"id="val-do_at_next_left_bracket"><ahref="#val-do_at_next_left_bracket"class="anchor"></a><code><spanclass="keyword">val</span> do_at_next_left_bracket : <span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_do_at_next_left_bracket_rec"><ahref="#val-__ocaml_lex_do_at_next_left_bracket_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_do_at_next_left_bracket_rec : <span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt><dtclass="spec value"id="val-search_anonymous_class_body"><ahref="#val-search_anonymous_class_body"class="anchor"></a><code><spanclass="keyword">val</span> search_anonymous_class_body : <ahref="index.html#type-state">state</a><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_search_anonymous_class_body_rec"><ahref="#val-__ocaml_lex_search_anonymous_class_body_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_search_anonymous_class_body_rec : <ahref="index.html#type-state">state</a><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt><dtclass="spec value"id="val-found_entrance_of_anonymous_class"><ahref="#val-found_entrance_of_anonymous_class"class="anchor"></a><code><spanclass="keyword">val</span> found_entrance_of_anonymous_class : <ahref="index.html#type-state">state</a><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_found_entrance_of_anonymous_class_rec"><ahref="#val-__ocaml_lex_found_entrance_of_anonymous_class_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_found_entrance_of_anonymous_class_rec : <ahref="index.html#type-state">state</a><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt><dtclass="spec value"id="val-skip_well_parenthesized_angles"><ahref="#val-skip_well_parenthesized_angles"class="anchor"></a><code><spanclass="keyword">val</span> skip_well_parenthesized_angles : Core_kernel__Int.t <span>-></span><span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_skip_well_parenthesized_angles_rec"><ahref="#val-__ocaml_lex_skip_well_parenthesized_angles_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_skip_well_parenthesized_angles_rec : Core_kernel__Int.t <span>-></span><span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt><dtclass="spec value"id="val-skip_well_parenthesized_parentheses"><ahref="#val-skip_well_parenthesized_parentheses"class="anchor"></a><code><spanclass="keyword">val</span> skip_well_parenthesized_parentheses : Core_kernel__Int.t <span>-></span><span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_skip_well_parenthesized_parentheses_rec"><ahref="#val-__ocaml_lex_skip_well_parenthesized_parentheses_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_skip_well_parenthesized_parentheses_rec : Core_kernel__Int.t <span>-></span><span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt><dtclass="spec value"id="val-skip_string"><ahref="#val-skip_string"class="anchor"></a><code><spanclass="keyword">val</span> skip_string : <span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_skip_string_rec"><ahref="#val-__ocaml_lex_skip_string_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_skip_string_rec : <span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt><dtclass="spec value"id="val-skip_comments"><ahref="#val-skip_comments"class="anchor"></a><code><spanclass="keyword">val</span> skip_comments : <span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> unit</code></dt><dtclass="spec value"id="val-__ocaml_lex_skip_comments_rec"><ahref="#val-__ocaml_lex_skip_comments_rec"class="anchor"></a><code><spanclass="keyword">val</span> __ocaml_lex_skip_comments_rec : <span>(Stdlib.Lexing.lexbuf <span>-></span> unit)</span><span>-></span> Stdlib.Lexing.lexbuf <span>-></span> int <span>-></span> unit</code></dt></dl><dl><dtclass="spec value"id="val-collect_class_location"><ahref="#val-collect_class_location"class="anchor"></a><code><spanclass="keyword">val</span> collect_class_location : <ahref="../JavaFrontend/JClasspath/index.html#type-program">JavaFrontend.JClasspath.program</a><span>-></span><ahref="../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a><span>-></span> Base.unit</code></dt><dd><p>We scan source file <code>file</code> and record location of each class declaration</p></dd></dl></div></body></html>