@Override
  public void annotate(GLSLVariableDeclaration expr, AnnotationHolder holder) {
    for (final GLSLDeclarator declarator : expr.getDeclarators()) {
      final GLSLType variableType = declarator.getType();
      final GLSLExpression initializer = declarator.getInitializerExpression();

      if (variableType.isValidType() && initializer != null) {
        final GLSLType assignedType = initializer.getType();
        if (!assignedType.isValidType()) continue;
        if (GLSLTypeCompatibilityLevel.getCompatibilityLevel(assignedType, variableType)
            == GLSLTypeCompatibilityLevel.INCOMPATIBLE) {
          holder.createErrorAnnotation(
              initializer,
              "Can't assign '"
                  + assignedType.getTypename()
                  + "' to '"
                  + variableType.getTypename()
                  + "'");
        }
      }
    }
  }