+2007-07-18 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : when T: or whatever x: is specified, it does not really
+ check the doc comment's syntax correctness. Fixed bug #82006.
+
2007-07-18 Marek Safar <marek.safar@gmail.com>
* anonymous.cs (AnonymouseMethodExpression): Refactored to work with
string name; // method invokation "(...)" are removed
string parameters; // method parameter list
- // strip 'T:' 'M:' 'F:' 'P:' 'E:' etc.
- // Here, MS ignores its member kind. No idea why.
+ // When it found '?:' ('T:' 'M:' 'F:' 'P:' 'E:' etc.),
+ // MS ignores not only its member kind, but also
+ // the entire syntax correctness. Nor it also does
+ // type fullname resolution i.e. "T:List(int)" is kept
+ // as T:List(int), not
+ // T:System.Collections.Generic.List<System.Int32>
if (cref.Length > 2 && cref [1] == ':')
- signature = cref.Substring (2).Trim (wsChars);
+ return;
else
signature = cref;
+ // Also note that without "T:" any generic type
+ // indication fails.
+
int parens_pos = signature.IndexOf ('(');
int brace_pos = parens_pos >= 0 ? -1 :
signature.IndexOf ('[');
+2007-07-18 Atsushi Enomoto <atsushi@ximian.com>
+
+ * gtest-xml-2.cs, gtest-xml-2-ref.xml : new /doc test for bug #82006.
+
2007-05-22 Scott Peterson <lunchtimemama@gmail.com>
* gtest-autoproperty-01.cs: Test for instance automatic properties (C# 3.0)
--- /dev/null
+<?xml version="1.0"?>\r
+<doc>\r
+ <assembly>\r
+ <name>gtest-xml-2</name>\r
+ </assembly>\r
+ <members>\r
+ <member name="T:Foo">\r
+ <see cref="M:System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke2 ( )"/>\r
+ <see cref="F:Foo.Bar"/>\r
+ <see cref="M:Foo.ListBase(System.String)"/>\r
+ <see cref="T:ListBase(string)"/>\r
+ <see cref="T:ListBase<string)"/><!-- it somehow passes -->\r
+ <see cref="T:List!$%Base()"/><!-- it somehow passes -->\r
+ <see cref="T:$%!"/>\r
+ <see cref=".:Bar"/>\r
+ <see cref="T:List(int)"/>\r
+ </member>\r
+ <member name="F:Foo.Bar">\r
+ hogehoge\r
+ </member>\r
+ <member name="M:Foo.ListBase(System.String)">\r
+ fugafuga\r
+ </member>\r
+ <member name="T:ListBase`1">\r
+ <see cref="T:System.Nullable<System.Int32>" />\r
+ <see cref="T:System.Nullable(System.Int32)" />\r
+ </member>\r
+ </members>\r
+</doc>\r
--- /dev/null
+using System.Collections.Generic;
+
+// <see cref="int?" /> - this is invalid 1584/1658
+// <see cref="List" />
+/// <see cref="M:System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke2 ( )" />
+/// <see cref="Bar" />
+/// <see cref="ListBase(string)" />
+/// <see cref="T:ListBase(string)" />
+/// <see cref="T:ListBase<string)" /><!-- it somehow passes -->
+/// <see cref="T:List!$%Base()" /><!-- it somehow passes -->
+/// <see cref="T:$%!" />
+/// <see cref=".:Bar" />
+/// <see cref="T:List(int)" />
+public class Foo
+{
+ static void Main ()
+ {
+ }
+
+ /// hogehoge
+ public string Bar;
+
+ /// fugafuga
+ public void ListBase (string s)
+ {
+ }
+}
+
+// <see cref="System.Nullable<System.Int32>" /> - cs1658/1574
+/// <see cref="T:System.Nullable<System.Int32>" />
+/// <see cref="T:System.Nullable(System.Int32)" />
+public class ListBase<T>
+{
+}