use of org.eclipse.n4js.n4JS.LiteralOrComputedPropertyName in project n4js by eclipse.
the class TypeXpectMethod method getTypeString.
private String getTypeString(IEObjectCoveringRegion offset, boolean expectedType) {
final String calculatedString;
EObject eobject = offset.getEObject();
if (eobject instanceof LiteralOrComputedPropertyName) {
eobject = eobject.eContainer();
}
RuleEnvironment G = newRuleEnvironment(eobject);
Result<org.eclipse.n4js.ts.typeRefs.TypeRef> result;
if (expectedType) {
if (!(eobject instanceof Expression && eobject.eContainer() != null))
return "Not an Expression at given region (required to obtain expected type); got instead: " + eobject.eClass().getName();
result = ts.expectedTypeIn(G, eobject.eContainer(), (Expression) eobject);
} else {
if (eobject instanceof BindingProperty) {
/*-
* Small tweak to allow testing the inferred type of variable declarations within binding patterns. For
* example, without this tweak, the following test would fail with a "Not a TypableElement at given
* region" exception:
*
* // Xpect type of 'len' --> number
* var {length:len} = "hello";
*/
if (((BindingProperty) eobject).getValue() != null && ((BindingProperty) eobject).getValue().getVarDecl() != null) {
eobject = ((BindingProperty) eobject).getValue().getVarDecl();
}
}
if (!(eobject instanceof TypableElement))
return "Not a TypableElement at given region; got instead: " + eobject.eClass().getName();
result = ts.type(G, (TypableElement) eobject);
}
if (result.getRuleFailedException() != null) {
calculatedString = result.getRuleFailedException().getMessage();
} else {
calculatedString = result.getValue().getTypeRefAsString();
}
return calculatedString;
}
use of org.eclipse.n4js.n4JS.LiteralOrComputedPropertyName in project n4js by eclipse.
the class PropertyAssignmentImpl method getName.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getName() {
LiteralOrComputedPropertyName _declaredName = this.getDeclaredName();
String _name = null;
if (_declaredName != null) {
_name = _declaredName.getName();
}
return _name;
}
use of org.eclipse.n4js.n4JS.LiteralOrComputedPropertyName in project n4js by eclipse.
the class N4MethodDeclarationImpl method getName.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getName() {
LiteralOrComputedPropertyName _declaredName = this.getDeclaredName();
String _name = null;
if (_declaredName != null) {
_name = _declaredName.getName();
}
return _name;
}
use of org.eclipse.n4js.n4JS.LiteralOrComputedPropertyName in project n4js by eclipse.
the class N4MethodDeclarationImpl method basicSetDeclaredName.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetDeclaredName(LiteralOrComputedPropertyName newDeclaredName, NotificationChain msgs) {
LiteralOrComputedPropertyName oldDeclaredName = declaredName;
declaredName = newDeclaredName;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, N4JSPackage.N4_METHOD_DECLARATION__DECLARED_NAME, oldDeclaredName, newDeclaredName);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
use of org.eclipse.n4js.n4JS.LiteralOrComputedPropertyName in project n4js by eclipse.
the class N4MethodDeclarationImpl method isValidName.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isValidName() {
String _name = this.getName();
boolean _equals = Objects.equal("prototype", _name);
if (_equals) {
return false;
}
boolean _and = false;
if (!(Objects.equal("constructor", this.getName()) && this.isGenerator())) {
_and = false;
} else {
LiteralOrComputedPropertyName _declaredName = this.getDeclaredName();
PropertyNameKind _kind = null;
if (_declaredName != null) {
_kind = _declaredName.getKind();
}
boolean _tripleNotEquals = (_kind != PropertyNameKind.COMPUTED);
_and = _tripleNotEquals;
}
if (_and) {
return false;
}
return true;
}
Aggregations