Closed johanneslenfers closed 2 years ago
It is not so much about the @rule
, but more about the def
versus val
. I think in one case you create two tuning parameters, and in the other case only one.
To check this, change the val
into def topDownSplitJoin
, and it will also fail to be applied twice.
I think that the type inference should accept 1 = 1
as being a solution without any required subsitution. Currently it is probably expected that a subsitution is required, because ==
was checked before running the pivot mechanism. Here, I believe that we observe that the pivot mechanism is better at deciding ==
than the default ==
of ArithExpr.
I see, that makes sense! Didn't observe that only one tuning parameter was created. Thank you for the fix.
Describe the bug
splitJoin
rule cannot be applied two times, if definition is annotated with@rule
To Reproduce Execute main here
Expected behavior Rewriting is successful for the non annotated strategy, but fails for the annotaed version with this error: