Program: 130500
Project: 130500
Buggy source:
@Override public void invoke(@NotNull Project project,@NotNull Editor editor,@NotNull PsiFile file){
  final CSharpTypeDeclaration typeDeclaration=GenerateConstructorAction.findTypeDeclaration(editor,file);
  if (typeDeclaration == null) {
    return;
  }
  val pair=CSharpTypeDeclarationImplUtil.resolveBaseType(typeDeclaration,typeDeclaration);
  if (pair == null) {
    return;
  }
  final DotNetTypeDeclaration baseType=pair.getFirst();
  if (!(baseType instanceof CSharpTypeDeclaration)) {
    return;
  }
  MemberResolveScopeProcessor memberResolveScopeProcessor=new MemberResolveScopeProcessor(typeDeclaration.getResolveScope(),ResolveResult.EMPTY_ARRAY,new ExecuteTarget[]{ExecuteTarget.ELEMENT_GROUP});
  ResolveState resolveState=ResolveState.initial();
  resolveState=resolveState.put(CSharpResolveUtil.SELECTOR,StaticResolveSelectors.CONSTRUCTOR_GROUP);
  resolveState=resolveState.put(CSharpResolveUtil.EXTRACTOR,pair.getSecond());
  CSharpResolveUtil.walkChildren(memberResolveScopeProcessor,baseType,false,resolveState);
  PsiElement[] psiElements=memberResolveScopeProcessor.toPsiElements();
  List<ConstructorChooseMember> members=new ArrayList<ConstructorChooseMember>();
  for (  PsiElement psiElement : psiElements) {
    if (psiElement instanceof CSharpElementGroup) {
      for (      PsiElement element : ((CSharpElementGroup<?>)psiElement).getElements()) {
        members.add(new ConstructorChooseMember((DotNetConstructorDeclaration)element));
      }
    }
  }
  final ConstructorChooseMember[] map=ContainerUtil.toArray(members,ConstructorChooseMember.ARRAY_FACTORY);
  if (map.length == 1) {
    generateConstructor(typeDeclaration,editor,file,map[0]);
  }
 else {
    final MemberChooserBuilder<ConstructorChooseMember> builder=new MemberChooserBuilder<ConstructorChooseMember>(project);
    builder.setTitle("String_Node_Str");
    builder.allowMultiSelection(true);
    final MemberChooser<ConstructorChooseMember> memberChooser=builder.createBuilder(map);
    if (!memberChooser.showAndGet()) {
      return;
    }
    final List<ConstructorChooseMember> selectedElements=memberChooser.getSelectedElements();
    if (selectedElements == null) {
      return;
    }
    for (    ConstructorChooseMember selectedElement : selectedElements) {
      generateConstructor(typeDeclaration,editor,file,selectedElement);
    }
  }
}

Fixed version (ground truth):
@Override public void invoke(@NotNull Project project,@NotNull Editor editor,@NotNull PsiFile file){
  final CSharpTypeDeclaration typeDeclaration=GenerateConstructorAction.findTypeDeclaration(editor,file);
  if (typeDeclaration == null) {
    return;
  }
  val pair=CSharpTypeDeclarationImplUtil.resolveBaseType(typeDeclaration,typeDeclaration);
  if (pair == null) {
    return;
  }
  final DotNetTypeDeclaration baseType=pair.getFirst();
  if (!(baseType instanceof CSharpTypeDeclaration)) {
    return;
  }
  MemberResolveScopeProcessor memberResolveScopeProcessor=new MemberResolveScopeProcessor(typeDeclaration.getResolveScope(),ResolveResult.EMPTY_ARRAY,new ExecuteTarget[]{ExecuteTarget.ELEMENT_GROUP});
  ResolveState resolveState=ResolveState.initial();
  resolveState=resolveState.put(CSharpResolveUtil.SELECTOR,StaticResolveSelectors.CONSTRUCTOR_GROUP);
  resolveState=resolveState.put(CSharpResolveUtil.EXTRACTOR,pair.getSecond());
  CSharpResolveUtil.walkChildren(memberResolveScopeProcessor,baseType,false,false,resolveState);
  PsiElement[] psiElements=memberResolveScopeProcessor.toPsiElements();
  List<ConstructorChooseMember> members=new ArrayList<ConstructorChooseMember>();
  for (  PsiElement psiElement : psiElements) {
    if (psiElement instanceof CSharpElementGroup) {
      for (      PsiElement element : ((CSharpElementGroup<?>)psiElement).getElements()) {
        members.add(new ConstructorChooseMember((DotNetConstructorDeclaration)element));
      }
    }
  }
  final ConstructorChooseMember[] map=ContainerUtil.toArray(members,ConstructorChooseMember.ARRAY_FACTORY);
  if (map.length == 1) {
    generateConstructor(typeDeclaration,editor,file,map[0]);
  }
 else {
    final MemberChooserBuilder<ConstructorChooseMember> builder=new MemberChooserBuilder<ConstructorChooseMember>(project);
    builder.setTitle("String_Node_Str");
    builder.allowMultiSelection(true);
    final MemberChooser<ConstructorChooseMember> memberChooser=builder.createBuilder(map);
    if (!memberChooser.showAndGet()) {
      return;
    }
    final List<ConstructorChooseMember> selectedElements=memberChooser.getSelectedElements();
    if (selectedElements == null) {
      return;
    }
    for (    ConstructorChooseMember selectedElement : selectedElements) {
      generateConstructor(typeDeclaration,editor,file,selectedElement);
    }
  }
}