]> git.lizzy.rs Git - rust.git/commit
Add support for patterns referencing non-trivial statics
authorJakub Wieczorek <jakub@jakub.cc>
Sun, 13 Jul 2014 13:12:47 +0000 (15:12 +0200)
committerJakub Wieczorek <jakub@jakub.cc>
Fri, 18 Jul 2014 23:09:22 +0000 (01:09 +0200)
commitfba1194841fd8f31c3b93315b2cb53d1ce87fe98
tree72fc38463aa76578db29852e6ad7c7762abf1aa4
parent7502b4cd6b10693cec6862f5951b1adf0c7657ab
Add support for patterns referencing non-trivial statics

This is accomplished by rewriting static expressions into equivalent patterns.
This way, patterns referencing static variables can both participate
in exhaustiveness analysis as well as be compiled down into the appropriate
branch of the decision trees that match expressions are codegened to.

Fixes #6533.
Fixes #13626.
Fixes #13731.
Fixes #14576.
Fixes #15393.
src/librustc/lib.rs
src/librustc/middle/check_match.rs
src/librustc/middle/const_eval.rs
src/librustc/middle/pat_util.rs
src/librustc/middle/resolve.rs
src/librustc/middle/trans/_match.rs
src/test/compile-fail/match-arm-statics.rs [new file with mode: 0644]
src/test/compile-fail/static-mut-not-pat.rs
src/test/run-pass/match-arm-statics.rs [new file with mode: 0644]