mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-10-30 19:49:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			20 lines
		
	
	
	
		
			441 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
	
		
			441 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use query_group_macro::query_group;
 | |
| 
 | |
| #[salsa_macros::db]
 | |
| pub trait SourceDb: salsa::Database {
 | |
|     /// Text of the file.
 | |
|     fn file_text(&self, id: usize) -> String;
 | |
| }
 | |
| 
 | |
| #[query_group]
 | |
| pub trait RootDb: SourceDb {
 | |
|     #[salsa::invoke_interned(parse)]
 | |
|     fn parse(&self, id: usize) -> String;
 | |
| }
 | |
| 
 | |
| fn parse(db: &dyn RootDb, id: usize) -> String {
 | |
|     // this is the test: does the following compile?
 | |
|     db.file_text(id);
 | |
| 
 | |
|     String::new()
 | |
| }
 | 
