aboutsummaryrefslogtreecommitdiff
path: root/test/x
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-06-19 04:45:24 +0200
committerMartin Odersky <odersky@gmail.com>2013-06-19 04:48:11 +0200
commitb2dcc777e5a6a1e6d1fff89c7fa794129ad5d135 (patch)
tree2bac3a26ea6f7d62d713206687ba631c3c1cfad5 /test/x
parent928a2a99288c3aa425654e63aea5ddc70359d4ac (diff)
downloaddotty-b2dcc777e5a6a1e6d1fff89c7fa794129ad5d135.tar.gz
dotty-b2dcc777e5a6a1e6d1fff89c7fa794129ad5d135.tar.bz2
dotty-b2dcc777e5a6a1e6d1fff89c7fa794129ad5d135.zip
Taking accessibility into account for &, |
Changed the algorithm for & (and also |) to take accessibility into account. Fixed various problems that opened up when doing this. Under -debug, new and old behavior of & are checked side-by-side and any discrepancy is noted.
Diffstat (limited to 'test/x')
-rw-r--r--test/x/cakes.scala49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/x/cakes.scala b/test/x/cakes.scala
new file mode 100644
index 000000000..ff5e5d64f
--- /dev/null
+++ b/test/x/cakes.scala
@@ -0,0 +1,49 @@
+package test
+
+trait API {
+
+ type Name >: Null <: NameAPI
+ type Symbol >: Null <: SymbolAPI
+ type ScopeEntry >: Null <: ScopeEntryAPI
+
+ class NameAPI
+ class SymbolAPI
+ class ScopeEntryAPI
+
+}
+
+trait Names { self: SymTab =>
+
+ class Name extends NameAPI
+
+}
+
+trait Symbols { self: SymTab =>
+
+ class Symbol extends SymbolAPI
+
+}
+
+trait Scopes { self: SymTab =>
+
+ class ScopeEntry extends ScopeEntryAPI
+ class Scope {
+ def unlink(e: ScopeEntry): Unit = ???
+ def unlink(e: Symbol): Unit = ???
+ }
+
+}
+
+trait SymTab extends API with Names with Scopes {
+
+}
+
+
+trait SyncOps extends SymTab {
+
+ trait SyncScope extends Scope {
+ override def unlink(e: ScopeEntry): Unit = ???
+ override def unlink(e: Symbol): Unit = ???
+ }
+
+}