@@ -5,7 +5,7 @@ package ast
55import core ._
66import util .Spans ._ , Types ._ , Contexts ._ , Constants ._ , Names ._ , NameOps ._ , Flags ._
77import Symbols ._ , StdNames ._ , Trees ._
8- import Decorators ._ , transform .SymUtils ._
8+ import Decorators .{ given _ } , transform .SymUtils ._
99import NameKinds .{UniqueName , EvidenceParamName , DefaultGetterName }
1010import typer .{FrontEnd , Namer }
1111import util .{Property , SourceFile , SourcePosition }
@@ -501,16 +501,11 @@ object desugar {
501501
502502 // Annotations are dropped from the constructor parameters but should be
503503 // preserved in all derived parameters.
504- val derivedTparams = {
505- val impliedTparamsIt = impliedTparams.iterator
506- constrTparams.map(tparam => derivedTypeParam(tparam)
507- .withAnnotations(impliedTparamsIt.next().mods.annotations))
508- }
509- val derivedVparamss = {
510- val constrVparamsIt = constrVparamss.iterator.flatten
511- constrVparamss.nestedMap(vparam => derivedTermParam(vparam)
512- .withAnnotations(constrVparamsIt.next().mods.annotations))
513- }
504+ val derivedTparams =
505+ constrTparams.zipWithConserve(impliedTparams)((tparam, impliedParam) =>
506+ derivedTypeParam(tparam).withAnnotations(impliedParam.mods.annotations))
507+ val derivedVparamss =
508+ constrVparamss.nestedMap(vparam => derivedTermParam(vparam))
514509
515510 val arity = constrVparamss.head.length
516511
0 commit comments