[valadoc] libvaladoc: gir-reader: accept #[id]->[id|func]



commit 5f2db5a15b6dce33253c7d6ba766db4ac2292957
Author: Florian Brosch <flo brosch gmail com>
Date:   Fri Jan 6 03:57:46 2012 +0100

    libvaladoc: gir-reader: accept #[id]->[id|func]

 src/libvaladoc/ctyperesolver.vala                  |    1 +
 .../documentation/gtkdoccommentscanner.vala        |   20 ++++++++++++++++++++
 2 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/src/libvaladoc/ctyperesolver.vala b/src/libvaladoc/ctyperesolver.vala
index 0467d48..7405136 100755
--- a/src/libvaladoc/ctyperesolver.vala
+++ b/src/libvaladoc/ctyperesolver.vala
@@ -282,6 +282,7 @@ public class Valadoc.CTypeResolver : Visitor {
 		} else {
 			string parent_cname = get_parent_type_cname (item);
 			if (parent_cname != null) {
+				register_symbol (parent_cname+"->"+item.get_cname (), item);
 				register_symbol (parent_cname+"."+item.get_cname (), item);
 			}
 		}
diff --git a/src/libvaladoc/documentation/gtkdoccommentscanner.vala b/src/libvaladoc/documentation/gtkdoccommentscanner.vala
index 978bce8..afc6f79 100644
--- a/src/libvaladoc/documentation/gtkdoccommentscanner.vala
+++ b/src/libvaladoc/documentation/gtkdoccommentscanner.vala
@@ -331,6 +331,26 @@ public class Valadoc.Gtkdoc.Scanner {
 			} else {
 				id_len += id_len2 + separator_len;
 			}
+		} else if (this.pos.has_prefix ("->")) {
+			unowned string sep_start = this.pos;
+			int sep_column_start = this.column;			
+
+			next_char ();
+			next_char ();	
+
+			Token? func_token = function_prefix ();
+			if (func_token == null) {
+				int id_len2;
+
+				if ((id_len2 = id_prefix ()) > 0) {
+					id_len += 2 + id_len2;
+				} else {
+					this.column = sep_column_start;
+					this.pos = sep_start;
+				}
+			} else {
+				id_len += 2 + func_token.content.length;
+			}
 		}
 
 		return new Token (type, start.substring (1, id_len), null, start, offset (this.pos, start), this.line, column_start, this.column);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]