ca52f554a1/org.scala-refactoring.library/src/test/scala/scala/tools/refactoring/tests/sourcegen/IndividualSourceGenTest.scala

28048e468f2f0a7b1479d2975df94b27e284e73eca52f554a13ca631512f929d8a0e10ab0cb65831
117
}
117
}
118
"""
118
"""
119
    val ast = treeFrom(src)    
119
    val ast = treeFrom(src)    
120
    val defdef = mkDefDef(name = "member", body = List(Ident("()")))
120
    val defdef = mkDefDef(name = "member", body = List(Ident(newTermName("()"))))
121
    
121
    
122
    val transformedAst = topdown {
122
    val transformedAst = topdown {
123
      matchingChildren {
123
      matchingChildren {
...
...
151
"""
151
"""
152
    val ast = treeFrom(src)
152
    val ast = treeFrom(src)
153
    
153
    
154
    val defdef = mkDefDef(name = "member", body = List(Ident("()")))
154
    val defdef = mkDefDef(name = "member", body = List(Ident(newTermName("()"))))
155
    
155
    
156
    val transformedAst = topdown {
156
    val transformedAst = topdown {
157
      matchingChildren {
157
      matchingChildren {
...
...
245
            val newRhs = Block(
245
            val newRhs = Block(
246
              mkClass(
246
              mkClass(
247
                name = "$anon", 
247
                name = "$anon", 
248
                parents = Ident("A") :: Ident("B") :: Nil,
248
                parents = Ident(newTermName("A")) :: Ident(newTermName("B")) :: Nil,
249
                superArgs = Literal(Constant(5)) :: Nil
249
                superArgs = Literal(Constant(5)) :: Nil
250
              ), 
250
              ), 
251
              Apply(Select(New(Ident("$anon")), nme.CONSTRUCTOR), Nil)
251
              Apply(Select(New(Ident(newTermName("$anon"))), nme.CONSTRUCTOR), Nil)
252
            )
252
            )
253
            
253
            
254
            t.copy(rhs = newRhs)
254
            t.copy(rhs = newRhs)
...
...
288
      case _ => Assert.fail(); Predef.error("") // too bad fail does not return Nothing
288
      case _ => Assert.fail(); Predef.error("") // too bad fail does not return Nothing
289
    }
289
    }
290
    
290
    
291
    val newRHS1 = Apply(Select(Ident("com"),"synchronized"), List(shallowDuplicate(originalDefDef.rhs) setPos NoPosition))
291
    val newRHS1 = Apply(Select(Ident(newTermName("com")),newTermName("synchronized")), List(shallowDuplicate(originalDefDef.rhs) setPos NoPosition))
292
    
292
    
293
    val newDefDef1 = originalDefDef copy (rhs = newRHS1) setPos originalDefDef.pos
293
    val newDefDef1 = originalDefDef copy (rhs = newRHS1) setPos originalDefDef.pos
294
        
294
        
...
...
297
    assertEquals("""
297
    assertEquals("""
298
       def amethod(v: Int, a: Account): Unit = com.synchronized(a.add(v))""", createFragment(removeAuxiliaryTrees apply newDefDef1 get).asText)
298
       def amethod(v: Int, a: Account): Unit = com.synchronized(a.add(v))""", createFragment(removeAuxiliaryTrees apply newDefDef1 get).asText)
299
   
299
   
300
    val newRHS2 = Apply(Select(Ident("com"),"synchronized"), List(originalDefDef.rhs))
300
    val newRHS2 = Apply(Select(Ident(newTermName("com")), newTermName("synchronized")), List(originalDefDef.rhs))
301
    
301
    
302
    val newDefDef2 = originalDefDef copy (rhs = newRHS2) setPos originalDefDef.pos
302
    val newDefDef2 = originalDefDef copy (rhs = newRHS2) setPos originalDefDef.pos
303
        
303
        
...
...
341
      case _ => Assert.fail(); Predef.error("") // too bad fail does not return Nothing
341
      case _ => Assert.fail(); Predef.error("") // too bad fail does not return Nothing
342
    }
342
    }
343
    
343
    
344
    val newRHS1 = new Block(List(Apply(Select(Ident("com"),"synchronized"), List(originalDefDef.rhs))), EmptyTree)
344
    val newRHS1 = new Block(List(Apply(Select(Ident(newTermName("com")),newTermName("synchronized")), List(originalDefDef.rhs))), EmptyTree)
345
    
345
    
346
    val newDefDef1 = originalDefDef copy (rhs = newRHS1) setPos originalDefDef.pos
346
    val newDefDef1 = originalDefDef copy (rhs = newRHS1) setPos originalDefDef.pos
347
    
347
    
...
...
896
        transform {
896
        transform {
897
          case a: Apply if (a.args.length > 1) =>
897
          case a: Apply if (a.args.length > 1) =>
898
            val fun1 = Select(
898
            val fun1 = Select(
899
              name = a.fun.symbol.nameString,
899
              name = newTermName(a.fun.symbol.nameString),
900
              qualifier = a.args.last)
900
              qualifier = a.args.last)
901
            a.copy(args = a.args.init, fun = fun1) replaces a
901
            a.copy(args = a.args.init, fun = fun1) replaces a
902
        }
902
        }
...
...
941
        transform {
941
        transform {
942
          case a: Apply if (a.args.length > 1) =>
942
          case a: Apply if (a.args.length > 1) =>
943
            val fun1 = Select(
943
            val fun1 = Select(
944
              name = a.fun.symbol.nameString,
944
              name = newTermName(a.fun.symbol.nameString),
945
              qualifier = a.args.last)
945
              qualifier = a.args.last)
946
            a.copy(args = a.args.init, fun = fun1) replaces a
946
            a.copy(args = a.args.init, fun = fun1) replaces a
947
        }
947
        }
...
...
1089
            val arg = buf(1)
1089
            val arg = buf(1)
1090
            buf.remove(1)
1090
            buf.remove(1)
1091
            val fun1 = Select(
1091
            val fun1 = Select(
1092
              name = a.fun.symbol.nameString,
1092
              name = newTermName(a.fun.symbol.nameString),
1093
              qualifier = arg)
1093
              qualifier = arg)
1094
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1094
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1095
        }
1095
        }
...
...
1413
            val arg = buf(1)
1413
            val arg = buf(1)
1414
            buf.remove(1)
1414
            buf.remove(1)
1415
            val fun1 = Select(
1415
            val fun1 = Select(
1416
              name = a.fun.symbol.nameString,
1416
              name = newTermName(a.fun.symbol.nameString),
1417
              qualifier = arg)
1417
              qualifier = arg)
1418
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1418
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1419
        }
1419
        }
...
...
1449
            val arg = buf(1)
1449
            val arg = buf(1)
1450
            buf.remove(1)
1450
            buf.remove(1)
1451
            val fun1 = Select(
1451
            val fun1 = Select(
1452
              name = a.fun.symbol.nameString,
1452
              name = newTermName(a.fun.symbol.nameString),
1453
              qualifier = arg)
1453
              qualifier = arg)
1454
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1454
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1455
        case a: Function =>
1455
        case a: Function =>
...
...
1496
      .impl.body(2).asInstanceOf[DefDef]
1496
      .impl.body(2).asInstanceOf[DefDef]
1497
    
1497
    
1498
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1498
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1499
      CaseDef(Bind("t",
1499
      CaseDef(Bind(newTermName("t"),
1500
        if (className != "") Typed(Ident(""), Ident(className))
1500
        if (className != "") Typed(Ident(newTermName("")), Ident(newTermName(className)))
1501
        else EmptyTree),
1501
        else EmptyTree),
1502
        guard, rhs)
1502
        guard, rhs)
1503
    }
1503
    }
...
...
1555
      .impl.body(4).asInstanceOf[DefDef]
1555
      .impl.body(4).asInstanceOf[DefDef]
1556
1556
1557
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1557
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1558
      CaseDef(Bind("t",
1558
      CaseDef(Bind(newTermName("t"),
1559
        if (className != "") Typed(Ident(""), Ident(className))
1559
        if (className != "") Typed(Ident(newTermName("")), Ident(newTermName(className)))
1560
        else EmptyTree),
1560
        else EmptyTree),
1561
        guard, rhs)
1561
        guard, rhs)
1562
    }
1562
    }
...
...
1567
          case t: DefDef if(t.name.toString() == "acmatch_expr")=>
1567
          case t: DefDef if(t.name.toString() == "acmatch_expr")=>
1568
            val rhs = toInline.rhs.asInstanceOf[If]
1568
            val rhs = toInline.rhs.asInstanceOf[If]
1569
            val caseDef = mkPattern("", "ASD", EmptyTree, rhs.copy())
1569
            val caseDef = mkPattern("", "ASD", EmptyTree, rhs.copy())
1570
            val matchx = Match(Ident("x"), List(caseDef))
1570
            val matchx = Match(Ident(newTermName("x")), List(caseDef))
1571
            t.copy(rhs = matchx) replaces t
1571
            t.copy(rhs = matchx) replaces t
1572
        }
1572
        }
1573
      }
1573
      }
...
...
1633
      .impl.body(3).asInstanceOf[DefDef]
1633
      .impl.body(3).asInstanceOf[DefDef]
1634
1634
1635
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1635
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1636
      CaseDef(Bind("t",
1636
      CaseDef(Bind(newTermName("t"),
1637
        if (className != "") Typed(Ident(""), Ident(className))
1637
        if (className != "") Typed(Ident(newTermName("")), Ident(newTermName(className)))
1638
        else EmptyTree),
1638
        else EmptyTree),
1639
        guard, rhs)
1639
        guard, rhs)
1640
    }
1640
    }
...
...
1645
          case t: DefDef if (t.name.toString() == "subst_expr") =>
1645
          case t: DefDef if (t.name.toString() == "subst_expr") =>
1646
            val rhs = toInline.rhs.asInstanceOf[Apply]
1646
            val rhs = toInline.rhs.asInstanceOf[Apply]
1647
            val caseDef = mkPattern("", "Until", EmptyTree, rhs.copy())
1647
            val caseDef = mkPattern("", "Until", EmptyTree, rhs.copy())
1648
            val matchx = Match(Ident("obj"), List(caseDef))
1648
            val matchx = Match(Ident(newTermName("obj")), List(caseDef))
1649
            t.copy(rhs = matchx) setPos t.pos
1649
            t.copy(rhs = matchx) setPos t.pos
1650
        }
1650
        }
1651
      }
1651
      }
...
...
1703
      .impl.body(3).asInstanceOf[DefDef]
1703
      .impl.body(3).asInstanceOf[DefDef]
1704
1704
1705
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1705
    def mkPattern(varName: String, className: String, guard: Tree, rhs: Tree): CaseDef = {
1706
      CaseDef(Bind("t",
1706
      CaseDef(Bind(newTermName("t"),
1707
        if (className != "") Typed(Ident(""), Ident(className))
1707
        if (className != "") Typed(Ident(newTermName("")), Ident(newTermName(className)))
1708
        else EmptyTree),
1708
        else EmptyTree),
1709
        guard, rhs)
1709
        guard, rhs)
1710
    }
1710
    }
...
...
1715
          case t: DefDef if (t.name.toString() == "subst_expr") =>
1715
          case t: DefDef if (t.name.toString() == "subst_expr") =>
1716
            val rhs = toInline.rhs.asInstanceOf[Function]
1716
            val rhs = toInline.rhs.asInstanceOf[Function]
1717
            val caseDef = mkPattern("", "Abstractionmv", EmptyTree, rhs.copy())
1717
            val caseDef = mkPattern("", "Abstractionmv", EmptyTree, rhs.copy())
1718
            val matchx = Match(Ident("obj"), List(caseDef))
1718
            val matchx = Match(Ident(newTermName("obj")), List(caseDef))
1719
            t.copy(rhs = matchx) setPos t.pos
1719
            t.copy(rhs = matchx) setPos t.pos
1720
        }
1720
        }
1721
      }
1721
      }
...
...
1768
            val arg = buf(0)
1768
            val arg = buf(0)
1769
            buf.remove(0)
1769
            buf.remove(0)
1770
            val fun1 = Select(
1770
            val fun1 = Select(
1771
              name = a.fun.symbol.nameString,
1771
              name = newTermName(a.fun.symbol.nameString),
1772
              qualifier = arg)
1772
              qualifier = arg)
1773
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1773
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1774
        }
1774
        }
...
...
1810
            val arg = buf(1)
1810
            val arg = buf(1)
1811
            buf.remove(1)
1811
            buf.remove(1)
1812
            val fun1 = Select(
1812
            val fun1 = Select(
1813
              name = a.fun.symbol.nameString,
1813
              name = newTermName(a.fun.symbol.nameString),
1814
              qualifier = arg)
1814
              qualifier = arg)
1815
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1815
            a.copy(args = buf.toList, fun = fun1) setPos a.pos
1816
        }
1816
        }