File tree Expand file tree Collapse file tree 3 files changed +38
-10
lines changed Expand file tree Collapse file tree 3 files changed +38
-10
lines changed Original file line number Diff line number Diff line change @@ -39,19 +39,27 @@ func (this dummyNestedParameter) Dunk(arg1 string) string {
3939 return arg1 + "dunk"
4040}
4141
42+ var dummyParameterInstance = dummyParameter {
43+ String : "string!" ,
44+ Int : 101 ,
45+ BoolFalse : false ,
46+ Nil : nil ,
47+ Nested : dummyNestedParameter {
48+ Funk : "funkalicious" ,
49+ },
50+ }
51+
4252var fooParameter = EvaluationParameter {
4353 Name : "foo" ,
44- Value : dummyParameter {
45- String : "string!" ,
46- Int : 101 ,
47- BoolFalse : false ,
48- Nil : nil ,
49- Nested : dummyNestedParameter {
50- Funk : "funkalicious" ,
51- },
52- },
54+ Value : dummyParameterInstance ,
55+ }
56+
57+ var fooPtrParameter = EvaluationParameter {
58+ Name : "fooptr" ,
59+ Value : & dummyParameterInstance ,
5360}
5461
55- var fooFailureParameters map [ string ] interface {} = map [string ]interface {} {
62+ var fooFailureParameters = map [string ]interface {} {
5663 "foo" : fooParameter .Value ,
64+ "fooptr" : & fooPtrParameter .Value ,
5765}
Original file line number Diff line number Diff line change @@ -274,6 +274,12 @@ func makeAccessorStage(pair []string) evaluationOperator {
274274 for i := 1 ; i < len (pair ); i ++ {
275275
276276 coreValue := reflect .ValueOf (value )
277+
278+ // if this is a pointer, resolve it.
279+ if coreValue .Kind () == reflect .Ptr {
280+ coreValue = coreValue .Elem ()
281+ }
282+
277283 if coreValue .Kind () != reflect .Struct {
278284 return nil , errors .New ("Unable to access '" + pair [i ]+ "', '" + pair [i - 1 ]+ "' is not a struct" );
279285 }
Original file line number Diff line number Diff line change @@ -1286,6 +1286,20 @@ func TestParameterizedEvaluation(test *testing.T) {
12861286 Parameters : []EvaluationParameter {fooParameter },
12871287 Expected : "funk" ,
12881288 },
1289+ EvaluationTest {
1290+
1291+ Name : "Simple parameter call from pointer" ,
1292+ Input : "fooptr.String" ,
1293+ Parameters : []EvaluationParameter {fooPtrParameter },
1294+ Expected : fooParameter .Value .(dummyParameter ).String ,
1295+ },
1296+ EvaluationTest {
1297+
1298+ Name : "Simple parameter function call from pointer" ,
1299+ Input : "fooptr.Func()" ,
1300+ Parameters : []EvaluationParameter {fooPtrParameter },
1301+ Expected : "funk" ,
1302+ },
12891303 EvaluationTest {
12901304
12911305 Name : "Simple parameter call" ,
You can’t perform that action at this time.
0 commit comments