<html>
<head>
<style><!--
  body {background-color:#ffffff;}
  .file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
  .pathname {font-family:monospace; float:right;}
  .fileheader {margin-bottom:.5em;}
  .diff {margin:0;}
  .tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
  .tasklist ul {margin-top:0;margin-bottom:0;}
  tr.alt {background-color:#eeeeee}
  #added {background-color:#ddffdd;}
  #addedchars {background-color:#99ff99;font-weight:bolder;}
  tr.alt #added {background-color:#ccf7cc;}
  #removed {background-color:#ffdddd;}
  #removedchars {background-color:#ff9999;font-weight:bolder;}
  tr.alt #removed {background-color:#f7cccc;}
  #copied {background-color:#ccccff;}
  tr.alt #copied {background-color:#bbbbf7;}
  #info {color:#888888;}
  #context {background-color:#eeeeee;}
  td {padding-left:.3em;padding-right:.3em;}
  tr.head {border-bottom-width:1px;border-bottom-style:solid;}
  tr.head td {padding:0;padding-top:.2em;}
  .task {background-color:#ffff00;}
  .comment {white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word;padding:4px;border:1px dashed #000000;background-color:#ffffdd}
  .error {color:red;}
  hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="5">Commit in <b><tt>as2api/trunk/as2api</tt></b></td></tr>
<tr><td><tt>lib/<a href="#file1">api_loader.rb</a></tt> </td><td></td><td align="right" id="added">+65</td><td align="right" id="removed">-2</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;/<a href="#file2">doc_comment.rb</a></tt> </td><td></td><td align="right" id="added">+15</td><td align="right" id="removed">-9</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr><td><tt>lib/output/diff/<a href="#file3">api_deserializer.rb</a></tt> </td><td></td><td align="right" id="added">+21</td><td align="right" id="removed">-4</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file4">api_serializer.rb</a></tt> </td><td></td><td align="right" id="added">+22</td><td align="right" id="removed">-4</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file5">api_xml_reader.rb</a></tt> </td><td></td><td align="right" id="added">+20</td><td align="right" id="removed">-4</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr class="alt"><td><tt>lib/output/html/<a href="#file6">html_framework.rb</a></tt> </td><td></td><td align="right" id="added">+31</td><td align="right" id="removed">-45</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr><td><tt>test/<a href="#file7">tc_api_serializer.rb</a></tt> </td><td></td><td align="right" id="added">+2</td><td align="right" id="removed">-2</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file8">tc_doc_comment.rb</a></tt> </td><td></td><td align="right" id="added">+11</td><td align="right" id="removed">-4</td><td nowrap="nowrap" align="center">369 -&gt; 370</td></tr>
<tr><td></td><td></td><td align="right" id="added">+187</td><td align="right" id="removed">-74</td><td></td></tr>
</table>
<small id="info">8 modified files</small><br />
<div class="tasklist"><ul>
<li><a href="#task1">TODO: should report failures to resolve member refs during type</a></li>
<li><a href="#task2">FIXME: need to handle any link-text in the tag</a></li>
</ul></div>
<pre class="comment">
Smarter references to fields and methods make for improved formmating in the output
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname">as2api/trunk/as2api/lib</span><br />
<div class="fileheader"><big><b>api_loader.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/lib/api_loader.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/lib/api_loader.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -372,12 +372,22 @@
</small></pre><pre class="diff" id="context">     @name =~ /\./
   end
 
</pre><pre class="diff" id="added">+  def ref_method(method_name, lineno)
+    MethodRef.new(self, method_name, lineno)
+  end
+
+  def ref_field(field_name, lineno)
+    FieldRef.new(self, field_name, lineno)
+  end
+
</pre><pre class="diff" id="context">   def ==(o)
     # note that types are considered to be equal here if they have the same
     # name; we don't recursively compare their whole subgraphs
     !o.nil? &amp;&amp; name==o.name &amp;&amp;
</pre><pre class="diff" id="removed">-    ((containing_type.nil? &amp;&amp; o.containing_type.nil? ) || (containing_type.qualified_name == o.containing_type.qualified_name)) &amp;&amp;
-    ((resolved_type.nil? &amp;&amp; o.resolved_type.nil?) || (resolved_type.qualified_name == o.resolved_type.qualified_name)) &amp;&amp;
</pre><pre class="diff" id="added">+    (containing_type.nil? == o.containing_type.nil?) &amp;&amp;
+    (containing_type.nil? || containing_type.qualified_name == o.containing_type.qualified_name) &amp;&amp;
+    (resolved_type.nil? == o.resolved_type.nil?) &amp;&amp;
+    (resolved_type.nil? || resolved_type.qualified_name == o.resolved_type.qualified_name) &amp;&amp;
</pre><pre class="diff" id="context">     lineno==o.lineno
   end
 
</pre><pre class="diff"><small id="info">@@ -387,6 +397,56 @@
</small></pre><pre class="diff" id="context"> end
 
 
</pre><pre class="diff" id="added">+# A reference, by name, to a member of a type, which may or may not actually
+# exist.  See MethodRef and FieldRef for concrete implementations.
+class MemberRef
+  def initialize(type_ref, member_name, lineno)
+    @type_ref = type_ref
+    @member_name = member_name
+    @lineno = lineno
+  end
+
+  attr_reader :member_name
+
+  def type_local_name
+    @type_ref.local_name
+  end
+
+  def type_resolved?
+    @type_ref.resolved?
+  end
+  def resolved_type
+    @type_ref.resolved_type
+  end
+
+  def resolved?
<a name="task1" />+    # <span class="task">TODO</span>: should report failures to resolve member refs during type
+    #       resolution
+    type_resolved? &amp;&amp; !resolved_member.nil?
+  end
+
+  def ==(o)
+    !o.nil? &amp;&amp; member_name == o.member_name &amp;&amp; type_local_name == o.type_local_name
+  end
+end
+
+class MethodRef &lt; MemberRef
+  def resolved_method
+    @type_ref.resolved_type.get_method_called(@member_name)
+  end
+
+  def resolved_member; resolved_method; end
+end
+
+class FieldRef &lt; MemberRef
+  def resolved_field
+    @type_ref.resolved_type.get_field_called(@member_name)
+  end
+
+  def resolved_member; resolved_field; end
+end
+
+
</pre><pre class="diff" id="context"> # Resolves type names to instances of TypeRef for a particular compilation
 # unit (the same name could refer to different types in different compilation
 # units).
</pre><pre class="diff"><small id="info">@@ -394,6 +454,7 @@
</small></pre><pre class="diff" id="context">   def initialize(containing_type)
     @containing_type = containing_type
     @named_types = {}
</pre><pre class="diff" id="added">+    @ref_to_self = TypeRef.new(containing_type, containing_type.qualified_name)
</pre><pre class="diff" id="context">   end
 
   def ref_to(name, lineno=nil)
</pre><pre class="diff"><small id="info">@@ -411,6 +472,8 @@
</small></pre><pre class="diff" id="context">     type_ref
   end
 
</pre><pre class="diff" id="added">+  attr_reader :ref_to_self
+
</pre><pre class="diff" id="context">   def each
     @named_types.each_value do |astype|
       yield astype
</pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname">as2api/trunk/as2api/lib</span><br />
<div class="fileheader"><big><b>doc_comment.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/lib/doc_comment.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/lib/doc_comment.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -219,17 +219,16 @@
</small></pre><pre class="diff" id="context"> end
 
 class LinkTag &lt; Tag
</pre><pre class="diff" id="removed">-  def initialize(lineno, target<span id="removedchars">,&nbsp;member</span>, text)
</pre><pre class="diff" id="added">+  def initialize(lineno, target<span id="addedchars">_ref</span>, text)
</pre><pre class="diff" id="context">     super(lineno)
</pre><pre class="diff" id="removed">-    @target = target
-    @member = member
</pre><pre class="diff" id="added">+    @target_ref = target_ref
</pre><pre class="diff" id="context">     @text = text
   end
 
</pre><pre class="diff" id="removed">-  attr_accessor :target<span id="removedchars">,&nbsp;:member</span>, :text
</pre><pre class="diff" id="added">+  attr_accessor :target<span id="addedchars">_ref</span>, :text
</pre><pre class="diff" id="context"> 
   def ==(o)
</pre><pre class="diff" id="removed">-    super(o) &amp;&amp; member==o.member &amp;&amp; text==o.text &amp;&amp; target==o.target
</pre><pre class="diff" id="added">+    super(o) &amp;&amp; text==o.text &amp;&amp; target_ref==o.target_ref
</pre><pre class="diff" id="context">   end
 end
 
</pre><pre class="diff"><small id="info">@@ -321,8 +320,6 @@
</small></pre><pre class="diff" id="context">   if text =~ /^\s*([^()\s]+(?:\([^\)]*\))?)\s*(.+)?/m
     target = $1
     text = $2
</pre><pre class="diff" id="removed">-    # TODO: need a MemberRef (and maybe Method+Field subclasses) with similar
-    #       role to TypeRef, to simplify this, and output_doccomment_inlinetag
</pre><pre class="diff" id="context">     if target =~ /([^#]*)#(.*)/
       type_name = $1
       member_name = $2
</pre><pre class="diff"><small id="info">@@ -331,11 +328,20 @@
</small></pre><pre class="diff" id="context">       member_name = nil
     end
     if type_name == ""
</pre><pre class="diff" id="removed">-      type_ref = nil
</pre><pre class="diff" id="added">+      type_ref = type_namespace.ref_to_self
</pre><pre class="diff" id="context">     else
       type_ref = type_namespace.ref_to(type_name, lineno)
     end
</pre><pre class="diff" id="removed">-    return LinkTag.new(lineno, type_ref, member_name, text)
</pre><pre class="diff" id="added">+    if member_name
+      if member_name =~ /\(/
+        target_ref = type_ref.ref_method($`, lineno)
+      else
+        target_ref = type_ref.ref_field(member_name, lineno)
+      end
+    else
+      target_ref = type_ref
+    end
+    return LinkTag.new(lineno, target_ref, text)
</pre><pre class="diff" id="context">   end
   return nil
 end
</pre></div>
<hr /><a name="file3" /><div class="file">
<span class="pathname">as2api/trunk/as2api/lib/output/diff</span><br />
<div class="fileheader"><big><b>api_deserializer.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/lib/output/diff/api_deserializer.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/lib/output/diff/api_deserializer.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -166,13 +166,22 @@
</small></pre><pre class="diff" id="context">       pop_text_handler
     end
 
</pre><pre class="diff" id="removed">-    def start_see(type, member)
</pre><pre class="diff" id="added">+    def start_see(type, <span id="addedchars">kind,&nbsp;</span>member)
</pre><pre class="diff" id="context">       @current_comment_block = SeeBlockTag.new
       push_text_handler(SeeBlockTextHandler.new(@current_comment_block))
       lineno = 0
       type_ref = ref_to(type) if type
</pre><pre class="diff" id="added">+      ref = nil
+      case kind
+        when :method
+          ref = type_ref.ref_method(member, nil)
+        when :field
+          ref = type_ref.ref_field(member, nil)
+        else
+          ref = type_ref
+      end
</pre><pre class="diff" id="context">       text = nil
</pre><pre class="diff" id="removed">-      @current_comment_block.add_inline(LinkTag.new(lineno, <span id="removedchars">type_ref,&nbsp;member</span>, text))
</pre><pre class="diff" id="added">+      @current_comment_block.add_inline(LinkTag.new(lineno, <span id="addedchars">ref</span>, text))
</pre><pre class="diff" id="context">     end
 
     def end_see
</pre><pre class="diff"><small id="info">@@ -182,11 +191,19 @@
</small></pre><pre class="diff" id="context">       @current_comment_block = nil
       pop_text_handler
     end
</pre><pre class="diff" id="removed">-    def start_link(type, member)
</pre><pre class="diff" id="added">+    def start_link(type, <span id="addedchars">kind,&nbsp;</span>member)
</pre><pre class="diff" id="context">       lineno = 0
       type_ref = ref_to(type) if type
</pre><pre class="diff" id="added">+      case kind
+        when :method
+          ref = type_ref.ref_method(member, nil)
+        when :field
+          ref = type_ref.ref_field(member, nil)
+        else
+          ref = type_ref
+      end
</pre><pre class="diff" id="context">       text = nil
</pre><pre class="diff" id="removed">-      link_tag = LinkTag.new(lineno, <span id="removedchars">type_ref,&nbsp;member</span>, text)
</pre><pre class="diff" id="added">+      link_tag = LinkTag.new(lineno, <span id="addedchars">ref</span>, text)
</pre><pre class="diff" id="context">       push_text_handler(LinkBlockTextHandler.new(link_tag))
       @current_comment_block.add_inline(link_tag)
     end
</pre></div>
<hr /><a name="file4" /><div class="file">
<span class="pathname">as2api/trunk/as2api/lib/output/diff</span><br />
<div class="fileheader"><big><b>api_serializer.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/lib/output/diff/api_serializer.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/lib/output/diff/api_serializer.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -188,8 +188,17 @@
</small></pre><pre class="diff" id="context">   def serialize_seealso(seealso)
     link = seealso.inlines.first
     attrs = {}
</pre><pre class="diff" id="removed">-    attrs["type"]=link.target.local_name if link.target
-    attrs["member"]=link.member if link.member
</pre><pre class="diff" id="added">+    ref = link.target_ref
+    case ref
+      when TypeRef
+        attrs["type"]=ref.local_name
+      when MethodRef
+        attrs["type"]=ref.type_local_name
+        attrs["method"]=ref.member_name
+      when FieldRef
+        attrs["type"]=ref.type_local_name
+        attrs["field"]=ref.member_name
+    end
</pre><pre class="diff" id="context">     if link.text &amp;&amp; link.text!=""
       api_see(link.text, attrs)
     else
</pre><pre class="diff"><small id="info">@@ -212,8 +221,17 @@
</small></pre><pre class="diff" id="context"> 
   def serialize_link_tag(link)
     attrs = {}
</pre><pre class="diff" id="removed">-    attrs["type"]=link.target.local_name if link.target
-    attrs["member"]=link.member if link.member
</pre><pre class="diff" id="added">+    ref = link.target_ref
+    case ref
+      when TypeRef
+        attrs["type"]=ref.local_name
+      when MethodRef
+        attrs["type"]=ref.type_local_name
+        attrs["method"]=ref.member_name
+      when FieldRef
+        attrs["type"]=ref.type_local_name
+        attrs["field"]=ref.member_name
+    end
</pre><pre class="diff" id="context">     if link.text &amp;&amp; link.text!=""
       api_link(link.text, attrs)
     else
</pre></div>
<hr /><a name="file5" /><div class="file">
<span class="pathname">as2api/trunk/as2api/lib/output/diff</span><br />
<div class="fileheader"><big><b>api_xml_reader.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/lib/output/diff/api_xml_reader.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/lib/output/diff/api_xml_reader.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -52,9 +52,25 @@
</small></pre><pre class="diff" id="context">       when "description"
         @listener.start_description
       when "see"
</pre><pre class="diff" id="removed">-        @listener.start_see(attrs["type"], attrs["member"])
</pre><pre class="diff" id="added">+        kind = member = nil
+        if attrs["method"]
+          kind = :method
+          member = attrs["method"]
+        elsif attrs["field"]
+          kind = :field
+          member = attrs["field"]
+        end
+        @listener.start_see(attrs["type"], kind, member)
</pre><pre class="diff" id="context">       when "link"
</pre><pre class="diff" id="removed">-        @listener.start_link(attrs["type"], attrs["member"])
</pre><pre class="diff" id="added">+        kind = member = nil
+        if attrs["method"]
+          kind = :method
+          member = attrs["method"]
+        elsif attrs["field"]
+          kind = :field
+          member = attrs["field"]
+        end
+        @listener.start_link(attrs["type"], kind, member)
</pre><pre class="diff" id="context">       when "implements"
         @listener.implements(attrs["interface"])
       when "constructor"
</pre><pre class="diff"><small id="info">@@ -113,9 +129,9 @@
</small></pre><pre class="diff" id="context">   def end_annotation; end
   def start_description; end
   def end_description; end
</pre><pre class="diff" id="removed">-  def start_see(type, member); end
</pre><pre class="diff" id="added">+  def start_see(type, <span id="addedchars">kind,&nbsp;</span>member); end
</pre><pre class="diff" id="context">   def end_see; end
</pre><pre class="diff" id="removed">-  def start_link(type, member); end
</pre><pre class="diff" id="added">+  def start_link(type, <span id="addedchars">kind,&nbsp;</span>member); end
</pre><pre class="diff" id="context">   def end_link; end
   def implements(interface); end
   def start_constructor; end
</pre></div>
<hr /><a name="file6" /><div class="file">
<span class="pathname">as2api/trunk/as2api/lib/output/html</span><br />
<div class="fileheader"><big><b>html_framework.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/lib/output/html/html_framework.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/lib/output/html/html_framework.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -300,19 +300,31 @@
</small></pre><pre class="diff" id="context"> 
   def link_method(method)
     sig = signature_for_method(method)
</pre><pre class="diff" id="added">+    attrs = {"title"=&gt;sig}
</pre><pre class="diff" id="context">     if method.containing_type.document?
</pre><pre class="diff" id="removed">-      html_a("href"=&gt;link_for_method(method), "title"=&gt;sig) do
</pre><pre class="diff" id="added">+      attrs["href"] = link_for_method(method)
+      attrs["class"] = "method_name"
+      html_a(attrs) do
</pre><pre class="diff" id="context">         pcdata(method.name)
         pcdata("()")
       end
     else
</pre><pre class="diff" id="removed">-      html_span("title"=&gt;sig) do
</pre><pre class="diff" id="added">+      attrs["class"] = "method_name undocumented"
+      html_span(attrs) do
</pre><pre class="diff" id="context">         pcdata(method.name)
         pcdata("()")
       end
     end
   end
 
</pre><pre class="diff" id="added">+  def link_method_ref(method_ref)
+    if method_ref.resolved?
+      link_method(method_ref.resolved_method)
+    else
+      html_span(method_ref.member_name, {"class"=&gt;"unresolved method_name"})
+    end
+  end
+
</pre><pre class="diff" id="context">   def signature_for_field(field)
     sig = ""
     if field.access.static?
</pre><pre class="diff"><small id="info">@@ -355,6 +367,14 @@
</small></pre><pre class="diff" id="context">     end
   end
 
</pre><pre class="diff" id="added">+  def link_field_ref(field_ref)
+    if field_ref.resolved?
+      link_field(field_ref.resolved_field)
+    else
+      html_span(field_ref.member_name, {"class"=&gt;"unresolved field_name"})
+    end
+  end
+
</pre><pre class="diff" id="context">   def base_path(file)
     return file if @path_name.nil?
     ((".."+File::SEPARATOR) * @path_name.split(File::SEPARATOR).length) + file
</pre><pre class="diff"><small id="info">@@ -442,50 +462,16 @@
</small></pre><pre class="diff" id="context">   end
 
   def output_doccomment_linktag(inline)
</pre><pre class="diff" id="removed">-    # FIXME: Seem to have missed generating title attribute in several cases,
-    if inline.target &amp;&amp; inline.member
-      if inline.target.resolved?
-        href = link_for_type(inline.target.resolved_type)
-        if href
-          if inline.member =~ /\(/
-            target = "##{$`}"
-          else
-            target = "##{inline.member}"
-          end
-          href &lt;&lt; target
-          html_a("href"=&gt;href) do
-            if inline.text &amp;&amp; inline.text!=""
-              pcdata(inline.text)
-            else
-              pcdata("#{inline.target.name}.#{inline.member}")
-            end
-          end
-        else
-          if inline.text &amp;&amp; inline.text!=""
-            pcdata(inline.text)
-          else
-            pcdata("#{inline.target.name}.#{inline.member}")
-          end
-        end
-      else
-        pcdata("#{inline.target.name}##{inline.member}")
-      end
-    elsif inline.target
-      # FIXME: doesn't handle case where we have some link text
-      link_type_ref(inline.target)
</pre><pre class="diff" id="added">+    ref = inline.target_ref
<a name="task2" />+    # <span class="task">FIXME</span>: need to handle any link-text in the tag
+    if ref.is_a?(TypeRef)
+      link_type_ref(ref)
+    elsif ref.is_a?(MethodRef)
+      link_method_ref(ref)
+    elsif ref.is_a?(FieldRef)
+      link_field_ref(ref)
</pre><pre class="diff" id="context">     else
</pre><pre class="diff" id="removed">-      if inline.member =~ /\(/
-        target = "##{$`}"
-      else
-        target = "##{inline.member}"
-      end
-      html_a("href"=&gt;target) do
-        if inline.text &amp;&amp; inline.text!=""
-          pcdata(inline.text)
-        else
-          pcdata(inline.member)
-        end
-      end
</pre><pre class="diff" id="added">+      raise "unhandled ref type #{ref.class.name}"
</pre><pre class="diff" id="context">     end
   end
 
</pre></div>
<hr /><a name="file7" /><div class="file">
<span class="pathname">as2api/trunk/as2api/test</span><br />
<div class="fileheader"><big><b>tc_api_serializer.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/test/tc_api_serializer.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/test/tc_api_serializer.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -123,8 +123,8 @@
</small></pre><pre class="diff" id="context">     expected_block.inlines.each_with_index do |expected_inline, index|
       actual_inline = actual_block.inlines[index]
       actual_inline.lineno = expected_inline.lineno if expected_inline.respond_to?(:lineno)
</pre><pre class="diff" id="removed">-      if expected_inline.respond_to?(:target) &amp;&amp; expected_inline.target
-        actual_inline.target.lineno = expected_inline.target.lineno
</pre><pre class="diff" id="added">+      if expected_inline.respond_to?(:target_ref) &amp;&amp; expected_inline.target_ref &amp;&amp; expected_inline.target_ref.respond_to?(:lineno)
+        actual_inline.target_ref.lineno = expected_inline.target_ref.lineno
</pre><pre class="diff" id="context">       end
     end
     assert_equal(expected_block, actual_block)
</pre></div>
<hr /><a name="file8" /><div class="file">
<span class="pathname">as2api/trunk/as2api/test</span><br />
<div class="fileheader"><big><b>tc_doc_comment.rb</b></big> <small id="info">369 -&gt; 370</small></div>
<pre class="diff"><small id="info">--- trunk/as2api/test/tc_doc_comment.rb        2006-04-03 21:45:41 UTC (rev 369)
+++ trunk/as2api/test/tc_doc_comment.rb        2006-04-04 21:25:19 UTC (rev 370)
@@ -21,6 +21,11 @@
</small></pre><pre class="diff" id="context"> require 'api_loader'
 
 class TC_DocComment &lt; Test::Unit::TestCase
</pre><pre class="diff" id="added">+
+  def setup
+    @my_class = ASClass.new("com.example", "MyClass")
+  end
+
</pre><pre class="diff" id="context">   def test_description()
     text = "foo bar\n *blat\n * @param foo bar\n blat ping pong\n *"
     comment_data = parse_it(text)
</pre><pre class="diff"><small id="info">@@ -51,9 +56,9 @@
</small></pre><pre class="diff" id="context">     comment_data = parse_it(text)
     assert(comment_data.has_seealso?, "should have @see tag")
     expected = SeeBlockTag.new
</pre><pre class="diff" id="removed">-    type_ref = TypeRef.new(<span id="removedchars">nil</span>, "foo")
</pre><pre class="diff" id="added">+    type_ref = TypeRef.new(<span id="addedchars">@my_class</span>, "foo")
</pre><pre class="diff" id="context">     type_ref.lineno=2
</pre><pre class="diff" id="removed">-    link = LinkTag.new(2, type_ref, <span id="removedchars">nil,&nbsp;</span>"bar\n blat\n")
</pre><pre class="diff" id="added">+    link = LinkTag.new(2, type_ref, "bar\n blat\n")
</pre><pre class="diff" id="context">     link.lineno=2
     expected.add_inline(link)
     assert_equal(expected, comment_data[1])
</pre><pre class="diff"><small id="info">@@ -66,7 +71,9 @@
</small></pre><pre class="diff" id="context">     actual = comment_data[1]
     assert(actual.is_a?(SeeBlockTag), "should have @see tag")
     expected = SeeBlockTag.new
</pre><pre class="diff" id="removed">-    link = LinkTag.new(2, nil, "foo()", "&lt;/p&gt;\n")
</pre><pre class="diff" id="added">+    type_ref = TypeRef.new(@my_class, @my_class.qualified_name)
+    method_ref = MethodRef.new(type_ref, "foo", 2)
+    link = LinkTag.new(2, method_ref, "&lt;/p&gt;\n")
</pre><pre class="diff" id="context">     link.lineno=2
     expected.add_inline(link)
     assert_equal(expected, actual)
</pre><pre class="diff"><small id="info">@@ -103,7 +110,7 @@
</small></pre><pre class="diff" id="context">     parser = ActionScript::ParseDoc::DocCommentParser.new(lexer)
     parse_conf_build = ConfigBuilder.new
     config = parse_conf_build.build_method_config
</pre><pre class="diff" id="removed">-    type_namespace = TypeLocalNamespace.new(<span id="removedchars">nil</span>)
</pre><pre class="diff" id="added">+    type_namespace = TypeLocalNamespace.new(<span id="addedchars">@my_class</span>)
</pre><pre class="diff" id="context">     handler = OurDocCommentHandler.new(comment_data, config, type_namespace)
     parser.handler = handler
 
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -&gt; email">CVSspam</a> 0.2.12</small></center>
</body></html>