docs: protected final synchronized GenerationContext openContext(EObject sarlObject, JvmDeclaredType type,
  			final Iterable<Class<? extends XtendMember>> supportedMemberTypes) {
  		assert type != null;
  		assert supportedMemberTypes != null;
  		this.sarlSignatureProvider.clear(type);
  		final GenerationContext context = new GenerationContext(sarlObject, type) {
  			@Override
  			public boolean isSupportedMember(XtendMember member) {
  				for (final Class<? extends XtendMember> supportedMemberType : supportedMemberTypes) {
  					if (supportedMemberType.isInstance(member)) {
  						return true;
  					}
  				}
  				return false;
  			}
  		};
  		this.contextInjector.injectMembers(context);
  		this.bufferedContexes.push(context);
  		return context;
  	}