private void defineNestedInterface(TypeBuilder declaringClass, InterfaceDeclarationNode interfaceDeclaration) {
     var shortName = context.getIdentifier(interfaceDeclaration.NameOffset, interfaceDeclaration.NameLength);
     var className = declaringClass.FullName + '$' + shortName;
     TypeBuilder typeBuilder = null;
     if (interfaceDeclaration.IsPartial) {
         var partialTypeInfo = this.partialTypes[className];
         if (partialTypeInfo != null) {
             setNestedInterfaceModifiers(interfaceDeclaration, partialTypeInfo.typeBuilder);
             typeBuilder = partialTypeInfo.typeBuilder;
         }
     }
     if (typeBuilder == null) {
         typeBuilder = defineNestedType(declaringClass, className, shortName, interfaceDeclaration);
         setNestedInterfaceModifiers(interfaceDeclaration, typeBuilder);
         if (interfaceDeclaration.IsPartial) {
             this.partialTypes[className] = new PartialTypeInfo(typeBuilder);
         }
     }
     setTypeParameters(typeBuilder, interfaceDeclaration.TypeParameters, interfaceDeclaration);
     interfaceDeclaration.addUserData(typeBuilder);
     typeBuilder.setInterface(true);
     typeBuilder.setAbstract(true);
 }
 private void defineInterface(String packageName, InterfaceDeclarationNode interfaceDeclaration) {
     var className = getTypeName(packageName, interfaceDeclaration.NameOffset, interfaceDeclaration.NameLength);
     TypeBuilder typeBuilder = null;
     if (interfaceDeclaration.IsPartial) {
         var partialTypeInfo = this.partialTypes[className];
         if (partialTypeInfo != null) {
             setInterfaceModifiers(interfaceDeclaration, partialTypeInfo.typeBuilder);
             typeBuilder = partialTypeInfo.typeBuilder;
         }
     }
     if (typeBuilder == null) {
         typeBuilder = defineType(className, interfaceDeclaration);
         setInterfaceModifiers(interfaceDeclaration, typeBuilder);
         if (interfaceDeclaration.IsPartial) {
             this.partialTypes[className] = new PartialTypeInfo(typeBuilder);
         }
     }
     setTypeParameters(typeBuilder, interfaceDeclaration.TypeParameters, interfaceDeclaration);
     interfaceDeclaration.addUserData(typeBuilder);
     typeBuilder.setInterface(true);
     typeBuilder.setAbstract(true);
 }