@@ -8,7 +8,7 @@ mod method_resolution;
8
8
mod macros;
9
9
mod display_source_code;
10
10
11
- use std:: sync:: Arc ;
11
+ use std:: { env , sync:: Arc } ;
12
12
13
13
use base_db:: { fixture:: WithFixture , FileRange , SourceDatabase , SourceDatabaseExt } ;
14
14
use expect:: Expect ;
@@ -22,12 +22,14 @@ use hir_def::{
22
22
AssocItemId , DefWithBodyId , LocalModuleId , Lookup , ModuleDefId ,
23
23
} ;
24
24
use hir_expand:: { db:: AstDatabase , InFile } ;
25
- use stdx:: format_to;
25
+ use stdx:: { format_to, RacyFlag } ;
26
26
use syntax:: {
27
27
algo,
28
28
ast:: { self , AstNode } ,
29
29
SyntaxNode ,
30
30
} ;
31
+ use tracing_subscriber:: { layer:: SubscriberExt , EnvFilter , Registry } ;
32
+ use tracing_tree:: HierarchicalLayer ;
31
33
32
34
use crate :: {
33
35
db:: HirDatabase , display:: HirDisplay , infer:: TypeMismatch , test_db:: TestDB , InferenceResult , Ty ,
@@ -37,17 +39,20 @@ use crate::{
37
39
// against snapshots of the expected results using expect. Use
38
40
// `env UPDATE_EXPECT=1 cargo test -p hir_ty` to update the snapshots.
39
41
40
- fn setup_tracing ( ) -> tracing:: subscriber:: DefaultGuard {
41
- use tracing_subscriber:: { layer:: SubscriberExt , EnvFilter , Registry } ;
42
- use tracing_tree:: HierarchicalLayer ;
42
+ fn setup_tracing ( ) -> Option < tracing:: subscriber:: DefaultGuard > {
43
+ static ENABLE : RacyFlag = RacyFlag :: new ( ) ;
44
+ if !ENABLE . get ( || env:: var ( "CHALK_DEBUG" ) . is_ok ( ) ) {
45
+ return None ;
46
+ }
47
+
43
48
let filter = EnvFilter :: from_env ( "CHALK_DEBUG" ) ;
44
49
let layer = HierarchicalLayer :: default ( )
45
50
. with_indent_lines ( true )
46
51
. with_ansi ( false )
47
52
. with_indent_amount ( 2 )
48
53
. with_writer ( std:: io:: stderr) ;
49
54
let subscriber = Registry :: default ( ) . with ( filter) . with ( layer) ;
50
- tracing:: subscriber:: set_default ( subscriber)
55
+ Some ( tracing:: subscriber:: set_default ( subscriber) )
51
56
}
52
57
53
58
fn check_types ( ra_fixture : & str ) {
0 commit comments