Open issues

Let-aliasing breaks flow inference for results of `class`
CTYP-326
"Method code too large!" with protocols (more than 38 functions in the protocol)
CTYP-270
Let-aliased variables of plain Map lookups should update original map
CTYP-241
(Array X) is broken and undocumented
CTYP-231
checking clojure.core/keep produces Internal Error--Cannot resolve type: Option
CTYP-223
pred doesn't work for non-literal HVecs with varargs
CTYP-306
Internal error with t/defn, sort-by and no refer all
CTYP-282
An invalid type annotation for a function with a record argument passes a type check
CTYP-279
Typechecking fails with internal assert error
CTYP-277
Bad call to path-type: nil
CTYP-275
Inferred type for {{defn}} and {{typed/fn}} with the same body are different
CTYP-274
Intersections of value types broken
CTYP-225
if-let on an hmap with an optional entry always expected to succeed
CTYP-222
RPS example does not type check
CTYP-219
method-type is broken
CTYP-209
Assoc doesn't work with multiple entries
CTYP-204
Calling a multimethod from a protocol function breaks the type checker
CTYP-201
No matching arities when defining multiple arity protocol method
CTYP-197
Support for clojure.core/extend is broken when used with typed.core/defprotocol
CTYP-195
Bad type syntax when parsing types of macro-generated anonymous functions from required namespaces (when the types are composed, for instance (Option AnyInteger))
CTYP-191
HSequential things should correctly erase dotted arguments
CTYP-140
large hashmaps: failure to discover subtype and error-output to complex to understand
CTYP-102
with-meta doesn't type check with vectors or hash-maps.
CTYP-88
Cannot instantiate variables that have bounds
CTYP-32
Adding annotations for clojure.string namespace.
CTYP-327
Abstract over keyword arguments
CTYP-301
adding stop-gap annotation for 'hash-map' results in runtime exception
CTYP-242
group-by produces "Cannot resolve type: Seqable"
CTYP-221
extend & extend-protocol with (Class/forName "[B") as Class dispatch value fails
CTYP-143
Typechecker fails when checking involves an object from reify
CTYP-133
select-keys on HMap returns Map with union key and value types
CTYP-129
Support KwArgsSeq in apply
CTYP-76
merge doesn't seem to like records
CTYP-72
issue 1 of 33

Let-aliasing breaks flow inference for results of `class`

Description

The following code complains a NPE is possible from .isArray,
but clearly the assertion prevents that. This issue is related
to let-aliasing, probably related to core.typed not knowing how
to update the type of `c` with the information that it's class
is non-nil.

1 2 3 4 (fn [a :- t/Any] (let [c (class a) _ (assert c)] (.isArray c)))

Environment

None

Status

Assignee

Unassigned

Reporter

Ambrose BS

Approval

None

Patch

None

Components

Fix versions

Priority

Blocker