Skip to content

Instantly share code, notes, and snippets.

@jtbandes
Last active February 15, 2017 05:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jtbandes/95ebf031d0ae4890d4dc3dc79e2bb4fa to your computer and use it in GitHub Desktop.
Save jtbandes/95ebf031d0ae4890d4dc3dc79e2bb4fa to your computer and use it in GitHub Desktop.

A summary of compiler crashers still open as of 2017/2/9. Thanks to @slavapestov for further diagnosis on several of these.

Fixed!

By @rudkx in apple/swift#7481:

On the simpler side...

SourceRange bug with ExprPattern and trailing closures:

Parsing issue with conditional compilation blocks:

Limitation of LLVM SourceMgr handling multibyte characters when printing diagnostics:

Failure Diagnosis Is Hard™

Attempt to verify accessibility of d before it's been set:

Issue with optional bindings and ConditionalCheckedCastExpr: Assertion failed: (destOptionals.size() - destExtraOptionals <= srcOptionals.size())

Issue with inout+@lvalue-ness: cannot have 'inout' or @lvalue wrapped inside an @lvalue

lazy var getter erroneously typechecked twice:

Cases which fail inside propagateLValueAccessKind

Other typechecking issues

OpenExistentialExpr issues:

Unhandled coercion during coerceToType:

Problems with circularity checking

Normal circularity check is bypassed: type is its own superclass

Name conflicts between function param and circular protocols:

Circularity check defeated by bound generic type:

Type variable and sidetable issues

(I suspect @rudkx's ongoing work will fix these.)

Type variables which are invalid with respect to the ConstraintGraph's TypeVariables (suggesting they have escaped):

Type variable (from OverloadedDeclRefExpr) escapes the type checker. The below are all variants of:

func f(x: UInt = 1 + 1 as? Int) {}

Astoundingly invalid inputs (i.e. I really don't know what's going on)

IterativeTypeChecker issue with inheritance clause:

Found opened existential archetype A outside enclosing OpenExistentialExpr:

(()||()x treated as a partial apply:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment