docs: @Override
  	public void inferLocalClass(AnonymousClass anonymousClass, String localClassName, JvmFeature container) {
  		// Issue #356: do not generate if the class has no name.
  		assert anonymousClass != null;
  		assert container != null;
  		if (Strings.isNullOrEmpty(localClassName)) {
  			return;
  		}
  		// Issue #363: do not generate the class if the SARL library is incompatible.
  		if (!Utils.isCompatibleSARLLibraryOnClasspath(this.typeReferences, anonymousClass)) {
  			return;
  		}
  
  		// Create the inner type
  		// --- Begin Xtend Part
  		try {
  			final JvmGenericType inferredJvmType = this.typesFactory.createJvmGenericType();
  			inferredJvmType.setSimpleName(localClassName);
  			inferredJvmType.setAnonymous(!hasAdditionalMembers(anonymousClass));
  			inferredJvmType.setFinal(true);
  			setVisibility(inferredJvmType, anonymousClass);
  			inferredJvmType.getSuperTypes().add(this.typeBuilder.inferredType(anonymousClass));
  			container.getLocalClasses().add(inferredJvmType);
  			this.associator.associatePrimary(anonymousClass, inferredJvmType);
  			// --- End Xtend Part
  
  			// Create the generation context that is used by the other transformation functions.
  			final GenerationContext parentContext = getContext(
  					EcoreUtil2.getContainerOfType(container, JvmType.class));
  			final GenerationContext context = openContext(anonymousClass, inferredJvmType, Arrays.asList(
  					SarlField.class, SarlConstructor.class, SarlAction.class));
  			context.setParentContext(parentContext);
  			try {
  				// --- Begin Xtend Part
  				for (final XtendMember member : anonymousClass.getMembers()) {
  					if (context.isSupportedMember(member)) {
  						transform(member, inferredJvmType, true);
  					}
  				}
  
  				appendSyntheticDispatchMethods(anonymousClass, inferredJvmType);
  				this.nameClashResolver.resolveNameClashes(inferredJvmType);
  				// --- End Xtend Part
  
  				// Add SARL synthetic functions
  				appendSyntheticDefaultValuedParameterMethods(
  						anonymousClass,
  						inferredJvmType,
  						context);
  			} finally {
  				closeContext(context);
  			}
  		} catch (AssertionError | InternalError internalError) {
  			throw internalError;
  		} catch (Exception exception) {
  			logInternalError(exception);
  		}
  	}