소스 검색

feat(expressions): allow expr() to be called without parameters

Update expr() convenience function to accept nullable first parameter
with default value, enabling calls without any arguments. Also fix
ParameterExpression string formatting to use printf instead of
string template syntax.
Billy Barrow 1 개월 전
부모
커밋
752d726731
3개의 변경된 파일8개의 추가작업 그리고 5개의 파일을 삭제
  1. 4 1
      src/lib/Expressions/Convenience.vala
  2. 1 1
      src/lib/Expressions/Expressions/ParameterExpression.vala
  3. 3 3
      src/tests/TestRunner.vala

+ 4 - 1
src/lib/Expressions/Convenience.vala

@@ -1,7 +1,10 @@
 
 namespace Invercargill.Expressions {
 
-    public Expression expr(string expression, Element first, ...) throws ExpressionError {
+    public Expression expr(string expression, Element? first = null, ...) throws ExpressionError {
+        if(first == null) {
+            return ExpressionParser.parse(expression);
+        }
         return ExpressionParser.parse_with_params(expression, Wrap.va_list<Element>(first, va_list()));
     }
 

+ 1 - 1
src/lib/Expressions/Expressions/ParameterExpression.vala

@@ -46,7 +46,7 @@ namespace Invercargill.Expressions {
         }
 
         public override string to_expression_string() {
-            return @"$$index";
+            return "$%d".printf(index);
         }
     }
 }

+ 3 - 3
src/tests/TestRunner.vala

@@ -39,9 +39,9 @@ public static int main(string[] args) {
     //  modifiers_tests();
     //  data_structures_tests();
     //  remaining_components_tests();
-    //  expression_tests();
-    nullable_tests();
-    native_element_tests();
+    expression_tests();
+    //  nullable_tests();
+    //  native_element_tests();
 
     var result = Test.run();