How would documentation handle type information for the arguments to a method? There are 3 possible sources: the comments, the text of the function arguments (e.g. someArg::FooType), and the compiler.
The ::FooType notation will not always be present. The comments could just be wrong. So it seems there's an argument for getting this info from the compiler, which is perhaps an argument in favor of the "comments as AST metadata" approach. Also, even if the argument is declared ::FooType it may be that only some subtypes are permitted because of the way the argument is used in the body of the function. For various purposes one might be interested in abstract types, concrete types, or both. An even messier question is which concrete types could actually be used, or are actually used in a particular run. Ross Boylan