Skip to content

Commit d1e8b8d

Browse files
committed
Fix tests
1 parent ad204f7 commit d1e8b8d

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

crates/ra_assists/src/lib.rs

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -168,16 +168,27 @@ mod assists {
168168

169169
#[cfg(test)]
170170
mod helpers {
171-
use ra_db::{fixture::WithFixture, FileRange};
172-
use ra_ide_db::RootDatabase;
171+
use std::sync::Arc;
172+
173+
use ra_db::{fixture::WithFixture, FileId, FileRange, SourceDatabaseExt};
174+
use ra_ide_db::{symbol_index::SymbolsDatabase, RootDatabase};
173175
use ra_syntax::TextRange;
174176
use test_utils::{add_cursor, assert_eq_text, extract_offset, extract_range};
175177

176178
use crate::{Assist, AssistCtx};
177179

180+
pub(crate) fn with_single_file(text: &str) -> (RootDatabase, FileId) {
181+
let (mut db, file_id) = RootDatabase::with_single_file(text);
182+
// FIXME: ideally, this should be done by the above `RootDatabase::with_single_file`,
183+
// but it looks like this might need specialization? :(
184+
let local_roots = vec![db.file_source_root(file_id)];
185+
db.set_local_roots(Arc::new(local_roots));
186+
(db, file_id)
187+
}
188+
178189
pub(crate) fn check_assist(assist: fn(AssistCtx) -> Option<Assist>, before: &str, after: &str) {
179190
let (before_cursor_pos, before) = extract_offset(before);
180-
let (db, file_id) = RootDatabase::with_single_file(&before);
191+
let (db, file_id) = with_single_file(&before);
181192
let frange =
182193
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
183194
let assist =
@@ -205,7 +216,7 @@ mod helpers {
205216
after: &str,
206217
) {
207218
let (range, before) = extract_range(before);
208-
let (db, file_id) = RootDatabase::with_single_file(&before);
219+
let (db, file_id) = with_single_file(&before);
209220
let frange = FileRange { file_id, range };
210221
let assist =
211222
AssistCtx::with_ctx(&db, frange, true, assist).expect("code action is not applicable");
@@ -227,7 +238,7 @@ mod helpers {
227238
target: &str,
228239
) {
229240
let (before_cursor_pos, before) = extract_offset(before);
230-
let (db, file_id) = RootDatabase::with_single_file(&before);
241+
let (db, file_id) = with_single_file(&before);
231242
let frange =
232243
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
233244
let assist =
@@ -247,7 +258,7 @@ mod helpers {
247258
target: &str,
248259
) {
249260
let (range, before) = extract_range(before);
250-
let (db, file_id) = RootDatabase::with_single_file(&before);
261+
let (db, file_id) = with_single_file(&before);
251262
let frange = FileRange { file_id, range };
252263
let assist =
253264
AssistCtx::with_ctx(&db, frange, true, assist).expect("code action is not applicable");
@@ -265,7 +276,7 @@ mod helpers {
265276
before: &str,
266277
) {
267278
let (before_cursor_pos, before) = extract_offset(before);
268-
let (db, file_id) = RootDatabase::with_single_file(&before);
279+
let (db, file_id) = with_single_file(&before);
269280
let frange =
270281
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
271282
let assist = AssistCtx::with_ctx(&db, frange, true, assist);
@@ -277,7 +288,7 @@ mod helpers {
277288
before: &str,
278289
) {
279290
let (range, before) = extract_range(before);
280-
let (db, file_id) = RootDatabase::with_single_file(&before);
291+
let (db, file_id) = with_single_file(&before);
281292
let frange = FileRange { file_id, range };
282293
let assist = AssistCtx::with_ctx(&db, frange, true, assist);
283294
assert!(assist.is_none());
@@ -286,17 +297,17 @@ mod helpers {
286297

287298
#[cfg(test)]
288299
mod tests {
289-
use ra_db::{fixture::WithFixture, FileRange};
300+
use ra_db::FileRange;
290301
use ra_syntax::TextRange;
291302
use test_utils::{extract_offset, extract_range};
292303

293-
use ra_ide_db::RootDatabase;
304+
use crate::helpers;
294305

295306
#[test]
296307
fn assist_order_field_struct() {
297308
let before = "struct Foo { <|>bar: u32 }";
298309
let (before_cursor_pos, before) = extract_offset(before);
299-
let (db, file_id) = RootDatabase::with_single_file(&before);
310+
let (db, file_id) = helpers::with_single_file(&before);
300311
let frange =
301312
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
302313
let assists = super::assists(&db, frange);
@@ -320,7 +331,7 @@ mod tests {
320331
}
321332
}";
322333
let (range, before) = extract_range(before);
323-
let (db, file_id) = RootDatabase::with_single_file(&before);
334+
let (db, file_id) = helpers::with_single_file(&before);
324335
let frange = FileRange { file_id, range };
325336
let assists = super::assists(&db, frange);
326337
let mut assists = assists.iter();

crates/ra_ide_db/src/defs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ pub fn classify_name(
9292
ast::FnDef(it) => {
9393
let src = name.with_value(it);
9494
let def: hir::Function = sb.to_def(src)?;
95-
if parent.parent().and_then(ast::ItemList::cast).is_some() {
95+
if parent.parent().and_then(ast::ItemList::cast).map_or(false, |it| it.syntax().parent().and_then(ast::Module::cast).is_none()) {
9696
Some(from_assoc_item(sb.db, def.into()))
9797
} else {
9898
Some(from_module_def(sb.db, def.into(), None))

0 commit comments

Comments
 (0)