-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
175 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
import Config | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
defmodule TypeCheck.DefaultOverrides.Base do | ||
use TypeCheck | ||
|
||
@type! decode_case() :: :upper | :lower | :mixed | ||
|
||
@type! encode_case() :: :upper | :lower | ||
end |
14 changes: 14 additions & 0 deletions
14
lib/type_check/default_overrides/calendar/time_zone_database.ex
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
defmodule TypeCheck.DefaultOverrides.Calendar.TimeZoneDatabase do | ||
use TypeCheck | ||
|
||
alias TypeCheck.DefaultOverrides.Calendar | ||
|
||
@type! time_zone_period() :: %{ | ||
optional(any()) => any(), | ||
utc_offset: Calendar.utc_offset(), | ||
std_offset: Calendar.std_offset(), | ||
zone_abbr: Calendar.zone_abbr() | ||
} | ||
|
||
@type! time_zone_period_limit() :: Calendar.naive_datetime() | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,14 @@ | ||
defmodule TypeCheck.DefaultOverrides.Enum do | ||
alias TypeCheck.DefaultOverrides.Enumerable | ||
use TypeCheck | ||
|
||
@type! acc() :: any() | ||
|
||
@type! default() :: any() | ||
|
||
@type! element() :: any() | ||
|
||
@type! index() :: integer() | ||
|
||
@type! t() :: Enumerable.t() | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Overrides Erlang's `:binary` module: | ||
defmodule Elixir.TypeCheck.DefaultOverrides.Erlang.Calendar do | ||
use TypeCheck | ||
|
||
@type! date() :: {year(), month(), day()} | ||
|
||
@type! datetime() :: {date(), time()} | ||
|
||
@type! datetime1970() :: {{year1970(), month(), day()}, time()} | ||
|
||
@typep! day() :: 1..31 | ||
|
||
# @typep! day_of_year() :: 0..365 | ||
|
||
# @typep! daynum() :: 1..7 | ||
|
||
@typep! hour() :: 0..23 | ||
|
||
# @typep! ldom() :: 28 | 29 | 30 | 31 | ||
|
||
@typep! minute() :: 0..59 | ||
|
||
@typep! month() :: 1..12 | ||
|
||
# @typep! offset() :: [byte()] | (time :: integer()) | ||
|
||
# @typep! rfc3339_string() :: [byte(), ...] | ||
|
||
# @typep! rfc3339_time_unit() :: | ||
# :microsecond | :millisecond | :nanosecond | :second | :native | ||
|
||
@typep! second() :: 0..59 | ||
|
||
# @typep! secs_per_day() :: 0..86400 | ||
|
||
@type! time() :: {hour(), minute(), second()} | ||
|
||
# @typep! weeknum() :: 1..53 | ||
|
||
@typep! year() :: non_neg_integer() | ||
|
||
@typep! year1970() :: 1970..10000 | ||
|
||
# @typep! yearweeknum() :: {year(), weeknum()} | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,21 @@ | ||
defmodule TypeCheck.DefaultOverrides.File.Stat do | ||
use TypeCheck | ||
# TODO | ||
# @type! t() :: %Elixir.File.Stat{ | ||
# access: :read | :write | :read_write | :none, | ||
# atime: :calendar.datetime() | integer(), | ||
# ctime: :calendar.datetime() | integer(), | ||
# gid: non_neg_integer(), | ||
# inode: non_neg_integer(), | ||
# links: non_neg_integer(), | ||
# major_device: non_neg_integer(), | ||
# minor_device: non_neg_integer(), | ||
# mode: non_neg_integer(), | ||
# mtime: :calendar.datetime() | integer(), | ||
# size: non_neg_integer(), | ||
# type: :device | :directory | :regular | :other | :symlink, | ||
# uid: non_neg_integer() | ||
# } | ||
|
||
alias Elixir.TypeCheck.DefaultOverrides.Erlang | ||
|
||
@type! t() :: %Elixir.File.Stat{ | ||
access: :read | :write | :read_write | :none, | ||
atime: Erlang.Calendar.datetime() | integer(), | ||
ctime: Erlang.Calendar.datetime() | integer(), | ||
gid: non_neg_integer(), | ||
inode: non_neg_integer(), | ||
links: non_neg_integer(), | ||
major_device: non_neg_integer(), | ||
minor_device: non_neg_integer(), | ||
mode: non_neg_integer(), | ||
mtime: Erlang.Calendar.datetime() | integer(), | ||
size: non_neg_integer(), | ||
type: :device | :directory | :regular | :other | :symlink, | ||
uid: non_neg_integer() | ||
} | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
defmodule TypeCheck.DefaultOverrides.IO.ANSI do | ||
use TypeCheck | ||
@type! ansicode() :: atom() | ||
|
||
# TODO | ||
# @type! ansidata() :: ansilist() | ansicode() | binary() | ||
|
||
# TODO | ||
# @type! ansilist() :: | ||
# maybe_improper_list( | ||
# char() | ansicode() | binary() | ansilist(), | ||
# binary() | ansicode() | [] | ||
# ) | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
defmodule TypeCheck.DefaultOverrides.IO.Stream do | ||
use TypeCheck | ||
|
||
@type! t() :: %IO.Stream{device: term(), line_or_bytes: term(), raw: term()} | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
defmodule TypeCheck.DefaultOverrides.OptionParser do | ||
use TypeCheck | ||
|
||
alias TypeCheck.DefaultOverrides.String | ||
|
||
@type! argv() :: list(String.t()) | ||
|
||
@type! errors() :: list({String.t(), String.t() | nil}) | ||
|
||
@type! options() :: list({:switches, keyword()} | {:strict, keyword()} | {:aliases, keyword()}) | ||
|
||
@type! parsed() :: keyword() | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
defmodule TypeCheck.DefaultOverrides.Path do | ||
use TypeCheck | ||
|
||
# TODO | ||
# @type! t() :: IO.chardata() | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
defmodule TypeCheck.DefaultOverrides.Port do | ||
use TypeCheck | ||
@type! name() :: | ||
{:spawn, charlist() | binary()} | ||
| {:spawn_driver, charlist() | binary()} | ||
| {:spawn_executable, charlist() | atom()} | ||
| {:fd, non_neg_integer(), non_neg_integer()} | ||
end |