docs: public ConversionType getConversionTypeFor(XAbstractFeatureCall featureCall) {
  		if (this.conversions == null) {
  			this.conversions = initMapping();
  		}
  		final List<Object> receiver = new ArrayList<>();
  		AbstractExpressionGenerator.buildCallReceiver(
  				featureCall,
  				this.keywords.getThisKeywordLambda(),
  				this.referenceNameLambda,
  				receiver);
  		final String simpleName = AbstractExpressionGenerator.getCallSimpleName(
  				featureCall,
  				this.logicalContainerProvider,
  				this.simpleNameProvider,
  				this.keywords.getNullKeywordLambda(),
  				this.keywords.getThisKeywordLambda(),
  				this.keywords.getSuperKeywordLambda(),
  				this.referenceNameLambda2);
  		final List<Pair<FeaturePattern, FeatureReplacement>> struct = this.conversions.get(getKey(simpleName));
  		if (struct != null) {
  			final String replacementId = featureCall.getFeature().getIdentifier();
  			final FeatureReplacement replacement = matchFirstPattern(struct, replacementId, simpleName, receiver);
  			if (replacement != null) {
  				if (replacement.hasReplacement()) {
  					return ConversionType.EXPLICIT;
  				}
  				return ConversionType.FORBIDDEN_CONVERSION;
  			}
  		}
  		return ConversionType.IMPLICIT;
  	}