From 60e481059aace8d7cbca19f1e7809bf481f0742e Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 8 Jan 2019 13:03:24 +0100
Subject: [PATCH] ENH: remove uniform compact output for FixedList (#1160)

- a FixedList is generally small so there is little advantage
  in a compact output form for uniform content.  Eg, "2{-1}"

  By avoiding this compact form we obtain output that is also
  consistent with Tuple2, for example.

- make FixedList construct from Istream explicit
---
 .../containers/Lists/FixedList/FixedList.H      |  2 +-
 .../containers/Lists/FixedList/FixedListIO.C    | 17 ++++++++---------
 2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedList.H b/src/OpenFOAM/containers/Lists/FixedList/FixedList.H
index b56720274c..67e93fcce2 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedList.H
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedList.H
@@ -180,7 +180,7 @@ public:
         inline explicit FixedList(const SLList<T>& list);
 
         //- Construct from Istream
-        FixedList(Istream& is);
+        explicit FixedList(Istream& is);
 
         //- Clone
         inline autoPtr<FixedList<T, Size>> clone() const;
diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
index a884beb26e..3c310e25a0 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
@@ -29,7 +29,6 @@ License
 #include "token.H"
 #include "contiguous.H"
 
-
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
 template<class T, unsigned Size>
@@ -70,15 +69,14 @@ Foam::Ostream& Foam::FixedList<T, Size>::writeList
     const FixedList<T, Size>& list = *this;
 
     // Write list contents depending on data format
+
+    // Unlike UList, no compact output form (eg, "2{-1}") since a
+    // FixedList is generally small and we also want the same appearance
+    // for FixedList<T, 2> as Tuple2<T,T>
+
     if (os.format() == IOstream::ASCII || !contiguous<T>())
     {
-        if (contiguous<T>() && list.uniform())
-        {
-            // Two or more entries, and all entries have identical values.
-
-            os << Size << token::BEGIN_BLOCK << list[0] << token::END_BLOCK;
-        }
-        else if
+        if
         (
             Size <= 1 || !shortListLen
          || (Size <= unsigned(shortListLen) && contiguous<T>())
@@ -145,7 +143,8 @@ Foam::Istream& Foam::operator>>(Foam::Istream& is, FixedList<T, Size>& list)
 
         is.fatalCheck
         (
-            "operator>>(Istream&, FixedList<T, Size>&) : reading first token"
+            "operator>>(Istream&, FixedList<T, Size>&) : "
+            "reading first token"
         );
 
         if (firstToken.isCompound())
-- 
GitLab