use of org.eclipse.xsemantics.runtime.RuleFailedException in project n4js by eclipse.
the class InternalTypeSystem method applyRuleSubtypeBoundThisTypeRefTypeRef.
protected Result<Boolean> applyRuleSubtypeBoundThisTypeRefTypeRef(final RuleEnvironment G, final RuleApplicationTrace _trace_, final BoundThisTypeRef boundThisTypeRef, final TypeRef right) throws RuleFailedException {
/* boundThisTypeRef === right or { G |~ boundThisTypeRef /\ var TypeRef upperExt G |- upperExt <: right } */
{
RuleFailedException previousFailure = null;
try {
/* boundThisTypeRef === right */
if (!(boundThisTypeRef == right)) {
sneakyThrowRuleFailedException("boundThisTypeRef === right");
}
} catch (Exception e) {
previousFailure = extractRuleFailedException(e);
/* G |~ boundThisTypeRef /\ var TypeRef upperExt */
TypeRef upperExt = null;
Result<TypeRef> result = upperBoundInternal(G, _trace_, boundThisTypeRef);
checkAssignableTo(result.getFirst(), TypeRef.class);
upperExt = (TypeRef) result.getFirst();
/* G |- upperExt <: right */
subtypeInternal(G, _trace_, upperExt, right);
}
}
return new Result<Boolean>(true);
}
use of org.eclipse.xsemantics.runtime.RuleFailedException in project n4js by eclipse.
the class InternalTypeSystem method expectedTypeInImpl.
protected Result<TypeRef> expectedTypeInImpl(final RuleEnvironment G, final RuleApplicationTrace _trace_, final EqualityExpression e, final Expression expression) throws RuleFailedException {
try {
final RuleApplicationTrace _subtrace_ = newTrace(_trace_);
final Result<TypeRef> _result_ = applyRuleExpectedTypeInEqualityExpression(G, _subtrace_, e, expression);
addToTrace(_trace_, new Provider<Object>() {
public Object get() {
return ruleName("expectedTypeInEqualityExpression") + stringRepForEnv(G) + " |- " + stringRep(e) + " |> " + stringRep(expression) + " : " + stringRep(_result_.getFirst());
}
});
addAsSubtrace(_trace_, _subtrace_);
return _result_;
} catch (Exception e_applyRuleExpectedTypeInEqualityExpression) {
expectedTypeInThrowException(ruleName("expectedTypeInEqualityExpression") + stringRepForEnv(G) + " |- " + stringRep(e) + " |> " + stringRep(expression) + " : " + "ParameterizedTypeRef", EXPECTEDTYPEINEQUALITYEXPRESSION, e_applyRuleExpectedTypeInEqualityExpression, e, expression, new ErrorInformation[] { new ErrorInformation(e), new ErrorInformation(expression) });
return null;
}
}
use of org.eclipse.xsemantics.runtime.RuleFailedException in project n4js by eclipse.
the class InternalTypeSystem method subtypeImpl.
protected Result<Boolean> subtypeImpl(final RuleEnvironment G, final RuleApplicationTrace _trace_, final FunctionTypeExpression left, final ParameterizedTypeRef right) throws RuleFailedException {
try {
final RuleApplicationTrace _subtrace_ = newTrace(_trace_);
final Result<Boolean> _result_ = applyRuleSubtypeFunctionTypeExpression_ParameterizedTypeRef(G, _subtrace_, left, right);
addToTrace(_trace_, new Provider<Object>() {
public Object get() {
return ruleName("subtypeFunctionTypeExpression_ParameterizedTypeRef") + stringRepForEnv(G) + " |- " + stringRep(left) + " <: " + stringRep(right);
}
});
addAsSubtrace(_trace_, _subtrace_);
return _result_;
} catch (Exception e_applyRuleSubtypeFunctionTypeExpression_ParameterizedTypeRef) {
subtypeThrowException(ruleName("subtypeFunctionTypeExpression_ParameterizedTypeRef") + stringRepForEnv(G) + " |- " + stringRep(left) + " <: " + stringRep(right), SUBTYPEFUNCTIONTYPEEXPRESSION_PARAMETERIZEDTYPEREF, e_applyRuleSubtypeFunctionTypeExpression_ParameterizedTypeRef, left, right, new ErrorInformation[] { new ErrorInformation(left), new ErrorInformation(right) });
return null;
}
}
use of org.eclipse.xsemantics.runtime.RuleFailedException in project n4js by eclipse.
the class InternalTypeSystem method typeImpl.
protected Result<TypeRef> typeImpl(final RuleEnvironment G, final RuleApplicationTrace _trace_, final ArrayLiteral al) throws RuleFailedException {
try {
final RuleApplicationTrace _subtrace_ = newTrace(_trace_);
final Result<TypeRef> _result_ = applyRuleTypeArrayLiteral(G, _subtrace_, al);
addToTrace(_trace_, new Provider<Object>() {
public Object get() {
return ruleName("typeArrayLiteral") + stringRepForEnv(G) + " |- " + stringRep(al) + " : " + stringRep(_result_.getFirst());
}
});
addAsSubtrace(_trace_, _subtrace_);
return _result_;
} catch (Exception e_applyRuleTypeArrayLiteral) {
typeThrowException(ruleName("typeArrayLiteral") + stringRepForEnv(G) + " |- " + stringRep(al) + " : " + "TypeRef", TYPEARRAYLITERAL, e_applyRuleTypeArrayLiteral, al, new ErrorInformation[] { new ErrorInformation(al) });
return null;
}
}
use of org.eclipse.xsemantics.runtime.RuleFailedException in project n4js by eclipse.
the class InternalTypeSystem method typeImpl.
protected Result<TypeRef> typeImpl(final RuleEnvironment G, final RuleApplicationTrace _trace_, final JSXElement expr) throws RuleFailedException {
try {
final RuleApplicationTrace _subtrace_ = newTrace(_trace_);
final Result<TypeRef> _result_ = applyRuleTypeJSXElement(G, _subtrace_, expr);
addToTrace(_trace_, new Provider<Object>() {
public Object get() {
return ruleName("typeJSXElement") + stringRepForEnv(G) + " |- " + stringRep(expr) + " : " + stringRep(_result_.getFirst());
}
});
addAsSubtrace(_trace_, _subtrace_);
return _result_;
} catch (Exception e_applyRuleTypeJSXElement) {
typeThrowException(ruleName("typeJSXElement") + stringRepForEnv(G) + " |- " + stringRep(expr) + " : " + "TypeRef", TYPEJSXELEMENT, e_applyRuleTypeJSXElement, expr, new ErrorInformation[] { new ErrorInformation(expr) });
return null;
}
}
Aggregations