maybeProcessType(node, functionTree.returnType);
maybeProcessType(node, functionTree.returnType);
Node processIndexSignature(IndexSignatureTree tree) { maybeWarnTypeSyntax(tree, Feature.INDEX_SIGNATURE); Node name = transform(tree.name); Node indexType = name.getDeclaredTypeExpression(); if (indexType.getType() != Token.NUMBER_TYPE && indexType.getType() != Token.STRING_TYPE) { errorReporter.error( "Index signature parameter type must be 'string' or 'number'", sourceName, lineno(tree.name), charno(tree.name)); } Node signature = newNode(Token.INDEX_SIGNATURE, name); maybeProcessType(signature, tree.declaredType); return signature; }
Node processSetAccessor(SetAccessorTree tree) { Node key = processObjectLitKeyAsString(tree.propertyName); key.setType(Token.SETTER_DEF); Node body = transform(tree.body); Node dummyName = IR.name(""); setSourceInfo(dummyName, tree.propertyName); Node paramList = IR.paramList( safeProcessName(tree.parameter)); setSourceInfo(paramList, tree.parameter); maybeProcessType(paramList.getFirstChild(), tree.type); Node value = newNode(Token.FUNCTION, dummyName, paramList, body); setSourceInfo(value, tree.body); key.addChildToFront(value); key.setStaticMember(tree.isStatic); return key; }
Node processIndexSignature(IndexSignatureTree tree) { maybeWarnTypeSyntax(tree, Feature.INDEX_SIGNATURE); Node name = transform(tree.name); Node indexType = name.getDeclaredTypeExpression(); if (indexType.getToken() != Token.NUMBER_TYPE && indexType.getToken() != Token.STRING_TYPE) { errorReporter.error( "Index signature parameter type must be 'string' or 'number'", sourceName, lineno(tree.name), charno(tree.name)); } Node signature = newNode(Token.INDEX_SIGNATURE, name); maybeProcessType(signature, tree.declaredType); return signature; }
Node processGetAccessor(GetAccessorTree tree) { Node key = processObjectLitKeyAsString(tree.propertyName); key.setToken(Token.GETTER_DEF); Node body = transform(tree.body); Node dummyName = newStringNode(Token.NAME, ""); setSourceInfo(dummyName, tree.body); Node paramList = newNode(Token.PARAM_LIST); setSourceInfo(paramList, tree.body); Node value = newNode(Token.FUNCTION, dummyName, paramList, body); setSourceInfo(value, tree.body); key.addChildToFront(value); maybeProcessType(value, tree.returnType); key.setStaticMember(tree.isStatic); return key; }
Node processGetAccessor(GetAccessorTree tree) { Node key = processObjectLitKeyAsString(tree.propertyName); key.setType(Token.GETTER_DEF); Node body = transform(tree.body); Node dummyName = IR.name(""); setSourceInfo(dummyName, tree.body); Node paramList = IR.paramList(); setSourceInfo(paramList, tree.body); Node value = newNode(Token.FUNCTION, dummyName, paramList, body); setSourceInfo(value, tree.body); key.addChildToFront(value); maybeProcessType(value, tree.returnType); key.setStaticMember(tree.isStatic); return key; }
Node processTypedParameter(TypedParameterTree typeAnnotation) { Node param = transform(typeAnnotation.param); maybeProcessType(param, typeAnnotation.typeAnnotation); return param; }
Node processVariableDeclaration(VariableDeclarationTree decl) { Node node = transformNodeWithInlineJsDoc(decl.lvalue); Node lhs = node.isDestructuringPattern() ? newNode(Token.DESTRUCTURING_LHS, node) : node; if (decl.initializer != null) { Node initializer = transform(decl.initializer); lhs.addChildToBack(initializer); maybeSetLength(lhs, decl.location.start, decl.location.end); } maybeProcessType(lhs, decl.declaredType); return lhs; }
Node processMemberVariable(MemberVariableTree tree) { Node member = newStringNode(Token.MEMBER_VARIABLE_DEF, tree.name.value); maybeProcessType(member, tree.declaredType); member.setStaticMember(tree.isStatic); member.putBooleanProp(Node.OPT_ES6_TYPED, tree.isOptional); maybeProcessAccessibilityModifier(tree, member, tree.access); return member; }
Node processCallSignature(CallSignatureTree tree) { maybeWarnTypeSyntax( tree, tree.isNew ? Feature.CONSTRUCTOR_SIGNATURE : Feature.CALL_SIGNATURE); Node signature = newNode(Token.CALL_SIGNATURE, transform(tree.formalParameterList)); maybeProcessType(signature, tree.returnType); maybeProcessGenerics(signature, tree.generics); signature.putBooleanProp(Node.CONSTRUCT_SIGNATURE, tree.isNew); return signature; }
Node processMemberVariable(MemberVariableTree tree) { Node member = newStringNode(Token.MEMBER_VARIABLE_DEF, tree.name.value); maybeProcessType(member, tree.declaredType); member.setStaticMember(tree.isStatic); member.putBooleanProp(Node.OPT_ES6_TYPED, tree.isOptional); maybeProcessAccessibilityModifier(member, tree.access); return member; }
Node processComputedPropertyMemberVariable(ComputedPropertyMemberVariableTree tree) { maybeWarnEs6Feature(tree, Feature.COMPUTED_PROPERTIES); maybeWarnTypeSyntax(tree, Feature.COMPUTED_PROPERTIES); Node n = newNode(Token.COMPUTED_PROP, transform(tree.property)); maybeProcessType(n, tree.declaredType); n.putBooleanProp(Node.COMPUTED_PROP_VARIABLE, true); n.putProp(Node.ACCESS_MODIFIER, tree.access); n.setStaticMember(tree.isStatic); maybeProcessAccessibilityModifier(n, tree.access); return n; }
Node processTypedParameter(TypedParameterTree typeAnnotation) { Node param = transform(typeAnnotation.param); maybeProcessType(param, typeAnnotation.typeAnnotation); return param; }
Node processVariableDeclaration(VariableDeclarationTree decl) { Node node = transformNodeWithInlineJsDoc(decl.lvalue); Node lhs = node.isDestructuringPattern() ? newNode(Token.DESTRUCTURING_LHS, node) : node; if (decl.initializer != null) { Node initializer = transform(decl.initializer); lhs.addChildToBack(initializer); setLength(lhs, decl.location.start, decl.location.end); } maybeProcessType(lhs, decl.declaredType); return lhs; }
Node processComputedPropertyMemberVariable(ComputedPropertyMemberVariableTree tree) { maybeWarnForFeature(tree, Feature.COMPUTED_PROPERTIES); maybeWarnTypeSyntax(tree, Feature.MEMBER_VARIABLE_IN_CLASS); Node n = newNode(Token.COMPUTED_PROP, transform(tree.property)); maybeProcessType(n, tree.declaredType); n.putBooleanProp(Node.COMPUTED_PROP_VARIABLE, true); n.putProp(Node.ACCESS_MODIFIER, tree.access); n.setStaticMember(tree.isStatic); maybeProcessAccessibilityModifier(tree, n, tree.access); return n; }
Node processCallSignature(CallSignatureTree tree) { maybeWarnTypeSyntax( tree, tree.isNew ? Feature.CONSTRUCTOR_SIGNATURE : Feature.CALL_SIGNATURE); Node signature = newNode(Token.CALL_SIGNATURE, transform(tree.formalParameterList)); maybeProcessType(signature, tree.returnType); maybeProcessGenerics(signature, tree.generics); signature.putBooleanProp(Node.CONSTRUCT_SIGNATURE, tree.isNew); return signature; }