-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
type system revision and new subtype algorithm #18457
Commits on Jan 16, 2017
-
- update for v0.5 - an algorithm improvement for vars that match unions
Configuration menu - View commit details
-
Copy full SHA for 5ac8310 - Browse repository at this point
Copy the full SHA 5ac8310View commit details -
add tests for type intersection fully move subtyping tests from test/core to test/subtype [ci skip]
Configuration menu - View commit details
-
Copy full SHA for f6756e5 - Browse repository at this point
Copy the full SHA f6756e5View commit details -
new type union, unionall representation, new subtype and intersection…
… algorithms [ci skip]
Configuration menu - View commit details
-
Copy full SHA for b32dd7c - Browse repository at this point
Copy the full SHA b32dd7cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3305d93 - Browse repository at this point
Copy the full SHA 3305d93View commit details -
make type declarations with triangular constraints work properly
e.g. fixes #6721 fixes to type instantiation get several test suites passing remove ambiguous `convert` definition add some disambiguating definitions for sparse `map` fix a method ambiguity in RowVector fix check for iterability in Dict constructor [ci skip]
Configuration menu - View commit details
-
Copy full SHA for e3bec2a - Browse repository at this point
Copy the full SHA e3bec2aView commit details -
normalize
Tuple{Vararg}
toTuple
otherwise, `Tuple{Vararg{T} where T}` is not really a meaningful type
Configuration menu - View commit details
-
Copy full SHA for 811660e - Browse repository at this point
Copy the full SHA 811660eView commit details -
make ordered type cache more robust
Allow multiple entries that are equal according to the ordered comparison predicate typekey_compare, but not equal according to jl_types_equal. This is mostly needed for types in replaced modules, which can be distinguished by pointer comparison but cannot be reliably ordered (since they differ only in memory address).
Configuration menu - View commit details
-
Copy full SHA for 86142bf - Browse repository at this point
Copy the full SHA 86142bfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6682e52 - Browse repository at this point
Copy the full SHA 6682e52View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7dcfc2c - Browse repository at this point
Copy the full SHA 7dcfc2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7ef48b7 - Browse repository at this point
Copy the full SHA 7ef48b7View commit details -
remove extraneous for loops for subtype algo
fold the "more" flag into the first iteration of subtyping
Configuration menu - View commit details
-
Copy full SHA for c0c6e05 - Browse repository at this point
Copy the full SHA c0c6e05View commit details -
Configuration menu - View commit details
-
Copy full SHA for 28f8465 - Browse repository at this point
Copy the full SHA 28f8465View commit details -
add a fastpath to type-equal for leaftype
this is important because it is on the inner loop for `jl_inst_concrete_tupletype` (aka `jl_f_tuple`)
Configuration menu - View commit details
-
Copy full SHA for 3a1967e - Browse repository at this point
Copy the full SHA 3a1967eView commit details -
Configuration menu - View commit details
-
Copy full SHA for c6c9271 - Browse repository at this point
Copy the full SHA c6c9271View commit details -
use Const(T) instead of Type{T} in inference
since Type{T} is not a singleton object (Type{T}.parameters[1] !== T) we need to avoid assuming it can be used as a representation of a constant type this change also allows deferring allocation of as many Type{T} objects in the type cache, which is expected to be overall beneficial (independent of fixing the aforementioned bug) this necessitated a change to `associative_with_eltype` to allow inference to prove that the object passed to DT is always the same constant, and not just type-equal to it
Configuration menu - View commit details
-
Copy full SHA for 3d20fb5 - Browse repository at this point
Copy the full SHA 3d20fb5View commit details -
return_type_tfunc was too pessimistic
make Union{} a leaftype (and also Tuples of Unions) and ensure return_type_tfunc will infer as much as possible
Configuration menu - View commit details
-
Copy full SHA for b6d7457 - Browse repository at this point
Copy the full SHA b6d7457View commit details -
Configuration menu - View commit details
-
Copy full SHA for b8db03f - Browse repository at this point
Copy the full SHA b8db03fView commit details -
Fix the instance of assuming DataType that caused the crash in array.c and audit other uses, inserting appropriate assertions.
Configuration menu - View commit details
-
Copy full SHA for 7ae0bd2 - Browse repository at this point
Copy the full SHA 7ae0bd2View commit details