summaryrefslogtreecommitdiff
path: root/test/files/neg/t6895b.check
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-07-16 18:40:44 +0200
committerJason Zaugg <jzaugg@gmail.com>2015-06-23 08:43:54 +1000
commitf8d816086f56096c05dfc769aa1ab0f6e583bb5a (patch)
tree5ad9bacae9a00d06f1b4fc3c7419b1451c4863f6 /test/files/neg/t6895b.check
parent1531900bffb2bed6288eda4e0945b0e6dea3f23d (diff)
downloadscala-f8d816086f56096c05dfc769aa1ab0f6e583bb5a.tar.gz
scala-f8d816086f56096c05dfc769aa1ab0f6e583bb5a.tar.bz2
scala-f8d816086f56096c05dfc769aa1ab0f6e583bb5a.zip
SI-8777 Avoid redundant disambiguation in error messages
When printing types in error messages, we attempt to disambiguate symbol names by qualifying them in various ways. Type paramters symbols are qualified by adding `(in someMethod)`. However, the type errors generated by higher kinded subtyping can contain clones of type parameter symbols, as creater in `isPolySubType`. The disambiguation tries fruitlessly to distinguish them but ended up adding the same suffix to both names repeatedly. ``` found : [F[_]]Foo[[X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]Bar[F,X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]] required: Foo[[X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]Bar[[X]Or[String,X],X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]] ``` This commit limits the post qualification of type parameter symbols to a single attempt to limit the damage. An alternative might be to mark a clone (we could determine its status by checking whether it is a type parameter of its owner.) But I'm not sure how to present this information in a comphrenensible way, so for now I'm limiting my ambitions to stopping the stutter.
Diffstat (limited to 'test/files/neg/t6895b.check')
-rw-r--r--test/files/neg/t6895b.check4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/files/neg/t6895b.check b/test/files/neg/t6895b.check
index 3ebdb69309..565925127b 100644
--- a/test/files/neg/t6895b.check
+++ b/test/files/neg/t6895b.check
@@ -2,8 +2,8 @@ t6895b.scala:20: error: could not find implicit value for parameter e: Foo[[X]Ba
implicitly[Foo[({type L[X] = Bar[StringOr, X]})#L]]
^
t6895b.scala:23: error: polymorphic expression cannot be instantiated to expected type;
- found : [F[_]]Foo[[X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]Bar[F,X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]]
- required: Foo[[X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]Bar[[X]Or[String,X],X(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)(in type L)]]
+ found : [F[_]]Foo[[X(in type L)]Bar[F,X(in type L)]]
+ required: Foo[[X(in type L)]Bar[[X]Or[String,X],X(in type L)]]
barFoo(null) : Foo[({type L[X] = Bar[StringOr, X]})#L]
^
two errors found