@@ -563,7 +563,7 @@ class TreeUnpickler(reader: TastyReader,
563563 val rhsStart = currentAddr
564564 val rhsIsEmpty = nothingButMods(end)
565565 if (! rhsIsEmpty) skipTree()
566- val (givenFlags, annotFns, privateWithin) = readModifiers(end)
566+ val (givenFlags, annotFns, privateWithin) = readModifiers(end, name.isTypeName )
567567 pickling.println(i " creating symbol $name at $start with flags $givenFlags" )
568568 val flags = normalizeFlags(tag, givenFlags, name, isAbsType, rhsIsEmpty)
569569 def adjustIfModule (completer : LazyType ) =
@@ -623,7 +623,7 @@ class TreeUnpickler(reader: TastyReader,
623623 /** Read modifier list into triplet of flags, annotations and a privateWithin
624624 * boundary symbol.
625625 */
626- def readModifiers (end : Addr )(using Context ): (FlagSet , List [Symbol => Annotation ], Symbol ) = {
626+ def readModifiers (end : Addr , isType : Boolean )(using Context ): (FlagSet , List [Symbol => Annotation ], Symbol ) = {
627627 var flags : FlagSet = EmptyFlags
628628 var annotFns : List [Symbol => Annotation ] = Nil
629629 var privateWithin : Symbol = NoSymbol
@@ -667,7 +667,7 @@ class TreeUnpickler(reader: TastyReader,
667667 case HASDEFAULT => addFlag(HasDefault )
668668 case STABLE => addFlag(StableRealizable )
669669 case EXTENSION => addFlag(Extension )
670- case GIVEN => addFlag(Given )
670+ case GIVEN => addFlag(if isType then GivenClass else Given )
671671 case PARAMsetter => addFlag(ParamAccessor )
672672 case PARAMalias => addFlag(SuperParamAlias )
673673 case EXPORTED => addFlag(Exported )
@@ -1226,7 +1226,7 @@ class TreeUnpickler(reader: TastyReader,
12261226 readName()
12271227 readType()
12281228 val body = readTerm()
1229- val (givenFlags, _, _) = readModifiers(end)
1229+ val (givenFlags, _, _) = readModifiers(end, sym.isType )
12301230 sym.setFlag(givenFlags)
12311231 Bind (sym, body)
12321232 case ALTERNATIVE =>
0 commit comments