Digital-Identity-Labs / smee

SAML Metadata Entity Extractor (etc)
Apache License 2.0
0 stars 0 forks source link

What is Dialyzer going on about here? #11

Closed binaryape closed 8 months ago

binaryape commented 1 year ago
lib/smee/mdq.ex:81:pattern_match_cov
The pattern
{:error, _code}

can never match, because previous clauses completely cover the type

  {:error, :http_404}
  | {:ok,
     %Smee.Entity{
       :changes => integer(),
       :compressed => boolean(),
       :data => nil | binary(),
       :data_hash => nil | binary(),
       :downloaded_at =>
         nil
         | %DateTime{
             :calendar => atom(),
             :day => pos_integer(),
             :hour => non_neg_integer(),
             :microsecond => {non_neg_integer(), non_neg_integer()},
             :minute => non_neg_integer(),
             :month => pos_integer(),
             :second => non_neg_integer(),
             :std_offset => integer(),
             :time_zone => binary(),
             :utc_offset => integer(),
             :year => integer(),
             :zone_abbr => binary()
           },
       :label => nil | binary(),
       :metadata_uri => nil | binary(),
       :metadata_uri_hash => nil | binary(),
       :modified_at =>
         nil
         | %DateTime{
             :calendar => atom(),
             :day => pos_integer(),
             :hour => non_neg_integer(),
             :microsecond => {non_neg_integer(), non_neg_integer()},
             :minute => non_neg_integer(),
             :month => pos_integer(),
             :second => non_neg_integer(),
             :std_offset => integer(),
             :time_zone => binary(),
             :utc_offset => integer(),
             :year => integer(),
             :zone_abbr => binary()
           },
       :priority => integer(),
       :size => integer(),
       :trustiness => float(),
       :uri => nil | binary(),
       :uri_hash => nil | binary(),
       :valid_until =>
         nil
         | %DateTime{
             :calendar => atom(),
             :day => pos_integer(),
             :hour => non_neg_integer(),
             :microsecond => {non_neg_integer(), non_neg_integer()},
             :minute => non_neg_integer(),
             :month => pos_integer(),
             :second => non_neg_integer(),
             :std_offset => integer(),
             :time_zone => binary(),
             :utc_offset => integer(),
             :year => integer(),
             :zone_abbr => binary()
           },
       :xdoc => nil | binary()
     }}
.

________________________________________________________________________________
lib/smee/mdq.ex:108:pattern_match
The pattern can never match the type.

Pattern:
{:error, _code}

Type:

  {:ok,
   %Smee.Metadata{
     :cache_duration => nil | binary(),
     :cert_fingerprint => nil | binary(),
     :cert_url => nil | binary(),
     :changes => integer(),
     :compressed => boolean(),
     :data => nil | binary(),
     :data_hash => nil | binary(),
     :downloaded_at =>
       nil
       | %DateTime{
           :calendar => atom(),
           :day => pos_integer(),
           :hour => non_neg_integer(),
           :microsecond => {_, _},
           :minute => non_neg_integer(),
           :month => pos_integer(),
           :second => non_neg_integer(),
           :std_offset => integer(),
           :time_zone => binary(),
           :utc_offset => integer(),
           :year => integer(),
           :zone_abbr => binary()
         },
     :entity_count => integer(),
     :etag => nil | binary(),
     :file_uid => nil | binary(),
     :id => nil | binary(),
     :label => nil | binary(),
     :modified_at =>
       nil
       | %DateTime{
           :calendar => atom(),
           :day => pos_integer(),
           :hour => non_neg_integer(),
           :microsecond => {_, _},
           :minute => non_neg_integer(),
           :month => pos_integer(),
           :second => non_neg_integer(),
           :std_offset => integer(),
           :time_zone => binary(),
           :utc_offset => integer(),
           :year => integer(),
           :zone_abbr => binary()
         },
     :priority => integer(),
     :size => integer(),
     :trustiness => float(),
     :type => atom(),
     :uri => nil | binary(),
     :uri_hash => binary(),
     :url => nil | binary(),
     :url_hash => nil | binary(),
     :valid_until => nil,
     :verified => boolean()
   }}
binaryape commented 8 months ago

I still don't know, but I've apparently fixed it accidentally