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; }
private Node convertTypeTree(ParseTree typeTree) { maybeWarnTypeSyntax(typeTree, Feature.TYPE_ANNOTATION); return transform(typeTree); }
Node processTypeAlias(TypeAliasTree tree) { maybeWarnTypeSyntax(tree, Feature.TYPE_ALIAS); Node typeAlias = newStringNode(Token.TYPE_ALIAS, tree.alias.value); typeAlias.addChildrenToFront(transform(tree.original)); return typeAlias; }
private void maybeProcessGenerics(Node n, GenericTypeListTree generics) { if (generics != null) { maybeWarnTypeSyntax(generics, Feature.GENERICS); n.putProp(Node.GENERIC_TYPE_LIST, transform(generics)); } }
Node processInterfaceDeclaration(InterfaceDeclarationTree tree) { maybeWarnTypeSyntax(tree, Feature.INTERFACE); Node name = processName(tree.name); maybeProcessGenerics(name, tree.generics); Node superInterfaces = transformListOrEmpty(Token.INTERFACE_EXTENDS, tree.superInterfaces); Node body = newNode(Token.INTERFACE_MEMBERS); setSourceInfo(body, tree); for (ParseTree child : tree.elements) { body.addChildToBack(transform(child)); } return newNode(Token.INTERFACE, name, superInterfaces, body); }
Node processAmbientDeclaration(AmbientDeclarationTree tree) { maybeWarnTypeSyntax(tree, Feature.AMBIENT_DECLARATION); return newNode(Token.DECLARE, transform(tree.declaration)); }
Node processNamespaceDeclaration(NamespaceDeclarationTree tree) { maybeWarnTypeSyntax(tree, Feature.NAMESPACE_DECLARATION); Node name = processNamespaceName(tree.name); Node body = newNode(Token.NAMESPACE_ELEMENTS); setSourceInfo(body, tree); for (ParseTree child : tree.elements) { body.addChildToBack(transform(child)); } return newNode(Token.NAMESPACE, name, body); }
Node processOptionalParameter(OptionalParameterTree optionalParam) { maybeWarnTypeSyntax(optionalParam, Feature.OPTIONAL_PARAMETER); Node param = transform(optionalParam.param); param.putBooleanProp(Node.OPT_ES6_TYPED, true); return param; }
Node processInterfaceDeclaration(InterfaceDeclarationTree tree) { maybeWarnTypeSyntax(tree, Feature.INTERFACE); Node name = processName(tree.name); maybeProcessGenerics(name, tree.generics); Node superInterfaces = transformListOrEmpty(Token.INTERFACE_EXTENDS, tree.superInterfaces); Node body = newNode(Token.INTERFACE_MEMBERS); setSourceInfo(body, tree); for (ParseTree child : tree.elements) { body.addChildToBack(transform(child)); } return newNode(Token.INTERFACE, name, superInterfaces, body); }
Node processAmbientDeclaration(AmbientDeclarationTree tree) { maybeWarnTypeSyntax(tree, Feature.AMBIENT_DECLARATION); return newNode(Token.DECLARE, transform(tree.declaration)); }
private Node convertTypeTree(ParseTree typeTree) { maybeWarnTypeSyntax(typeTree, Feature.TYPE_ANNOTATION); return transform(typeTree); }
Node processEnumDeclaration(EnumDeclarationTree tree) { maybeWarnTypeSyntax(tree, Feature.ENUM); Node name = processName(tree.name); Node body = newNode(Token.ENUM_MEMBERS); setSourceInfo(body, tree); for (ParseTree child : tree.members) { body.addChildrenToBack(transform(child)); } return newNode(Token.ENUM, name, body); }
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 processNamespaceDeclaration(NamespaceDeclarationTree tree) { maybeWarnTypeSyntax(tree, Feature.NAMESPACE_DECLARATION); Node name = processNamespaceName(tree.name); Node body = newNode(Token.NAMESPACE_ELEMENTS); setSourceInfo(body, tree); for (ParseTree child : tree.elements) { body.addChildToBack(transform(child)); } return newNode(Token.NAMESPACE, name, body); }
Node processOptionalParameter(OptionalParameterTree optionalParam) { maybeWarnTypeSyntax(optionalParam, Feature.OPTIONAL_PARAMETER); Node param = transform(optionalParam.param); param.putBooleanProp(Node.OPT_ES6_TYPED, true); return param; }
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 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 processTypeAlias(TypeAliasTree tree) { maybeWarnTypeSyntax(tree, Feature.TYPE_ALIAS); Node typeAlias = newStringNode(Token.TYPE_ALIAS, tree.alias.value); typeAlias.addChildToFront(transform(tree.original)); return typeAlias; }
private void maybeProcessGenerics(Node n, GenericTypeListTree generics) { if (generics != null) { maybeWarnTypeSyntax(generics, Feature.GENERICS); n.putProp(Node.GENERIC_TYPE_LIST, transform(generics)); } }
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; }