mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	This reverts commit 13314df21b0bb0cdd02c6760581d1b9f1052fa7e, reversing changes made to 6e534c73c35f569492ed5fb5f349075d58ed8b7e.
		
			
				
	
	
		
			32 lines
		
	
	
		
			557 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			557 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
//@ run-pass
 | 
						|
#![feature(generic_const_exprs)]
 | 
						|
#![allow(incomplete_features)]
 | 
						|
 | 
						|
pub trait BlockCipher {
 | 
						|
    const BLOCK_SIZE: usize;
 | 
						|
}
 | 
						|
 | 
						|
struct FooCipher;
 | 
						|
impl BlockCipher for FooCipher {
 | 
						|
    const BLOCK_SIZE: usize = 64;
 | 
						|
}
 | 
						|
 | 
						|
struct BarCipher;
 | 
						|
impl BlockCipher for BarCipher {
 | 
						|
    const BLOCK_SIZE: usize = 32;
 | 
						|
}
 | 
						|
 | 
						|
pub struct Block<C>(#[allow(dead_code)] C);
 | 
						|
 | 
						|
pub fn test<C: BlockCipher, const M: usize>()
 | 
						|
where
 | 
						|
    [u8; M - C::BLOCK_SIZE]: Sized,
 | 
						|
{
 | 
						|
    let _ = [0; M - C::BLOCK_SIZE];
 | 
						|
}
 | 
						|
 | 
						|
fn main() {
 | 
						|
    test::<FooCipher, 128>();
 | 
						|
    test::<BarCipher, 64>();
 | 
						|
}
 |