Comments (8)
@DanielThanner what you are pointing out matches my initial implementation/understanding of DMN, but after discussing it further with Gary, it seems that because there is currently no way to define in FEEL a type like "feel:function", that the implementation has to "implicitly" understand that the BKM is a function that returns a "feel:number" due to that type definition.
It is a mess, I would gladly change that if we can get it fixed in the spec. (or if my understanding of the issue turns out to be wrong)
from tck.
I agree with Daniel. According to DMN spec the typeRef of the variable is a FunctionType. The type of the body is the return type of the function. The FunctionType doesn't have to be specified, it can be inferred from the types of the parameters and the return type.
We should raise the issue at the next RTF.
We have two options:
- keep the spec as it is and change the tests
- change the spec so that the type of the variable is the return type and keep the tests as they are.
My preference is to change the tests. I don't see anything wrong with the spec. The function type can be inferred from parameters and return type.
from tck.
Our preference is also to change the DMN TCK tests. Currently there is nothing wrong with the specification. Only a feel:function type is missing, which can be introduced for DMN 1.2
--> To be compliant with the specification, we should change the DMN models of the affected test cases
from tck.
Discussed this further with other people, Denis, Gary, Bruce. It seems like the best approach will be to remove the typeRef from the BKM variables as suggest already by @DanielThanner .
@opatrascoiu it would be good if you can include something like a "feel:function[...]" type on your type improvement proposal to the RTF for 1.2.
from tck.
Agreed to update test cases. Leaving issue in to track until we get the changes make.
from tck.
Created pull request #120 with changed dmn files.
from tck.
@etirelli I'll look into it next week. Hopefully, I'll have more time.
from tck.
This is resolved by the PR that was merged today
from tck.
Related Issues (20)
- Clarify mixed type workings of `+` operator HOT 3
- Clarify `null` handling in `FunctionInvocation` HOT 6
- Cover comparisons
- Create transitive import test cases based on snippets in DMN15-58 HOT 2
- Doubtful typing on overloaded built-in function in test HOT 2
- Report does not work under windows
- The test cases table breaks up around Compliance-Level-3
- New PRs ... but deleting them. The PRs have dragged in CL/LF differences HOT 2
- Patches to test cases HOT 4
- Confused about decision service encapsulatedDecisions - ambiguous - is ch11 example correct? HOT 5
- Task list for DMN 1.6
- Optional fn params vs null values HOT 4
- Question to test case `decision_015` in `0084-feel-for-loops.dmn` HOT 1
- Quesion to test case `nested009` in `1146-feel-context-put-function.dmn` HOT 2
- 0014-loan-comparison assumes that sorting keeps the original order HOT 2
- breaking change?: what do do with range equality? What is 'undefined'? HOT 4
- Is `[100] = 100` false or null? HOT 4
- Does @"P0D" = "P0Y" give `true` or `null` (or false?) ? HOT 3
- The new text for type conversions in "10.3.2.9.4 Type conversions" misses some use cases HOT 2
- Spec permits ranges to use new `=` and `!=` comparison operators - but it doesn't make much sense (to me) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tck.