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

« back to all changes in this revision

Viewing changes to test/files/neg/t5578.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
trait Base {
 
2
  type Rep[T]
 
3
}
 
4
 
 
5
trait Expressions {
 
6
  // constants/symbols (atomic)
 
7
  abstract class Exp[T]
 
8
  // ...
 
9
  case class Sym[T](n: Int) extends Exp[T]
 
10
 
 
11
  // operations (composite, defined in subtraits)
 
12
  abstract class Def[T]
 
13
 
 
14
  // additional members for managing encountered definitions
 
15
  def findOrCreateDefinition[T](rhs: Def[T]): Sym[T]
 
16
  implicit def toExp[T:Manifest](d: Def[T]): Exp[T] = findOrCreateDefinition(d)
 
17
}
 
18
 
 
19
trait BaseExp extends Base with Expressions {
 
20
  type Rep[T] = Exp[T]
 
21
 
 
22
  def findOrCreateDefinition[T](rhs: Def[T]): Sym[T] = null // stub
 
23
}
 
24
 
 
25
trait NumericOps extends Base {
 
26
  def plus[T](x: Rep[T], y: Rep[T]): Rep[T]
 
27
}
 
28
 
 
29
trait NumericOpsExp extends BaseExp {
 
30
  case class Plus[T:Numeric](x: Rep[T], y: Rep[T])
 
31
    extends Def[T]
 
32
 
 
33
  def plus[T: Numeric](x: Rep[T], y: Rep[T]): Rep[T] = Plus[T](x,y)
 
34
 
 
35
  // Possible solutions:
 
36
// def plus[T: Numeric: Manifest](x: Rep[T], y: Rep[T]): Rep[T] = Plus[T](x, y)
 
37
// def plus[T](x: Rep[T], y: Rep[T])(implicit num: Numeric[T], man: Manifest[T]): Rep[T] = Plus(x,y)
 
38
 
 
39
}