diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2013-03-06 12:27:23 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2013-03-06 13:01:16 -0500 |
| commit | 704cd648ac1160c5f02291e505697a6cf7e20945 (patch) | |
| tree | 995a32595772da7195fb50c8987369bffe4c3755 /src/libsyntax | |
| parent | 67100ddb3519dedf8ab07371a381c7762f9fcc4f (diff) | |
| download | rust-704cd648ac1160c5f02291e505697a6cf7e20945.tar.gz rust-704cd648ac1160c5f02291e505697a6cf7e20945.zip | |
Fix a bug with region-parameterized enums etc where trans considered
them to be non-monomorphic. Merely having lifetime parameters is not enough to qualify for that status. Fixes #5243.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 10 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 484fff1f9de..1ec11501f33 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -161,8 +161,14 @@ pub struct Generics { } pub impl Generics { - fn is_empty(&self) -> bool { - self.lifetimes.len() + self.ty_params.len() == 0 + fn is_parameterized(&self) -> bool { + self.lifetimes.len() + self.ty_params.len() > 0 + } + fn is_lt_parameterized(&self) -> bool { + self.lifetimes.len() > 0 + } + fn is_type_parameterized(&self) -> bool { + self.ty_params.len() > 0 } } diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index d307e3964e7..275f5a43397 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -567,7 +567,7 @@ pub fn print_item(s: @ps, &&item: @ast::item) { ast::item_impl(ref generics, opt_trait, ty, ref methods) => { head(s, visibility_qualified(item.vis, ~"impl")); - if !generics.is_empty() { + if generics.is_parameterized() { print_generics(s, generics); space(s.s); } |
