diff options
Diffstat (limited to 'sources/scalac/typechecker/RefCheck.java')
-rw-r--r-- | sources/scalac/typechecker/RefCheck.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sources/scalac/typechecker/RefCheck.java b/sources/scalac/typechecker/RefCheck.java index f65485a33a..a96a21fd0a 100644 --- a/sources/scalac/typechecker/RefCheck.java +++ b/sources/scalac/typechecker/RefCheck.java @@ -648,7 +648,12 @@ public class RefCheck extends Transformer implements Modifiers, Kinds { } private Tree[] caseFields(ClassSymbol clazz) { - Symbol[] vparams = clazz.primaryConstructor().type().firstParams(); + Type ct = clazz.primaryConstructor().type(); + switch (ct) { + case Type.PolyType(Symbol[] tparams, Type restp): + ct = infer.skipViewParams(tparams, restp); + } + Symbol[] vparams = ct.firstParams(); Tree[] fields = new Tree[vparams.length]; for (int i = 0; i < fields.length; i++) { fields[i] = gen.mkRef(clazz.pos, clazz.thisType(), clazz.caseFieldAccessor(i)); |