diff options
author | Paul Phillips <paulp@improving.org> | 2012-01-29 13:47:17 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-01-29 13:47:17 -0800 |
commit | 818afc61dd508d601369e7a881eb0d2b97e07b77 (patch) | |
tree | a61b66ffb541806b44daac803e5fdb8de6ae7dc2 /test/files/neg | |
parent | 4ab88fbe3ecc5d84a0dec2d8acfbb1687bdd5bd5 (diff) | |
download | scala-818afc61dd508d601369e7a881eb0d2b97e07b77.tar.gz scala-818afc61dd508d601369e7a881eb0d2b97e07b77.tar.bz2 scala-818afc61dd508d601369e7a881eb0d2b97e07b77.zip |
Test case closes SI-4515.
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 |