@@ -57,13 +57,13 @@ impl VfsPath {
5757 }
5858 }
5959
60- pub fn file_name_and_extension ( & self ) -> Option < ( & str , Option < & str > ) > {
60+ pub fn name_and_extension ( & self ) -> Option < ( & str , Option < & str > ) > {
6161 match & self . 0 {
6262 VfsPathRepr :: PathBuf ( p) => Some ( (
6363 p. file_stem ( ) ?. to_str ( ) ?,
6464 p. extension ( ) . and_then ( |extension| extension. to_str ( ) ) ,
6565 ) ) ,
66- VfsPathRepr :: VirtualPath ( p) => p. file_name_and_extension ( ) ,
66+ VfsPathRepr :: VirtualPath ( p) => p. name_and_extension ( ) ,
6767 }
6868 }
6969
@@ -287,9 +287,7 @@ impl VirtualPath {
287287 Some ( res)
288288 }
289289
290- // FIXME: Currently VirtualPath does is unable to distinguish a directory from a file
291- // hence this method will return `Some("directory_name", None)` for a directory
292- pub fn file_name_and_extension ( & self ) -> Option < ( & str , Option < & str > ) > {
290+ pub fn name_and_extension ( & self ) -> Option < ( & str , Option < & str > ) > {
293291 let file_path = if self . 0 . ends_with ( '/' ) { & self . 0 [ ..& self . 0 . len ( ) - 1 ] } else { & self . 0 } ;
294292 let file_name = match file_path. rfind ( '/' ) {
295293 Some ( position) => & file_path[ position + 1 ..] ,
@@ -318,29 +316,29 @@ mod tests {
318316
319317 #[ test]
320318 fn virtual_path_extensions ( ) {
321- assert_eq ! ( VirtualPath ( "/" . to_string( ) ) . file_name_and_extension ( ) , None ) ;
319+ assert_eq ! ( VirtualPath ( "/" . to_string( ) ) . name_and_extension ( ) , None ) ;
322320 assert_eq ! (
323- VirtualPath ( "/directory" . to_string( ) ) . file_name_and_extension ( ) ,
321+ VirtualPath ( "/directory" . to_string( ) ) . name_and_extension ( ) ,
324322 Some ( ( "directory" , None ) )
325323 ) ;
326324 assert_eq ! (
327- VirtualPath ( "/directory/" . to_string( ) ) . file_name_and_extension ( ) ,
325+ VirtualPath ( "/directory/" . to_string( ) ) . name_and_extension ( ) ,
328326 Some ( ( "directory" , None ) )
329327 ) ;
330328 assert_eq ! (
331- VirtualPath ( "/directory/file" . to_string( ) ) . file_name_and_extension ( ) ,
329+ VirtualPath ( "/directory/file" . to_string( ) ) . name_and_extension ( ) ,
332330 Some ( ( "file" , None ) )
333331 ) ;
334332 assert_eq ! (
335- VirtualPath ( "/directory/.file" . to_string( ) ) . file_name_and_extension ( ) ,
333+ VirtualPath ( "/directory/.file" . to_string( ) ) . name_and_extension ( ) ,
336334 Some ( ( ".file" , None ) )
337335 ) ;
338336 assert_eq ! (
339- VirtualPath ( "/directory/.file.rs" . to_string( ) ) . file_name_and_extension ( ) ,
337+ VirtualPath ( "/directory/.file.rs" . to_string( ) ) . name_and_extension ( ) ,
340338 Some ( ( ".file" , Some ( "rs" ) ) )
341339 ) ;
342340 assert_eq ! (
343- VirtualPath ( "/directory/file.rs" . to_string( ) ) . file_name_and_extension ( ) ,
341+ VirtualPath ( "/directory/file.rs" . to_string( ) ) . name_and_extension ( ) ,
344342 Some ( ( "file" , Some ( "rs" ) ) )
345343 ) ;
346344 }
0 commit comments