File tree Expand file tree Collapse file tree 2 files changed +8
-26
lines changed Expand file tree Collapse file tree 2 files changed +8
-26
lines changed Original file line number Diff line number Diff line change 11//  See https://github.com/lampepfl/dotty/issues/4060#issuecomment-445808377
2- import  scala .language .experimental .erasedDefinitions 
32
43object  App  {
54  trait  A  { type  L  >:  Any }
6-   // def upcast(a: A, x: Any): a.L = x
75  def  upcast (erased a : A )(x : Any ):  a.L  =  x
8-   // lazy val p: A { type L <: Nothing } = p
9-   erased val  p :  A  { type  L  <:  Nothing  } =  p //  error
6+   erased val  p :  A  { type  L  <:  Nothing  } =  p
107  def  coerce (x : Any ):  Int  =  upcast(p)(x) //  error
118
129  def  coerceInline (x : Any ):  Int  =  upcast(compiletime.erasedValue[A  {type  L  <:  Nothing }])(x) //  error
1310
11+   trait  B  { type  L  <:  Nothing  }
12+   def  upcast_dep_parameter (erased a : B )(x : a.L ) :  Int  =  x
13+   erased val  q  :  B  { type  L  >:  Any  } =  compiletime.erasedValue
14+ 
15+   def  coerceInlineWithB (x : Any ):  Int  =  upcast_dep_parameter(q)(x) //  error
16+ 
1417  def  main (args : Array [String ]):  Unit  =  {
1518    println(coerce(" Uh oh!"  ))
19+     println(coerceInlineWithB(" Uh oh!"  ))
1620  }
1721}
  Load Diff This file was deleted. 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments