Refactor operator resolution
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 30/100
Research direction
Start with the Visitor entry point and its visitBinaryOperator method, then compare the existing function-resolution path referenced by the issue. Determine where operator resolution should occur and how it should be encapsulated. Done means the operator lookup no longer lives directly in Visitor and the resolution timing decision is reflected consistently.
Written by the indexing model from the issue text.
Description
Encapsulate operator resolution in the manner similar to function resolution.
Decide when do perform the operator resolution (maybe should be at execution time same as for functions)
or maybe the functions should be resolved at parse time as well.
See: Visitor:
// TODO: encapsulate in operator resolver
// Decide when do perform the operator resolution (maybe should be at execution time same as for functions)
// or maybe the functions should be resolved at parse time as well.
private static final Map<String, BinaryOperator> BINARY_OPERATORS = MethodDefinedOperator.mapOf(
CollectionOperations.class);
@Nonnull
private FhirPath visitBinaryOperator(
@Nullable final ParseTree leftContext,
@Nullable final ParseTree rightContext, @Nullable final String operatorName) {
requireNonNull(operatorName);
return new EvalOperator(new Visitor().visit(leftContext),
new Visitor().visit(rightContext),
Optional.ofNullable(BINARY_OPERATORS.get(operatorName))
.orElseGet(() -> BinaryOperatorType.fromSymbol(operatorName).getInstance()));
- Dominant language
- Java
- Stars
- 134
- Forks
- 24
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 8
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aehrc/pathling
-
testing ui
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
testing
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 72/100
-
bug java
Difficulty 4/5 3-5 days Newbie friendliness 58/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
bug needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 1/5 Under an hour Newbie friendliness 94/100
objectionary/hone-maven-plugin#1061 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
spring-projects/spring-modulith#1895 ·