public class SuspiciouslyOverloadedCandidate extends java.lang.Object implements IFeatureLinkingCandidate, ISuspiciouslyOverloadedCandidate
this
receiver
though an overloaded candidate on it
exists.Modifier | Constructor and Description |
---|---|
protected |
SuspiciouslyOverloadedCandidate(FeatureLinkingCandidate chosenCandidate,
FeatureLinkingCandidate rejectedCandidate) |
Modifier and Type | Method and Description |
---|---|
protected void |
appendCandidate(FeatureLinkingCandidate candidate,
java.lang.StringBuilder result) |
void |
applyToComputationState()
Apply this candidate to the current computation state model.
|
void |
applyToModel(IResolvedTypes resolvedTypes)
Injects the resolved feature into the model with the same semantics as the implicit
resolve
of EMF. |
protected org.eclipse.xtext.xbase.typesystem.internal.CandidateCompareResult |
compareTo(AbstractPendingLinkingCandidate<?> right) |
FeatureLinkingCandidate |
getChosenCandidate() |
protected java.lang.String |
getDeclaratorSimpleName(JvmIdentifiableElement element) |
XExpression |
getExpression()
The current expression that shall be linked.
|
JvmIdentifiableElement |
getFeature()
The currently considered feature (if any).
|
XAbstractFeatureCall |
getFeatureCall()
Returns the feature call that is linked.
|
protected java.lang.String |
getFeatureTypeName() |
ILinkingCandidate |
getPreferredCandidate(ILinkingCandidate other)
Produces the best candidate for the current two candidates.
|
FeatureLinkingCandidate |
getRejectedCandidate() |
java.util.List<LightweightTypeReference> |
getTypeArguments()
The resolved type arguments.
|
boolean |
isExtension()
Returns
true if the the linked feature is contributed
by an extension. |
boolean |
isStatic()
Returns
true if the the linked feature is static. |
boolean |
isTypeLiteral()
Returns
true if the the feature call is linked as a type literal. |
boolean |
validate(IAcceptor<? super AbstractDiagnostic> result)
Produce diagnostics for this condidate.
|
protected SuspiciouslyOverloadedCandidate(FeatureLinkingCandidate chosenCandidate, FeatureLinkingCandidate rejectedCandidate)
public FeatureLinkingCandidate getChosenCandidate()
getChosenCandidate
in interface ISuspiciouslyOverloadedCandidate
public FeatureLinkingCandidate getRejectedCandidate()
getRejectedCandidate
in interface ISuspiciouslyOverloadedCandidate
public ILinkingCandidate getPreferredCandidate(ILinkingCandidate other)
ILinkingCandidate
this
and other
) are ambiguous
so no prefered candidate can be chosen. In that case, a new linking candidate
may be produced that carries this information and will use that on ILinkingCandidate.applyToComputationState()
,
ILinkingCandidate.applyToModel(IResolvedTypes)
, and IApplicableCandidate.validate(IAcceptor)
.getPreferredCandidate
in interface ILinkingCandidate
protected org.eclipse.xtext.xbase.typesystem.internal.CandidateCompareResult compareTo(AbstractPendingLinkingCandidate<?> right)
public void applyToComputationState()
ILinkingCandidate
applyToComputationState
in interface ILinkingCandidate
public void applyToModel(IResolvedTypes resolvedTypes)
ILinkingCandidate
resolve
of EMF. This implies that the linked feature call may still point to a proxy afterwards.applyToModel
in interface IApplicableCandidate
applyToModel
in interface ILinkingCandidate
public boolean validate(IAcceptor<? super AbstractDiagnostic> result)
IApplicableCandidate
validate
in interface IApplicableCandidate
true
if further validation should be performed.protected void appendCandidate(FeatureLinkingCandidate candidate, java.lang.StringBuilder result)
protected java.lang.String getFeatureTypeName()
protected java.lang.String getDeclaratorSimpleName(JvmIdentifiableElement element)
public JvmIdentifiableElement getFeature()
ILinkingCandidate
null
.getFeature
in interface ILinkingCandidate
public XExpression getExpression()
ILinkingCandidate
getExpression
in interface ILinkingCandidate
public java.util.List<LightweightTypeReference> getTypeArguments()
ILinkingCandidate
getTypeArguments
in interface ILinkingCandidate
public XAbstractFeatureCall getFeatureCall()
IFeatureLinkingCandidate
getFeatureCall
in interface IFeatureLinkingCandidate
public boolean isStatic()
IFeatureLinkingCandidate
true
if the the linked feature is static.isStatic
in interface IFeatureLinkingCandidate
public boolean isExtension()
IFeatureLinkingCandidate
true
if the the linked feature is contributed
by an extension.isExtension
in interface IFeatureLinkingCandidate
public boolean isTypeLiteral()
IFeatureLinkingCandidate
true
if the the feature call is linked as a type literal.isTypeLiteral
in interface IFeatureLinkingCandidate