let ident = path1.node;
let renamed = mtwt::resolve(ident);
- match self.resolve_bare_identifier_pattern(ident) {
+ match self.resolve_bare_identifier_pattern(ident, pattern.span) {
FoundStructOrEnumVariant(def, lp)
if mode == RefutableMode => {
debug!("(resolving pattern) resolving `{}` to \
});
}
- fn resolve_bare_identifier_pattern(&mut self, name: Ident)
+ fn resolve_bare_identifier_pattern(&mut self, name: Ident, span: Span)
-> BareIdentifierPatternResolution {
let module = self.current_module.clone();
match self.resolve_item_in_lexical_scope(module,
def @ DefStatic(_, false) => {
return FoundConst(def, LastMod(AllPublic));
}
+ DefStatic(_, true) => {
+ self.resolve_error(span,
+ "mutable static variables cannot be referenced in a pattern");
+ return BareIdentifierPatternUnresolved;
+ }
_ => {
return BareIdentifierPatternUnresolved;
}