summaryrefslogtreecommitdiff
path: root/test/files/neg/t2148.check
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-11-24 22:32:17 +0100
committerEugene Burmako <xeno.by@gmail.com>2012-12-06 23:17:26 +0100
commit40063b0009d55ed527bf1625d99a168a8faa4124 (patch)
treeb25bc2d1c7502d3eac1ef3d66bd84c05ae819a84 /test/files/neg/t2148.check
parent85f320258cbd68c4235cf0cdf2fede9ab6e88c8b (diff)
downloadscala-40063b0009d55ed527bf1625d99a168a8faa4124.tar.gz
scala-40063b0009d55ed527bf1625d99a168a8faa4124.tar.bz2
scala-40063b0009d55ed527bf1625d99a168a8faa4124.zip
refactors handling of parent types
At the moment parser does too much w.r.t handling of parent types. It checks whether a parent can have value arguments or not and more importantly, it synthesizes constructors and super calls. This approach is fundamentally incompatible with upcoming type macros. Take for example the following two snippets of code: `class C extends A(2)` `class D extends A(2) with B(3)` In the first snippet, `A` might be a type macro, therefore the super call `A.super(2)` eagerly emitted by the parser might be meaningless. In the second snippet parser will report an error despite that `B` might be a type macro which expands into a trait. Unfortunately we cannot simply augment the parser with the `isTypeMacro` check. This is because to find out whether an identifier refers to a type macro, one needs to perform a typecheck, which the parser cannot do. Therefore we need a deep change in how parent types and constructors are processed by the compiler, which is implemented in this commit.
Diffstat (limited to 'test/files/neg/t2148.check')
-rw-r--r--test/files/neg/t2148.check2
1 files changed, 1 insertions, 1 deletions
diff --git a/test/files/neg/t2148.check b/test/files/neg/t2148.check
index 5113b48e51..27b5dce507 100644
--- a/test/files/neg/t2148.check
+++ b/test/files/neg/t2148.check
@@ -1,4 +1,4 @@
-t2148.scala:9: error: type A is not a stable prefix
+t2148.scala:9: error: A is not a legal prefix for a constructor
val b = new A with A#A1
^
one error found