@Override public Void visitDefaultFormalParameter(DefaultFormalParameter node) { visit(node.getParameter()); writer.print(" "); writer.print(node.getSeparator().getLexeme()); visit(" ", node.getDefaultValue()); return null; }
public void test_visitNamedFormalParameter() { ElementHolder holder = new ElementHolder(); ElementBuilder builder = new ElementBuilder(holder); String parameterName = "p"; DefaultFormalParameter formalParameter = namedFormalParameter(simpleFormalParameter(parameterName), identifier("b")); formalParameter.accept(builder); ParameterElement[] parameters = holder.getParameters(); assertLength(1, parameters); ParameterElement parameter = parameters[0]; assertNotNull(parameter); assertEquals(parameterName, parameter.getName()); assertFalse(parameter.isConst()); assertFalse(parameter.isFinal()); assertFalse(parameter.isSynthetic()); assertEquals(ParameterKind.NAMED, parameter.getParameterKind()); FunctionElement initializer = parameter.getInitializer(); assertNotNull(initializer); assertTrue(initializer.isSynthetic()); }
@Override public Void visitDefaultFormalParameter(DefaultFormalParameter node) { ElementHolder holder = new ElementHolder(); visitChildren(holder, node.getDefaultValue()); FunctionElementImpl initializer = new FunctionElementImpl(); initializer.setFunctions(holder.getFunctions()); initializer.setLabels(holder.getLabels()); initializer.setLocalVariables(holder.getVariables()); initializer.setParameters(holder.getParameters()); SimpleIdentifier parameterName = node.getParameter().getIdentifier(); ParameterElementImpl parameter = new ParameterElementImpl(parameterName); parameter.setConst(node.isConst()); parameter.setFinal(node.isFinal()); parameter.setInitializer(initializer); parameter.setParameterKind(node.getKind()); currentHolder.addParameter(parameter); parameterName.setElement(parameter); return null; }
@Override public Void visitDefaultFormalParameter(DefaultFormalParameter node) { ElementHolder holder = new ElementHolder(); SimpleIdentifier parameterName = node.getParameter().getIdentifier(); ParameterElementImpl parameter; if (node.getParameter() instanceof FieldFormalParameter) { parameter = new DefaultFieldFormalParameterElementImpl(parameterName); } else { parameter = new DefaultParameterElementImpl(parameterName); } parameter.setConst(node.isConst()); parameter.setFinal(node.isFinal()); parameter.setParameterKind(node.getKind()); // set initializer, default value range Expression defaultValue = node.getDefaultValue(); if (defaultValue != null) { visit(holder, defaultValue); FunctionElementImpl initializer = new FunctionElementImpl(defaultValue.getBeginToken().getOffset()); initializer.setFunctions(holder.getFunctions()); initializer.setLabels(holder.getLabels()); initializer.setLocalVariables(holder.getLocalVariables()); initializer.setParameters(holder.getParameters()); initializer.setSynthetic(true); parameter.setInitializer(initializer); parameter.setDefaultValueRange(defaultValue.getOffset(), defaultValue.getLength()); } // visible range setParameterVisibleRange(node, parameter); currentHolder.addParameter(parameter); parameterName.setStaticElement(parameter); node.getParameter().accept(this); holder.validate(); return null; }