public void checkFieldNameShadowing(SarlField field) { if (!isIgnored(VARIABLE_NAME_SHADOWING) && !Utils.isHiddenMember(field.getName())) { final JvmField inferredField = this.associations.getJvmField(field); final Map<String, JvmField> inheritedFields = new TreeMap<>(); this.sarlActionSignatures); final JvmField inheritedField = inheritedFields.get(field.getName()); if (inheritedField != null) { int nameIndex = 0; String newName = field.getName() + nameIndex; while (inheritedFields.containsKey(newName)) { ++nameIndex; newName = field.getName() + nameIndex; field.getName(), inferredField.getDeclaringType().getQualifiedName(), inheritedField.getQualifiedName()),
/** Check if the given field has a valid name. * * @param field the field to test. * @see SARLFeatureNameValidator */ @Check(CheckType.FAST) public void checkFieldName(SarlField field) { final JvmField inferredType = this.associations.getJvmField(field); final QualifiedName name = Utils.getQualifiedName(inferredType); if (this.featureNames.isDisallowedName(name)) { final String validName = Utils.fixHiddenMember(field.getName()); error(MessageFormat.format( Messages.SARLValidator_41, field.getName()), field, XTEND_FIELD__NAME, ValidationMessageAcceptor.INSIGNIFICANT_INDEX, VARIABLE_NAME_DISALLOWED, validName); } else if (this.grammarAccess.getOccurrenceKeyword().equals(field.getName())) { error(MessageFormat.format( Messages.SARLValidator_41, this.grammarAccess.getOccurrenceKeyword()), field, XTEND_FIELD__NAME, ValidationMessageAcceptor.INSIGNIFICANT_INDEX, VARIABLE_NAME_DISALLOWED); } }
/** Create a field declaration. * * @param field the field to generate. * @param it the output * @param context the generation context. */ protected void generatePythonField(SarlField field, PyAppendable it, IExtraLanguageGeneratorContext context) { generateBlockComment(getTypeBuilder().getDocumentation(field), it); if (!field.isStatic()) { it.append("self."); //$NON-NLS-1$ } final String fieldName = it.declareUniqueNameVariable(field, field.getName()); it.append(fieldName); it.append(" = "); //$NON-NLS-1$ if (field.getInitialValue() != null) { generate(field.getInitialValue(), null, it, context); } else { it.append(PyExpressionGenerator.toDefaultValue(field.getType())); } it.newLine(); }