1+ use std:: collections:: HashMap ;
2+
13use base_db:: fixture:: WithFixture ;
24use chalk_ir:: { AdtId , TyKind } ;
35use hir_def:: {
@@ -9,16 +11,12 @@ use crate::{db::HirDatabase, test_db::TestDB, Interner, Substitution};
911
1012use super :: layout_of_ty;
1113
12- fn eval_goal ( ra_fixture : & str , minicore : & str ) -> Result < Layout , LayoutError > {
13- // using unstable cargo features failed, fall back to using plain rustc
14- let mut cmd = std:: process:: Command :: new ( "rustc" ) ;
15- cmd. args ( [ "-Z" , "unstable-options" , "--print" , "target-spec-json" ] ) . env ( "RUSTC_BOOTSTRAP" , "1" ) ;
16- let output = cmd. output ( ) . unwrap ( ) ;
17- assert ! ( output. status. success( ) , "{}" , output. status) ;
18- let stdout = String :: from_utf8 ( output. stdout ) . unwrap ( ) ;
19- let target_data_layout =
20- stdout. split_once ( r#""data-layout": ""# ) . unwrap ( ) . 1 . split_once ( '"' ) . unwrap ( ) . 0 . to_owned ( ) ;
14+ fn current_machine_data_layout ( ) -> String {
15+ project_model:: target_data_layout:: get ( None , None , & HashMap :: default ( ) ) . unwrap ( )
16+ }
2117
18+ fn eval_goal ( ra_fixture : & str , minicore : & str ) -> Result < Layout , LayoutError > {
19+ let target_data_layout = current_machine_data_layout ( ) ;
2220 let ra_fixture = format ! (
2321 "{minicore}//- /main.rs crate:test target_data_layout:{target_data_layout}\n {ra_fixture}" ,
2422 ) ;
@@ -47,15 +45,7 @@ fn eval_goal(ra_fixture: &str, minicore: &str) -> Result<Layout, LayoutError> {
4745
4846/// A version of `eval_goal` for types that can not be expressed in ADTs, like closures and `impl Trait`
4947fn eval_expr ( ra_fixture : & str , minicore : & str ) -> Result < Layout , LayoutError > {
50- // using unstable cargo features failed, fall back to using plain rustc
51- let mut cmd = std:: process:: Command :: new ( "rustc" ) ;
52- cmd. args ( [ "-Z" , "unstable-options" , "--print" , "target-spec-json" ] ) . env ( "RUSTC_BOOTSTRAP" , "1" ) ;
53- let output = cmd. output ( ) . unwrap ( ) ;
54- assert ! ( output. status. success( ) , "{}" , output. status) ;
55- let stdout = String :: from_utf8 ( output. stdout ) . unwrap ( ) ;
56- let target_data_layout =
57- stdout. split_once ( r#""data-layout": ""# ) . unwrap ( ) . 1 . split_once ( '"' ) . unwrap ( ) . 0 . to_owned ( ) ;
58-
48+ let target_data_layout = current_machine_data_layout ( ) ;
5949 let ra_fixture = format ! (
6050 "{minicore}//- /main.rs crate:test target_data_layout:{target_data_layout}\n fn main(){{let goal = {{{ra_fixture}}};}}" ,
6151 ) ;
0 commit comments