Comments (2)
Hi @postatum, thanks for reporting this!
It is an actual bug. If there's a union type in any node, the canonical form should push it to the top level node, computing all possible variations in the union.
The intention is that with the canonical form you don't need to deal with inheritance or unions, just go through a list of flat (because inheritance has also been computed) trees.
For some use cases, the symmetric transformation might be more useful: pushing the union type inside the tree as much as possible, compacting a union of trees at the top node into a single tree, with multiple union nodes inside, but we don't have an implementation or a definition of such a 'compact' transformation yet.
For this particular error, it looks like is missing an additional invocation to the canonical function after computing the inheritance, I'll take a look at it ASAP.
from datatype-expansion.
@antoniogarrote thanks for response. It makes sense now :)
from datatype-expansion.
Related Issues (20)
- The minimum and maximum fields of type disappears HOT 1
- Unions of arrays are broken HOT 3
- incompatible types error with recursive types
- An in-range update of rollup is breaking the build 🚨 HOT 34
- An in-range update of babel7 is breaking the build 🚨 HOT 32
- An in-range update of rollup is breaking the build 🚨 HOT 8
- Extra attributes of properties are not preserved in minType
- Should canonicalization remove single-element type arrays? HOT 5
- Doesn't work with RAML parser HOT 4
- Error incompatible types HOT 4
- Goog is not defined with Jest. HOT 1
- Inherited subtypes not handled properly
- Make union hoisting optional in canonicalization HOT 3
- Canonicalization adds undefined required property to array of union
- Canonicalized unions have extraneous additionalProperties
- Canonicalization can include properties in union
- increase coverage HOT 1
- minType error incompatible types: [object, [object Object]]
- minType union handling does not preserve non-functional facets HOT 3
- property with the name "type" not handled properly HOT 1
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 datatype-expansion.