File tree Expand file tree Collapse file tree 3 files changed +23
-2
lines changed 
src/dotty/tools/dotc/reporting Expand file tree Collapse file tree 3 files changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -50,12 +50,18 @@ trait Reporting { this: Context =>
5050
5151  def  reportWarning (warning : Warning ):  Unit  = 
5252    if  (! this .settings.silentWarnings.value) {
53-       if  (this .settings.XfatalWarnings .value) reporter.report(warning.toError)
53+       if  (this .settings.XfatalWarnings .value)
54+         warning match  {
55+           case  warning : ConditionalWarning  if  ! warning.enablingOption.value => 
56+             reporter.report(warning) //  conditional warnings that are not enabled are not fatal
57+           case  _ => 
58+             reporter.report(warning.toError)
59+         }
5460      else  reporter.report(warning)
5561    }
5662
5763  def  deprecationWarning (msg : =>  Message , pos : SourcePosition  =  NoSourcePosition ):  Unit  = 
58-     if  ( this .settings.deprecation.value)  reportWarning(new  DeprecationWarning (msg, pos))
64+     reportWarning(new  DeprecationWarning (msg, pos))
5965
6066  def  migrationWarning (msg : =>  Message , pos : SourcePosition  =  NoSourcePosition ):  Unit  = 
6167    reportWarning(new  MigrationWarning (msg, pos))
Original file line number Diff line number Diff line change @@ -162,6 +162,7 @@ class CompilationTests extends ParallelTesting {
162162    compileFile(" tests/neg-custom-args/i3882.scala" + 
163163    compileFile(" tests/neg-custom-args/i4372.scala" + 
164164    compileFile(" tests/neg-custom-args/i1754.scala" + 
165+     compileFile(" tests/neg-custom-args/conditionalWarnings.scala" " -deprecation" " -Xfatal-warnings" + 
165166    compileFilesInDir(" tests/neg-custom-args/isInstanceOf" " -Xfatal-warnings" + 
166167    compileFile(" tests/neg-custom-args/i3627.scala" + 
167168    compileFile(" tests/neg-custom-args/matchtype-loop.scala" + 
Original file line number Diff line number Diff line change 1+ 
2+ //  run with -deprecation -Xfatal-warnings
3+ object  Test  {
4+   @ deprecated def  foo  =  ??? 
5+ 
6+   implied for  Conversion [String , Int ] =  _.length
7+ 
8+   foo    //  error
9+ 
10+   val  x :  Int  =  " abc" 
11+     //  OK, since -feature warnings are not enabled.
12+     //  The program compiles with final line
13+     //  there were 1 feature warning(s); re-run with -feature for details
14+ }
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments