diff options
author | Paul Phillips <paulp@improving.org> | 2012-01-30 07:59:35 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-01-30 08:00:57 -0800 |
commit | 66b0e759258ff1185def1689bd0a1b67105922bf (patch) | |
tree | 8ac70da8805309eb4d0493b8bc8d5c97a9c71a22 /test/files/neg | |
parent | 6eb066dade3f6541fb33a0b325c67ca98aa413ad (diff) | |
parent | 5e9dd4a05c25f463f29d0fbc2f1bec194bf7700b (diff) | |
download | scala-66b0e759258ff1185def1689bd0a1b67105922bf.tar.gz scala-66b0e759258ff1185def1689bd0a1b67105922bf.tar.bz2 scala-66b0e759258ff1185def1689bd0a1b67105922bf.zip |
Merge branch 'master' into inline
Conflicts:
src/compiler/scala/reflect/internal/Definitions.scala
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/t4515.check | 6 | ||||
-rw-r--r-- | test/files/neg/t4515.scala | 41 |
2 files changed, 47 insertions, 0 deletions
diff --git a/test/files/neg/t4515.check b/test/files/neg/t4515.check new file mode 100644 index 0000000000..ce5350b35f --- /dev/null +++ b/test/files/neg/t4515.check @@ -0,0 +1,6 @@ +t4515.scala:37: error: type mismatch; + found : _0(in value $anonfun) where type _0(in value $anonfun) + required: (some other)_0(in value $anonfun) where type +(some other)_0(in value $anonfun) + handler.onEvent(target, ctx.getEvent, node, ctx) + ^ +one error found diff --git a/test/files/neg/t4515.scala b/test/files/neg/t4515.scala new file mode 100644 index 0000000000..63049f201d --- /dev/null +++ b/test/files/neg/t4515.scala @@ -0,0 +1,41 @@ +import scala.collection.mutable.HashMap + +object Main { + trait Target { } + + trait PushEventContext[EventType] { + def getEvent: EventType + } + trait PushNode[EventType] { } + trait DerivedPushNode[EventType] extends PushNode[EventType] { } + + trait HandlerBase[EventType] { + def onEvent(target: Target, + event: EventType, + node: PushNode[EventType], + ctx: PushEventContext[EventType]): Unit + } + val handlers = new HashMap[DerivedPushNode[_], HandlerBase[_]] + + object TimerPushService { + private val INSTANCE: TimerPushService = new TimerPushService + def get: TimerPushService = INSTANCE + } + + class TimerPushService { + def add[EventType](node: DerivedPushNode[EventType], + context: PushEventContext[EventType]): Unit = {} + + def pollEvents[EventType](node: DerivedPushNode[EventType]): List[PushEventContext[EventType]] = + Nil + } + + def onTimer(target: Target) { + val pushService = TimerPushService.get + for ((node, handler) <- handlers) { + for (ctx <- pushService.pollEvents(node)) { + handler.onEvent(target, ctx.getEvent, node, ctx) + } + } + } +}
\ No newline at end of file |