From e15c605b506fc3683f2ab6140c0743233fcddca0 Mon Sep 17 00:00:00 2001 From: Liu Fengyun Date: Mon, 9 Mar 2020 13:24:04 +0100 Subject: [PATCH] Fix #8357: add test --- tests/pos/i8357.scala | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/pos/i8357.scala diff --git a/tests/pos/i8357.scala b/tests/pos/i8357.scala new file mode 100644 index 000000000000..475062c037c0 --- /dev/null +++ b/tests/pos/i8357.scala @@ -0,0 +1,30 @@ +trait FieldInfo { + val fieldType: ALL_TYPE +} + +opaque type TypeSymbol = String + +trait ConcreteType { + val name: String + val typeParameters: List[TypeSymbol] + val isUnion: Boolean = false +} + +trait UnionContainer { + val hasUnion: Boolean +} + +type ALL_TYPE = ConcreteType | TypeSymbol + +case class StaticUnionInfo(name: String, typeParameters: List[TypeSymbol]) extends ConcreteType +case class AliasInfo(name: String, typeParameters: List[TypeSymbol]) extends ConcreteType + +object UnionKind { + def unapply(f: FieldInfo): Boolean = + f.fieldType match { + case _: StaticUnionInfo => true + case t: AliasInfo if t.isUnion => true + case t: UnionContainer if t.hasUnion => true // this line here causes crash + case _ => false + } +} \ No newline at end of file