-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Hi @erszcz, we talked over the Elixir Forum,
I will be reporting some of the stuff that I find difficult to deal with Gradient
This is my project and commit
https://github.com/eksperimental/beam_langs_meta_data/tree/26ecd958475bedd5c0e4204814e7437484acdff4
mix gradient give me this:
lib/beam_langs_meta_data.ex: The map on line 242 is expected to have type %{required(:latest) => version_string(), required(:releases) => nonempty_keyword(atom(), elixir_release_data())} but it has type %{required(:latest) => binary(), required(:releases) => nonempty_list({:1.13.0, %{optional(:assets) => nonempty_list(%{optional(:content_type) => binary(), optional(:created_at) => binary(), optional(:download_url) => binary(), optional(:id) => 50943932, optional(:label) => nil, optional(:name) => binary(), optional(:node_id) => binary(), optional(:size) => 2023670, optional(:state) => binary(), optional(:url) => binary()} | %{optional(:content_type) => binary(), optional(:created_at) => binary(), optional(:download_url) => binary(), optional(:id) => 50943934, optional(:label) => nil, optional(:name) => binary(), optional(:node_id) => binary(), optional(:size) => 6230020, optional(:state) => binary(), optional(:url) => binary()}), optional(:assets_url) => binary(), optional(:body) => binary(), optional(:created_at) => binary(), optional(:draft) => false, optional(:id) => 54599470, optional(:name) => binary(), optional(:node_id) => binary(), optional(:prerelease) => false, optional(:published_at) => binary(), optional(:release_url) => binary(), optional(:tag_name) => binary(), optional(:tarball_url) => binary(), optional(:target_commitish) => binary(), optional(:upload_url) => binary(), optional(:url) => binary(), optional(:zipball_url) => binary()}} | {:1.13.0-rc.0, %{optional(:assets) => nonempty_list(%{optional(:content_type) => binary(), optional(:created_at) => binary(), optional(:download_url) => binary(), optional(:id) => 48381634, optional(:label) => nil, optional(:name) => binary(), optional(:node_id) => binary(), optional(:size) => 2020048, optional(:state) => binary(), optional(:url) => binary()} | %{optional(:content_type) => binary(), optional(:created_at) => binary(), optional(:download_url) => binary(), optional(:id) => 48381646, optional(:label) => nil, optional(:name) => binary(), optional(:node_id) => binary(), optional(:size) => 6223789, optional(:state) => binary(), optional(:url) => binary()}), optional(:assets_url) => binary(), optional(:body) => binary(), optional(:created_at) => binary(), optional(:draft) => false, optional(:id) => 52477144, optional(:name) => binary(), optional(:node_id) => binary(), optional(:prerelease) => true, optional(:published_at) => binary(), optional(:release_url) => binary(), optional(:tag_name) => binary(), optional(:tarball_url) => binary(), optional(:target_commitish) => binary(), optional(:upload_url) => binary(), optional(:url) => binary(), optional(:zipball_url) => binary()}} | {:1.13.0-rc.1, %{optional(:assets) => nonempty_list(%{optional(:content_type) => binary(), optional(:created_at) => binary(), optional(:download_url) => binary(), optional(:id) => 49611887, optional(:label) => nil, optional(:name) => binary(), optional(:node_id) => binary(), optional(:size) => 2016743, optional(:state) => binary(), optional(:url) => binary()} | %{optional(:content_type) => binary(), optional(:created_at) => binary(), optional(:download_url) => binary(), optional(:id) => 49611889, optional(:label) => nil, optional(:name) => binary(), optional(:node_id) => binary(), optional(:size) => 6226682, optional(:state) => binary(), optional(:url) => binary()}), optional(:assets_url) => binary(), optional(:body) => binary(), optional(:created_at) => binary(), optional(:draft) => false, optional(:id) => 53503802, optional(:name) => binary(), optional(:node_id) => binary(), optional(:prerelease) => true, optional(:published_at) => binary(), optional(:release_url) => binary(), optional(:tag_name) => binary(), optional(:tarball_url) => binary(), optional(:target_commitish) => binary(), optional(:upload_url) => binary(), optional(:url) => binary(), optional(:zipball_url) => binary()}})}
There are two issues,
- Impossible to read all in one line. The output should be formatted.
- Some atoms need double quotes, such as
:1.13.0they should be represented as:"1.13.0"
if that is fixed, the report should look like this.
%{
required(:latest) => binary(),
required(:releases) =>
nonempty_list(
{:"1.13.0",
%{
optional(:assets) =>
nonempty_list(
%{
optional(:content_type) => binary(),
optional(:created_at) => binary(),
optional(:download_url) => binary(),
optional(:id) => 50_943_932,
optional(:label) => nil,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:size) => 2_023_670,
optional(:state) => binary(),
optional(:url) => binary()
}
| %{
optional(:content_type) => binary(),
optional(:created_at) => binary(),
optional(:download_url) => binary(),
optional(:id) => 50_943_934,
optional(:label) => nil,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:size) => 6_230_020,
optional(:state) => binary(),
optional(:url) => binary()
}
),
optional(:assets_url) => binary(),
optional(:body) => binary(),
optional(:created_at) => binary(),
optional(:draft) => false,
optional(:id) => 54_599_470,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:prerelease) => false,
optional(:published_at) => binary(),
optional(:release_url) => binary(),
optional(:tag_name) => binary(),
optional(:tarball_url) => binary(),
optional(:target_commitish) => binary(),
optional(:upload_url) => binary(),
optional(:url) => binary(),
optional(:zipball_url) => binary()
}}
| {:"1.13.0-rc.0",
%{
optional(:assets) =>
nonempty_list(
%{
optional(:content_type) => binary(),
optional(:created_at) => binary(),
optional(:download_url) => binary(),
optional(:id) => 48_381_634,
optional(:label) => nil,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:size) => 2_020_048,
optional(:state) => binary(),
optional(:url) => binary()
}
| %{
optional(:content_type) => binary(),
optional(:created_at) => binary(),
optional(:download_url) => binary(),
optional(:id) => 48_381_646,
optional(:label) => nil,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:size) => 6_223_789,
optional(:state) => binary(),
optional(:url) => binary()
}
),
optional(:assets_url) => binary(),
optional(:body) => binary(),
optional(:created_at) => binary(),
optional(:draft) => false,
optional(:id) => 52_477_144,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:prerelease) => true,
optional(:published_at) => binary(),
optional(:release_url) => binary(),
optional(:tag_name) => binary(),
optional(:tarball_url) => binary(),
optional(:target_commitish) => binary(),
optional(:upload_url) => binary(),
optional(:url) => binary(),
optional(:zipball_url) => binary()
}}
| {:"1.13.0-rc.1",
%{
optional(:assets) =>
nonempty_list(
%{
optional(:content_type) => binary(),
optional(:created_at) => binary(),
optional(:download_url) => binary(),
optional(:id) => 49_611_887,
optional(:label) => nil,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:size) => 2_016_743,
optional(:state) => binary(),
optional(:url) => binary()
}
| %{
optional(:content_type) => binary(),
optional(:created_at) => binary(),
optional(:download_url) => binary(),
optional(:id) => 49_611_889,
optional(:label) => nil,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:size) => 6_226_682,
optional(:state) => binary(),
optional(:url) => binary()
}
),
optional(:assets_url) => binary(),
optional(:body) => binary(),
optional(:created_at) => binary(),
optional(:draft) => false,
optional(:id) => 53_503_802,
optional(:name) => binary(),
optional(:node_id) => binary(),
optional(:prerelease) => true,
optional(:published_at) => binary(),
optional(:release_url) => binary(),
optional(:tag_name) => binary(),
optional(:tarball_url) => binary(),
optional(:target_commitish) => binary(),
optional(:upload_url) => binary(),
optional(:url) => binary(),
optional(:zipball_url) => binary()
}}
)
}