[vala/staging] vala: Refactor UnresolvedSymbol/Type constructors
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/staging] vala: Refactor UnresolvedSymbol/Type constructors
- Date: Thu, 15 Apr 2021 14:50:32 +0000 (UTC)
commit a7012f089b07baa8b44554cb36032dbda173e321
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Thu Apr 15 16:49:14 2021 +0200
vala: Refactor UnresolvedSymbol/Type constructors
vala/valaparser.vala | 2 +-
vala/valaunresolvedsymbol.vala | 17 ++++++-----------
vala/valaunresolvedtype.vala | 20 ++++++--------------
3 files changed, 13 insertions(+), 26 deletions(-)
---
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 4cbe72358..bad086982 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -982,7 +982,7 @@ public class Vala.Parser : CodeVisitor {
}
var member = parse_member_name ();
- DataType element_type = UnresolvedType.new_from_expression (member);
+ DataType element_type = new UnresolvedType.from_expression (member);
bool is_pointer_type = false;
while (accept (TokenType.STAR)) {
element_type = new PointerType (element_type, get_src (begin));
diff --git a/vala/valaunresolvedsymbol.vala b/vala/valaunresolvedsymbol.vala
index 5e4791d44..ff77977cf 100644
--- a/vala/valaunresolvedsymbol.vala
+++ b/vala/valaunresolvedsymbol.vala
@@ -39,18 +39,13 @@ public class Vala.UnresolvedSymbol : Symbol {
this.inner = inner;
}
- public static UnresolvedSymbol? new_from_expression (Expression expr) {
- unowned MemberAccess? ma = expr as MemberAccess;
- if (ma != null) {
- if (ma.inner != null) {
- return new UnresolvedSymbol (new_from_expression (ma.inner), ma.member_name,
ma.source_reference);
- } else {
- return new UnresolvedSymbol (null, ma.member_name, ma.source_reference);
- }
+ public UnresolvedSymbol.from_expression (MemberAccess ma) {
+ base (ma.member_name, ma.source_reference);
+ if (ma.inner is MemberAccess) {
+ inner = new UnresolvedSymbol.from_expression ((MemberAccess) ma.inner);
+ } else if (ma.inner != null) {
+ Report.error (ma.source_reference, "Type reference must be simple name or member
access expression");
}
-
- Report.error (expr.source_reference, "Type reference must be simple name or member access
expression");
- return null;
}
public override string to_string () {
diff --git a/vala/valaunresolvedtype.vala b/vala/valaunresolvedtype.vala
index 2185f1de2..8f2f47585 100644
--- a/vala/valaunresolvedtype.vala
+++ b/vala/valaunresolvedtype.vala
@@ -53,22 +53,14 @@ public class Vala.UnresolvedType : DataType {
* @param expr member access expression
* @return newly created type reference
*/
- public static UnresolvedType? new_from_expression (Expression expr) {
- var sym = UnresolvedSymbol.new_from_expression (expr);
+ public UnresolvedType.from_expression (MemberAccess expr) {
+ unresolved_symbol = new UnresolvedSymbol.from_expression (expr);
+ source_reference = expr.source_reference;
+ value_owned = true;
- if (sym != null) {
- var type_ref = new UnresolvedType.from_symbol (sym, expr.source_reference);
- type_ref.value_owned = true;
-
- var ma = (MemberAccess) expr;
- foreach (DataType arg in ma.get_type_arguments ()) {
- type_ref.add_type_argument (arg);
- }
-
- return type_ref;
+ foreach (DataType arg in expr.get_type_arguments ()) {
+ add_type_argument (arg);
}
-
- return null;
}
public override DataType copy () {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]