~ubuntu-branches/debian/sid/scala/sid

« back to all changes in this revision

Viewing changes to src/reflect/scala/reflect/internal/BuildUtils.scala

  • Committer: Package Import Robot
  • Author(s): Emmanuel Bourg, Mehdi Dogguy, Lucas Satabin, Frank S. Thomas, Emmanuel Bourg
  • Date: 2015-06-05 23:52:59 UTC
  • mfrom: (1.2.11)
  • Revision ID: package-import@ubuntu.com-20150605235259-wk00vgk83dh8o19g
Tags: 2.10.5-1
* Team upload.

[ Mehdi Dogguy ]
* New upstream release (Closes: #744278).

[ Lucas Satabin ]
* Update patches
* Update the clean target
* Update paths of elements to install
* Update watch file

[ Frank S. Thomas ]
* Remove myself from Uploaders.

[ Emmanuel Bourg ]
* The package has been adopted by the Java Team (Closes: #754935)
* Patched the build to avoid downloading libraries from the Internet
* Replaced the minified JavaScript files with unobfuscated ones
* No longer build scala-partest.jar until diffutils is packaged or replaced
* debian/watch: Fixed the versions matched (x.y.z instead of x.y.z..z)
* debian/rules:
  - Added the missing get-orig-source target (Closes: #724704)
  - Improved the clean target
* debian/control:
  - Build depend on scala (>= 2.10) and bnd
  - Use canonical URLs for the Vcs-* fields
  - Standards-Version updated to 3.9.6 (no changes)
* Switch to debhelper level 9

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package scala.reflect
 
2
package internal
 
3
 
 
4
import Flags._
 
5
 
 
6
trait BuildUtils { self: SymbolTable =>
 
7
 
 
8
  class BuildImpl extends BuildApi {
 
9
 
 
10
    def selectType(owner: Symbol, name: String): TypeSymbol =
 
11
      select(owner, newTypeName(name)).asType
 
12
 
 
13
    def selectTerm(owner: Symbol, name: String): TermSymbol = {
 
14
      val result = select(owner, newTermName(name)).asTerm
 
15
      if (result.isOverloaded) result.suchThat(!_.isMethod).asTerm
 
16
      else result
 
17
    }
 
18
 
 
19
    private def select(owner: Symbol, name: Name): Symbol = {
 
20
      val result = owner.info decl name
 
21
      if (result ne NoSymbol) result
 
22
      else
 
23
        mirrorThatLoaded(owner).missingHook(owner, name) orElse
 
24
        MissingRequirementError.notFound("%s %s in %s".format(if (name.isTermName) "term" else "type", name, owner.fullName))
 
25
    }
 
26
 
 
27
    def selectOverloadedMethod(owner: Symbol, name: String, index: Int): MethodSymbol = {
 
28
      val result = owner.info.decl(newTermName(name)).alternatives(index)
 
29
      if (result ne NoSymbol) result.asMethod
 
30
      else MissingRequirementError.notFound("overloaded method %s #%d in %s".format(name, index, owner.fullName))
 
31
    }
 
32
 
 
33
    def newFreeTerm(name: String, value: => Any, flags: Long = 0L, origin: String = null): FreeTermSymbol =
 
34
      newFreeTermSymbol(newTermName(name), value, flags, origin)
 
35
 
 
36
    def newFreeType(name: String, flags: Long = 0L, origin: String = null): FreeTypeSymbol =
 
37
      newFreeTypeSymbol(newTypeName(name), flags, origin)
 
38
 
 
39
    def newNestedSymbol(owner: Symbol, name: Name, pos: Position, flags: Long, isClass: Boolean): Symbol =
 
40
      owner.newNestedSymbol(name, pos, flags, isClass)
 
41
 
 
42
    def setAnnotations[S <: Symbol](sym: S, annots: List[AnnotationInfo]): S =
 
43
      sym.setAnnotations(annots)
 
44
 
 
45
    def setTypeSignature[S <: Symbol](sym: S, tpe: Type): S =
 
46
      sym.setTypeSignature(tpe)
 
47
 
 
48
    def flagsFromBits(bits: Long): FlagSet = bits
 
49
 
 
50
    def emptyValDef: ValDef = self.emptyValDef
 
51
 
 
52
    def This(sym: Symbol): Tree = self.This(sym)
 
53
 
 
54
    def Select(qualifier: Tree, sym: Symbol): Select = self.Select(qualifier, sym)
 
55
 
 
56
    def Ident(sym: Symbol): Ident = self.Ident(sym)
 
57
 
 
58
    def TypeTree(tp: Type): TypeTree = self.TypeTree(tp)
 
59
 
 
60
    def thisPrefix(sym: Symbol): Type = sym.thisPrefix
 
61
 
 
62
    def setType[T <: Tree](tree: T, tpe: Type): T = { tree.setType(tpe); tree }
 
63
 
 
64
    def setSymbol[T <: Tree](tree: T, sym: Symbol): T = { tree.setSymbol(sym); tree }
 
65
  }
 
66
 
 
67
  val build: BuildApi = new BuildImpl
 
68
}