.main_parameter_table_text, .main_errordomain_table_text, .main_enum_table_text {
}
+.main_parameter_table_unknown_parameter {
+ color: GREY;
+}
+
.main_parameter_table_name, .main_errordomain_table_name, .main_enum_table_name {
vertical-align: top;
text-align: right;
.main_parameter_table_text, .main_errordomain_table_text, .main_enum_table_text {
}
+.main_parameter_table_unknown_parameter {
+ color: GREY;
+}
+
.main_parameter_table_name, .main_errordomain_table_name, .main_enum_table_name {
vertical-align: top;
text-align: right;
.main_parameter_table_text, .main_errordomain_table_text, .main_enum_table_text {
}
+.main_parameter_table_unknown_parameter {
+ color: GREY;
+}
+
.main_parameter_table_name, .main_errordomain_table_name, .main_enum_table_name {
vertical-align: top;
text-align: right;
taglets,
(taglet) => {
var param = taglet as Taglets.Param;
- writer.start_tag ("tr");
+ string[]? unknown_parameter_css = null;
+ if (param.parameter == null) {
+ unknown_parameter_css = {"class", "main_parameter_table_unknown_parameter"};
+ }
+
+ writer.start_tag ("tr", unknown_parameter_css);
writer.start_tag ("td", {"class", "main_parameter_table_name"}).text (param.parameter_name).end_tag ("td");
writer.start_tag ("td");
param.accept_children (this);
public class Valadoc.Taglets.Param : InlineContent, Taglet, Block {
public string parameter_name { internal set; get; }
+ public Api.Symbol? parameter { private set; get; }
+
public Rule? get_parser_rule (Rule run_rule) {
return Rule.seq ({
Rule.option ({ Rule.many ({ TokenType.SPACE }) }),
public override void check (Api.Tree api_root, Api.Node container, ErrorReporter reporter, Settings settings) {
- // TODO check for the existence of such a parameter
+ // Check for the existence of such a parameter
+
+ this.parameter = null;
+
+ if (parameter_name == "...") {
+ Gee.List<Api.Node> params = container.get_children_by_type (Api.NodeType.FORMAL_PARAMETER, false);
+ foreach (Api.Node param in params) {
+ if (((Api.FormalParameter) param).ellipsis) {
+ this.parameter = (Api.Symbol) param;
+ break;
+ }
+ }
+ } else {
+ Gee.List<Api.Node> params = container.get_children_by_types ({Api.NodeType.FORMAL_PARAMETER, Api.NodeType.TYPE_PARAMETER}, false);
+ foreach (Api.Node param in params) {
+ if (param.name == parameter_name) {
+ this.parameter = (Api.Symbol) param;
+ break;
+ }
+ }
+ }
+
+ if (this.parameter == null) {
+ reporter.simple_warning ("%s: Unknown parameter `%s'", container.get_full_name (), parameter_name);
+ }
base.check (api_root, container, reporter, settings);
}