Age | Commit message (Collapse) | Author |
|
|
|
declared by itself
|
|
|
|
Closes #334
|
|
An updated local version of mdoc started causing test output changes which clashed with the CI build agent's config. So this change removes this functionality from the integration tests, and adds a few unit tests that tests the exception functionality. Closes #341
|
|
Difference was due to https://github.com/mono/api-doc-tools/pull/130
|
|
Removed namespace when return type is generic
Added integration tests
Added unit test
Add RefType attribute to ReturnType element
Closes #230
|
|
Corrected VB and C# formatters
Edited integration tests
Closes #137
|
|
Resolves #62
|
|
Now using MSBuild.
Updated some test data to reflect newly thrown exceptions.
Updated to a newer version of NUnit.
|
|
Closes #6
|
|
|
|
|
|
(Reported by directhex on #mono 2014-05-14 at 14:28 EDT.)
When importing Microsoft XML Documentation, if a //altmember/@name,
//exception/@name, or //permission/@name attribute is encountered then
mdoc will die with a NullReferenceException:
mdoc: System.NullReferenceException: Object reference not set to an instance of an object
at Mono.Documentation.MsxdocDocumentationImporter.ImportDocumentation (Mono.Documentation.DocsNodeInfo info)
at Mono.Documentation.MDocUpdater.MakeDocNode (Mono.Documentation.DocsNodeInfo info)
at Mono.Documentation.MDocUpdater.UpdateMember (Mono.Documentation.DocsNodeInfo info)
at Mono.Documentation.MDocUpdater.MakeMember (System.Xml.XmlDocument doc, Mono.Documentation.DocsNodeInfo info)
at Mono.Documentation.MDocUpdater.DoUpdateType2 (System.String message, System.Xml.XmlDocument basefile, Mono.Cecil.TypeDefinition type, System.String output, Boolean insertSince)
at Mono.Documentation.MDocUpdater.StubType (Mono.Cecil.TypeDefinition type, System.String output)
at Mono.Documentation.MDocUpdater.DoUpdateType (Mono.Cecil.TypeDefinition type, System.String basepath, System.String dest)
at Mono.Documentation.MDocUpdater.DoUpdateAssembly (Mono.Cecil.AssemblyDefinition assembly, System.Xml.XmlElement index_types, System.String source, System.String dest, System.Collections.Generic.HashSet`1 goodfiles)
at Mono.Documentation.MDocUpdater.DoUpdateAssemblies (System.String source, System.String dest)
at Mono.Documentation.MDocUpdater.Run (IEnumerable`1 args)
at Mono.Documentation.MDoc.Run (System.String[] args)
at Mono.Documentation.MDoc.Main (System.String[] args)
The cause of the NullReferenceException is due to inconsistent
checking: we check that _either_ `child.Attributes["cref"]` OR
`child.Attributes["name"]` is not null, and if one of them IS non-null
then we just grab `child.Attributes["cref"].Value`, which will throw a
NullReferenceException if the @name attribute was present but not the
@cref attribute.
The fix is to be consistent: once we grab an XmlAttribute, use the
already looked up XmlAttribute, don't re-look it up.
|
|
|
|
|
|
|
|
3d3fe6af (among other commits...) "broke" the `mdoc` unit tests, as it
did two things:
1. It added a new codepath calling string.Format(), thus introducing
a new set of exceptions.
2. Due to an `mdoc` bug, (1) resulted in a stack overflow on OS X.
(1) demonstrates that the mdoc unit tests might be too brittle.
(2) was fixed in 04bf9ad.
The problem with 04bf9ad, though, is that it resulted in a gigantic
~212MB diff, because while the recursion was "fixed", we could still
process the same method multiple times, resulting in _lots_ of
duplication, e.g. System.String.get_Chars() would be repeated hundreds
of times for a given exception.
Improve the source reporting mechanism so that instead of a
List<MemberReference> we use a HashSet<MemberReference>, listing each
source location _once_ instead of repeating them.
The _formatting_ of the <exception/> element is also changed so that
each source location is on its own line, making it easier to read and
review the locations.
|
|
Commit 44b2b4a8 completely broke `mdoc export-msxdoc` because
EcmaDoc.GetCref() was removed. Expected:
<member name="C:Mono.DocTest.DocAttribute(System.String)">
Actual:
<member name="Mono.DocTest.DocAttribute..ctor">
i.e. useless.
The fix: bring back GetCref(), this time within monodocs2slashdoc.cs.
Commit 0ad6ffde changed the HTML-generating stylesheet and moved some
@id attributes around, thus breaking the mdoc unit tests (expected
output likewise changed). Fix the monodoc XSLTs so that we don't emit
id="" attributes (id's with no value).
Update mdoc's expected output so that tests pass[*].
[*]: tests will NOT actually pass, as 04bf9add -- attempted fix for
an OS X stackoverflow caused by 3d3fe6af -- results in a gigantic
216MB diff because String.get_Chars() is repeated over and over and
over... The updated expected output in this commit is the "ideal"
update needed after locally reverting 3d3fe6af and 04bf9add.)
|
|
Nested `protected` types are accessible from subclasses, and thus
should be documented just as `public` nested types are.
|
|
|
|
|
|
Consider the method `void M(double[,,])`. When attempting to import
documentation for this method, `mdoc-update` should generate the CREF
"M(System.Double[0:,0:,0:])", otherwise some documentation isn't imported.
Due to this (and `mcs /doc`-related fixes) and other changes, flush the
expected output as more docs are properly imported.
|
|
Several commits changed `mdoc` output without committing the updated
output, thus causing `make run-test` to fail, e.g. commit
9a1075956e25969118930caff352ad7d3ecc9655.
Flush the expected output so that `make run-test` is useful.
|
|
In certain situations, the type-parameter counting code doesn't
skip tokens properly. In some circumstances, this results in
invalid links (e.g. refing KeyValuePair`1, not KeyValuePair`2),
in others it results in an XSLT error with "!WTF 2".
The problem was we weren't properly checking for nested types.
|
|
Oops, that's a long-standing bug... Found by Joel Marcey from ECMA.
|
|
'gmcs /doc' now properly generates explicitly implemented interface member
//member/@name values, so mdoc-update can now find them for the import. Yay!
|
|
No mdoc changes, but since 'mdoc update --exceptions=all' scans across
assemblies, and since System.Delegate.Combine() now throws additional
exceptions (according to our IL scanning algorithm), the expected output
differs, leading to false negatives about regressions.
Furthermore, 'gmcs /doc' has been fixed (it used to cause a compilation
error) and improved, so more XML documentation is now imported because gmcs is
generating the correct XML documentation crefs. (Go gmcs, go!)
|
|
for <see cref="N:..." />.
* Test/DocTest-v1.cs: Add namespace links for testing.
* Test/en.expected.importslashdoc/Mono.DocTest/Color.xml,
Test/en.expected.importslashdoc/NoNamespace.xml,
Test/html.expected/index.html,
Test/html.expected/Mono.DocTest/Color.html,
Test/html.expected/NoNamespace.html,
Test/msxdoc-expected.importslashdoc.xml: Flush.
svn path=/trunk/mcs/; revision=147639
|
|
Test/html.expected/Mono.DocTest.Generic/MyList`2.html: Flush to sync
with updated mdoc. Inherited members are now shown (as they were
supposed to be, but a bug had prevented from being found).
svn path=/trunk/mcs/; revision=147560
|
|
source directories are provided, e.g. 'mdoc export-html -o o a b c'
with docs located in directories a, b, and c. Previously this would
be equivalent to running aginst a, b, and c separately, resulting in
o/index.html being continually overwritten (and thus not showing ALL
available types).
* Resources/stylesheet.xsl: Make $Index a parameter (as monodocs2html
will create an in-memory index containing all types from all
specified directories), and various changes to cope with $Index no
longer being a file. Better support files in the global namespace.
* Test/html.expected/NoNamespace.html: Fix assembly link.
svn path=/trunk/mcs/; revision=141629
|
|
escaping behavior.
* Resources/monodoc-ecma.xsd: Permit <format/> in various elements.
* Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
Test/html.expected/Mono.DocTest/DocAttribute.html,
Test/msxdoc-expected.importslashdoc.xml: Flush.
svn path=/trunk/mcs/; revision=139831
|
|
on property get/set and event add/remove accessors.
* Test/DocTest-v1.cs: Add attributes to some accessors.
* Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
Test/en.expected.since/Mono.DocTest/Widget.xml,
Test/en.expected/Mono.DocTest/Widget.xml,
Test/html.expected/Mono.DocTest/Widget.html,
Test/msxdoc-expected.importslashdoc.xml: Flush.
svn path=/trunk/mcs/; revision=139227
|
|
enumeration contains multiple names with the same value.
Fixes #515030.
* Test/DocTest-v1.cs: Add test for #515030.
* Test/en.expected/Mono.DocTest/Color.xml,
Test/en.expected.since/Mono.DocTest/Color.xml,
Test/html.expected/Mono.DocTest/Color.html,
Test/msxdoc-expected.importslashdoc.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Color.xml: Flush.
svn path=/trunk/mcs/; revision=136730
|
|
<exception/> generation.
* mdoc.exe.sources: Add Mono.Documentation/exceptions.cs to the build.
* Mono.Documentation/exceptions.cs: Added; searches through the
callgraph of an IMemberReference, recording which exception types
are created (and where they're created from).
* Mono.Documentation/monodocer.cs: Generate <exception/> elements.
* Test/DocTest-v1.cs: Modify some methods so that exceptions are
emitted (thus testing <exception/> generation).
* Test/DocTest-v2.patch: Update (so patch(1) doesn't complain).
* Test/en.expected.importecmadoc/System/Array.xml,
Test/en.expected.importecmadoc/System/Environment.xml,
Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
Test/en.expected.importslashdoc/Mono.DocTest/DocValueType.xml,
Test/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
Test/en.expected.importslashdoc/System/Array.xml,
Test/en.expected.importslashdoc/System/Environment.xml,
Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
Test/en.expected.since/Mono.DocTest/DocAttribute.xml,
Test/en.expected.since/Mono.DocTest/DocValueType.xml,
Test/en.expected.since/Mono.DocTest/UseLists.xml,
Test/en.expected.since/Mono.DocTest/Widget.xml,
Test/en.expected.since/System/Array.xml,
Test/en.expected.since/System/Environment.xml,
Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
Test/en.expected/Mono.DocTest/DocAttribute.xml,
Test/en.expected/Mono.DocTest/DocValueType.xml,
Test/en.expected/Mono.DocTest/UseLists.xml,
Test/en.expected/Mono.DocTest/Widget.xml,
Test/en.expected/System/Array.xml,
Test/en.expected/System/Environment.xml,
Test/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
Test/html.expected/Mono.DocTest/DocAttribute.html,
Test/html.expected/Mono.DocTest/DocValueType.html,
Test/html.expected/Mono.DocTest/UseLists.html,
Test/html.expected/Mono.DocTest/Widget.html,
Test/html.expected/System/Array.html,
Test/html.expected/System/Environment.html,
Test/msxdoc-expected.importslashdoc.xml: Flush; adds <exception/>
elements (and/or HTML-rendered output of <exception/> elements).
svn path=/trunk/mcs/; revision=120501
|
|
have `abstract' on them.
* Test/DocTest-v1.cs: Add a property to an interface to check above.
* Test/en.expected.importslashdoc/Mono.DocTest/Widget+IMenuItem.xml,
Test/en.expected.since/Mono.DocTest/Widget+IMenuItem.xml,
Test/en.expected/Mono.DocTest/Widget+IMenuItem.xml,
Test/html.expected/Mono.DocTest/Widget+IMenuItem.html,
Test/msxdoc-expected.importslashdoc.xml: Flush.
svn path=/trunk/mcs/; revision=118949
|
|
`make doc-update` in corlib:
- Ensure that custom attributes are sorted (they weren't before,
resulting in spurious differences between Reflection & Cecil
output).
- CecilExtensions.GetMethod() should return null if the method can't
be found.
- DocUtils.IsDelegate() should ensure that the delegate type isn't
abstract (otherwise it dies on System.MulticastDelegate, which is
an abstract type lacking an "Invoke" method).
- Properly count generic argument counts for nested types (fixes IOE
from S.C.G.Dictionary`2.KeyCollection.Enumerator).
* Test/DocTest-v1.cs: Add doubly-nested class under a generic class to
simulate S.C.G.Dictionary`2.KeyCollection.Enumerator behavior.
* Test/en.expected.importslashdoc/index.xml,
Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml,
Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml,
Test/en.expected.since/index.xml,
Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml,
Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml,
Test/en.expected/index.xml,
Test/en.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml,
Test/en.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml,
Test/html.expected/index.html,
Test/html.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.html,
Test/html.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection.html,
Test/html.expected/Mono.DocTest.Generic/index.html,
Test/msxdoc-expected.importslashdoc.xml: Flush (new types/changes
from DocTest-v1.cs changes).
svn path=/trunk/mcs/; revision=118948
|
|
list of assembly references for mdoc.exe.
* Mono.Documentation/monodocer.cs: Migrate from System.Reflection to
Mono.Cecil. This was done for two reasons:
1. mscorlib.dll: Reflection can load only one mscorlib.dll into an
AppDomain, which must be the same mscorlib.dll as the runtime
version. Thus, in order to run monodocer on mscorlib.dll v1.1,
monodocer must be a .NET 1.1 application, and to document
mscorlib.dll v2.0, monodocer must be a .net 2.0 app.
1.a I don't think it's feasable to drop support for
mscorlib.dll v1.1.
1.b This has been previously handled (so far) with conditional
compilation, but the conditional compilation is painful to
maintain, and prevents use of LINQ in ongoing development.
1.c .NET 4.0 will be coming out "soon" (within 2 years?), and it's
possible that mono will maintain the same limitation, thus
necessitating having *three* different monodocer programs to
document mscorlib.dll for v1.1, v2.0, and v4.0. Yech.
2. Future directions: It would be nice to parse method/property IL
bodies to determine which exceptions can be generated, thus
generating <exception cref="..."/> stubs. Even with empty stubs,
I belive this would be useful within e.g. MonoDevelop to know
which exceptions a method is able to generate.
This cannot be done (at present) with System.Reflection, and
would require Mono.Cecil.
Downsides: mdoc now depends upon Mono.Cecil, which is API-unstable.
This will likely also complicate execution under .NET, as Mono.Cecil
would need to be XCOPY deployed into mdoc.exe's directory.
* Test/DocTest-v1.cs: Add additional tests for Custom Attribute
generation.
* Test/en.expected.importslashdoc/Mono.DocTest.Generic/Func`2.xml,
Test/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Widget+Direction.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
Test/en.expected.since/Mono.DocTest.Generic/Func`2.xml,
Test/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
Test/en.expected.since/Mono.DocTest/DocAttribute.xml,
Test/en.expected.since/Mono.DocTest/Widget+Direction.xml,
Test/en.expected.since/Mono.DocTest/Widget.xml,
Test/en.expected/Mono.DocTest.Generic/Func`2.xml,
Test/en.expected/Mono.DocTest.Generic/MyList`2.xml,
Test/en.expected/Mono.DocTest/DocAttribute.xml,
Test/en.expected/Mono.DocTest/Widget+Direction.xml,
Test/en.expected/Mono.DocTest/Widget.xml,
Test/html.expected/Mono.DocTest.Generic/Func`2.html,
Test/html.expected/Mono.DocTest.Generic/MyList`2.html,
Test/html.expected/Mono.DocTest/DocAttribute.html,
Test/html.expected/Mono.DocTest/Widget+Direction.html,
Test/html.expected/Mono.DocTest/Widget.html,
Test/msxdoc-expected.importslashdoc.xml: Flush -- updated output due
to new custom attributes, better implemented interface detection --
care of the Mono.Cecil migration -- etc.
svn path=/trunk/mcs/; revision=118892
|
|
//meta[@http-equiv='Content-Type']/@content attribute value (changed
due to yesterday's defaulttemplate.xsl fix).
svn path=/trunk/mcs/; revision=118712
|
|
* Mono.Documentation/monodocer.cs: Better support nested types.
* Test/DocTest-v1.cs: Add 4 levels of nested types.
* Test/en.expected.importslashdoc/index.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass+Double+Triple.xml,
Test/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass+Double.xml,
Test/en.expected.since/index.xml,
Test/en.expected.since/Mono.DocTest/Widget.xml,
Test/en.expected.since/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml,
Test/en.expected.since/Mono.DocTest/Widget+NestedClass+Double+Triple.xml,
Test/en.expected.since/Mono.DocTest/Widget+NestedClass+Double.xml,
Test/en.expected/index.xml,
Test/en.expected/Mono.DocTest/Widget.xml,
Test/en.expected/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml,
Test/en.expected/Mono.DocTest/Widget+NestedClass+Double+Triple.xml,
Test/en.expected/Mono.DocTest/Widget+NestedClass+Double.xml,
Test/html.expected/index.html,
Test/html.expected/Mono.DocTest/index.html,
Test/html.expected/Mono.DocTest/Widget.html,
Test/html.expected/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.html,
Test/html.expected/Mono.DocTest/Widget+NestedClass+Double+Triple.html,
Test/html.expected/Mono.DocTest/Widget+NestedClass+Double.html,
Test/msxdoc-expected.importslashdoc.xml: Flush.
svn path=/trunk/mcs/; revision=116807
|
|
* assembler.cs, mdoc.cs, monodocer.cs, monodocs2html.cs,
monodocs2slashdoc.cs, normalize.cs, validate.cs, XhtmlWriter.cs:
Move to Mono.Documentation.
* defaulttemplate.xsl, overview.xsl, stylesheet.xsl: Moved to
Resources.
* DocTest: Moved to Test.
* DocTest-v1.cs, DocTest-v2.patch, TestEcmaDocs.xml: Moved to Test.
* mdoc.exe.sources: Added; mcs include file to build mdoc.exe.
* Makefile: Added; build mdoc.exe, monodocer1.exe, and unit tests for
mdoc.exe
* Mono.Documentation/assembler.cs, Mono.Documentation/normalize.cs,
Mono.Documentation/mdoc.cs, Mono.Documentation/monodocs2slashdoc.cs,
Mono.Documentation/monodocs2html.cs, Mono.Documentation/validate.cs:
Modify command line handling to remove Mono.GetOptions dependency.
* Test/DocTest-v1.cs: Update //code/@src attribute due to changed paths.
* Test/msxdoc-expected.importslashdoc.xml,
* Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml: Flush
due to above DocTest-v1.cs change.
svn path=/trunk/mcs/; revision=116141
|