db.check_diagnostics();
}
+fn check_no_diagnostics(ra_fixture: &str) {
+ let db: TestDB = TestDB::with_files(ra_fixture);
+ db.check_no_diagnostics();
+}
+
#[test]
fn unresolved_import() {
check_diagnostics(
);
}
+#[test]
+fn include_macro_should_allow_empty_content() {
+ check_no_diagnostics(
+ r#"
+ //- /lib.rs
+ #[rustc_builtin_macro]
+ macro_rules! include { () => {} }
+
+ include!("bar.rs");
+ //- /bar.rs
+ // empty
+ "#,
+ );
+}
+
#[test]
fn good_out_dir_diagnostic() {
check_diagnostics(
assert_eq!(annotations, actual);
}
+
+ pub(crate) fn check_no_diagnostics(&self) {
+ let db: &TestDB = self;
+ let annotations = db.extract_annotations();
+ assert!(annotations.is_empty());
+
+ let mut has_diagnostics = false;
+ db.diagnostics(|_| {
+ has_diagnostics = true;
+ });
+
+ assert!(!has_diagnostics);
+ }
}
while self.peek().is_some() {
self.collect_leaf(&mut subtree.token_trees);
}
- if subtree.token_trees.is_empty() {
- return None;
- }
if subtree.token_trees.len() == 1 {
if let tt::TokenTree::Subtree(first) = &subtree.token_trees[0] {
return Some(first.clone());