This file is indexed.

/usr/share/doc/mlton/guide/WarnUnusedAnomalies is in mlton-doc 20100608-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="robots" content="index,nofollow">



<title>WarnUnusedAnomalies - MLton Standard ML Compiler (SML Compiler)</title>
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="all" href="common.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="screen" href="screen.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="print" href="print.css">


<link rel="Start" href="Home">


</head>

<body lang="en" dir="ltr">

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-833377-1";
urchinTracker();
</script>
<table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%>
  <tr>
    <td style = "
		border: 0px;
		color: darkblue; 
		font-size: 150%;
		text-align: left;">
      <a class = mltona href="Home">MLton MLTONWIKIVERSION</a>
    <td style = "
		border: 0px;
		font-size: 150%;
		text-align: center;
		width: 50%;">
      WarnUnusedAnomalies
    <td style = "
		border: 0px;
		text-align: right;">
      <table cellspacing = 0 style = "border: 0px">
        <tr style = "vertical-align: middle;">
      </table>
  <tr style = "background-color: white;">
    <td colspan = 3
	style = "
		border: 0px;
		font-size:70%;
		text-align: right;">
      <a href = "Home">Home</a>
      &nbsp;<a href = "TitleIndex">Index</a>
      &nbsp;
</table>
<div id="content" lang="en" dir="ltr">
The <tt>warnUnused</tt> <a href="MLBasisAnnotations">MLBasis annotation</a> can be used to report unused identifiers.  This can be useful for catching bugs and for code maintenance (e.g., eliminating dead code).  However, the <tt>warnUnused</tt> annotation can sometimes behave in counter-intuitive ways.  This page gives some of the anomalies that have been reported. 
    <ul>

    <li>
<p>
 Functions whose only uses are recursive uses within their bodies are not warned as unused:  
<pre class=code>
<B><FONT COLOR="#0000FF">local</FONT></B>
<B><FONT COLOR="#A020F0">fun</FONT></B> foo () = foo () : unit
<B><FONT COLOR="#A020F0">val</FONT></B> bar = <B><FONT COLOR="#A020F0">let</FONT></B> <B><FONT COLOR="#A020F0">fun</FONT></B> baz () = baz () : unit <B><FONT COLOR="#A020F0">in</FONT></B> baz <B><FONT COLOR="#A020F0">end</FONT></B>
<B><FONT COLOR="#0000FF">in</FONT></B>
<B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
 
</p>
 
<pre>Warning: z.sml 3.5.
  Unused variable: bar.
</pre></li>
    <li class="gap">
<p>
 Components of actual functor argument that are necessary to match the functor argument signature but are unused in the body of the functor are warned as unused:  
<pre class=code>
<B><FONT COLOR="#0000FF">functor</FONT></B> Warning (<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> x : t) = <B><FONT COLOR="#0000FF">struct</FONT></B>
   <B><FONT COLOR="#A020F0">val</FONT></B> y = x
<B><FONT COLOR="#0000FF">end</FONT></B>
<B><FONT COLOR="#0000FF">structure</FONT></B> X = Warning (<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> int </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> x = <B><FONT COLOR="#5F9EA0">1</FONT></B>)
</PRE>
 
</p>
 
<pre>Warning: z.sml 4.29.
  Unused type: t.
</pre></li>
    <li class="gap">
<p>
 No component of a functor result is warned as unused.  In the following, the only uses of <tt>f2</tt> are to match the functor argument signatures of <tt>functor&nbsp;G</tt> and <tt>functor&nbsp;H</tt> and there are no uses of <tt>z</tt>:  
<pre class=code>
<B><FONT COLOR="#0000FF">functor</FONT></B> F(<B><FONT COLOR="#0000FF">structure</FONT></B> X : <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>) = <B><FONT COLOR="#0000FF">struct</FONT></B>
   <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> X.t
   </FONT></B><B><FONT COLOR="#A020F0">fun</FONT></B> f1 (_ : X.t) = ()
   <B><FONT COLOR="#A020F0">fun</FONT></B> f2 (_ : X.t) = ()
   <B><FONT COLOR="#A020F0">val</FONT></B> z = ()
<B><FONT COLOR="#0000FF">end</FONT></B>
<B><FONT COLOR="#0000FF">functor</FONT></B> G(<B><FONT COLOR="#0000FF">structure</FONT></B> Y : <B><FONT COLOR="#0000FF">sig</FONT></B>
                           <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t
                           </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> f1 : t -&gt; unit
                           <B><FONT COLOR="#A020F0">val</FONT></B> f2 : t -&gt; unit
                           <B><FONT COLOR="#A020F0">val</FONT></B> z : unit
                        <B><FONT COLOR="#0000FF">end</FONT></B>) = <B><FONT COLOR="#0000FF">struct</FONT></B>
   <B><FONT COLOR="#A020F0">fun</FONT></B> g (x : Y.t) = Y.f1 x
<B><FONT COLOR="#0000FF">end</FONT></B>
<B><FONT COLOR="#0000FF">functor</FONT></B> H(<B><FONT COLOR="#0000FF">structure</FONT></B> Y : <B><FONT COLOR="#0000FF">sig</FONT></B>
                           <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t
                           </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> f1 : t -&gt; unit
                           <B><FONT COLOR="#A020F0">val</FONT></B> f2 : t -&gt; unit
                           <B><FONT COLOR="#A020F0">val</FONT></B> z : unit
                        <B><FONT COLOR="#0000FF">end</FONT></B>) = <B><FONT COLOR="#0000FF">struct</FONT></B>
   <B><FONT COLOR="#A020F0">fun</FONT></B> h (x : Y.t) = Y.f1 x
<B><FONT COLOR="#0000FF">end</FONT></B>
<B><FONT COLOR="#0000FF">functor</FONT></B> Z() = <B><FONT COLOR="#0000FF">struct</FONT></B>
   <B><FONT COLOR="#0000FF">structure</FONT></B> S = F(<B><FONT COLOR="#0000FF">structure</FONT></B> X = <B><FONT COLOR="#0000FF">struct</FONT></B> <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> unit </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>)
   <B><FONT COLOR="#0000FF">structure</FONT></B> SG = G(<B><FONT COLOR="#0000FF">structure</FONT></B> Y = S)
   <B><FONT COLOR="#0000FF">structure</FONT></B> SH = H(<B><FONT COLOR="#0000FF">structure</FONT></B> Y = S)
<B><FONT COLOR="#0000FF">end</FONT></B>
<B><FONT COLOR="#0000FF">structure</FONT></B> U = Z()
<B><FONT COLOR="#A020F0">val</FONT></B> _ = U.SG.g ()
<B><FONT COLOR="#A020F0">val</FONT></B> _ = U.SH.h ()
</PRE>
 
</p>
 
<pre></pre></li>
</ul>

</div>



<p>
<hr>
Last edited on 2007-11-01 18:32:19 by <span title="fenrir.uchicago.edu"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>