@Override protected boolean isInitialized(JvmField input) { if (super.isInitialized(input)) { return true; } // Check initialization into a static constructor. final XtendField sarlField = (XtendField) this.associations.getPrimarySourceElement(input); if (sarlField == null) { return false; } final XtendTypeDeclaration declaringType = sarlField.getDeclaringType(); if (declaringType == null) { return false; } for (final XtendConstructor staticConstructor : Iterables.filter(Iterables.filter( declaringType.getMembers(), XtendConstructor.class), it -> it.isStatic())) { if (staticConstructor.getExpression() != null) { for (final XAssignment assign : EcoreUtil2.getAllContentsOfType(staticConstructor.getExpression(), XAssignment.class)) { if (assign.isStatic() && Strings.equal(input.getIdentifier(), assign.getFeature().getIdentifier())) { // Mark the field as initialized in order to be faster during the next initialization test. this.readAndWriteTracking.markInitialized(input, null); return true; } } } } return false; }