private static List<TypeConstraint> addExpectedConstructorParameters(GrListOrMap list, GrExpression arg) {
    GroovyConstructorReference reference = list.getConstructorReference();
    if (reference == null) {
      return Collections.emptyList();
    }
    GrExpression[] args = list.getInitializers();
    List<TypeConstraint> result = new ArrayList<>();
    for (GroovyResolveResult constructorResult : reference.resolve(false)) {
      final Map<GrExpression, Pair<PsiParameter, PsiType>> map = GrClosureSignatureUtil.mapArgumentsToParameters(
        constructorResult, list, false, true, GrNamedArgument.EMPTY_ARRAY, args, GrClosableBlock.EMPTY_ARRAY
      );
      if (map == null) {
        continue;
      }
      final Pair<PsiParameter, PsiType> pair = map.get(arg);
      if (pair == null) {
        continue;
      }
      result.add(SubtypeConstraint.create(pair.second));
    }
    return result;
  }
private static List<TypeConstraint> addExpectedConstructorParameters(GrListOrMap list, GrExpression arg)