diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-10-21 18:33:45 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-10-21 18:33:45 +0000 |
commit | 247895b5e023bf6038988f7da485495012e66b9b (patch) | |
tree | 53a2658a5aaeabfd389cbf8ccccada67db0e78da /test/files/neg | |
parent | 2ae67db5557f512e2c8e1e4f5fd8205b1e0f324c (diff) | |
download | scala-247895b5e023bf6038988f7da485495012e66b9b.tar.gz scala-247895b5e023bf6038988f7da485495012e66b9b.tar.bz2 scala-247895b5e023bf6038988f7da485495012e66b9b.zip |
refactoring of TypeVar to set the stage for tcp...
refactoring of TypeVar to set the stage for tcpoly inference (also
touched UndoLog, isHigherKinded logic in TypeRef) added <:< implicit,
should bootstrap
selection from squashed commit messages:
commented out stuff so that this can be used to bootstrap and build a new starr
merged/cherry picked refactorings unrelated to #2261
(undoLog, cloneInternal, NoImplicitInfo)
made conforms implicit, identity explicit
replaced the implicit `identity` coercion by `conforms`, which can be used to encode generalised constraints
the introduction of `conforms` revealed a bug in adaptToMember, which was inferring views while already inferring one, which gave rise to diverging implicits. Predef.identity is no longer special as far as the compiler is concerned.
cleaned up isHigherKinded logic in TypeRef, and implemented it in TypeVar along with normalize
added <:< to Predef: use as evidence for encoding generalized constraints
(BTW: extractUndetparams clears undetparams: don't use in debug output -- I learned the hard way...)
added todo about ticket 2066 -- branching from master to explicitkinds for fix
refactoring: moved bounds tracking logic to TypeVar
introduced typeConstructor in Type because we can't use appliedType(tp, List())) to strip a type's type arguments (appliedType is a no-op for empty args) -- don't want to pattern match on type either
removed unused overrides in TypeVar (TODO double check)
making appliedType more robust since it is now used more liberally -- neg/t0226 should no longer fail now
merged in appliedType refactoring and added TypeVar logic to appliedType
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/viewtest.check | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/test/files/neg/viewtest.check b/test/files/neg/viewtest.check index a93f803fe2..21ed93a01c 100644 --- a/test/files/neg/viewtest.check +++ b/test/files/neg/viewtest.check @@ -3,10 +3,4 @@ viewtest.scala:43: error: type mismatch; required: List[a(in method view3)] case y1: List[a] => compareLists(x, y1) ^ -viewtest.scala:104: error: ambiguous implicit values: - both method view4 in object O of type [a](x: a)a - and method identity in object Predef of type [A](x: A)A - match expected type (test.Str) => test.Ordered[test.Str] - t = t insert Str(s) - ^ -two errors found +one error found |