Ejemplo n.º 1
0
        private static bool IsInternable(OpportunisticIntern.IInternable internable)
        {
            string i1 = OpportunisticIntern.InternableToString(internable);
            string i2 = OpportunisticIntern.InternableToString(internable);

            Assert.Equal(i1, i2); // No matter what, the same string value should return.
            return(Object.ReferenceEquals(i1, i2));
        }
Ejemplo n.º 2
0
            /// <summary>
            /// Returns a whitespace-trimmed and possibly interned substring of the expression.
            /// </summary>
            /// <param name="startIndex">Start index of the substring.</param>
            /// <param name="length">Length of the substring.</param>
            /// <returns>Equivalent to _expression.Substring(startIndex, length).Trim() or null if the trimmed substring is empty.</returns>
            private string GetExpressionSubstring(int startIndex, int length)
            {
                int endIndex = startIndex + length;

                while (startIndex < endIndex && char.IsWhiteSpace(_expression[startIndex]))
                {
                    startIndex++;
                }
                while (startIndex < endIndex && char.IsWhiteSpace(_expression[endIndex - 1]))
                {
                    endIndex--;
                }
                if (startIndex < endIndex)
                {
                    var target = new SubstringInternTarget(_expression, startIndex, endIndex - startIndex);
                    return(OpportunisticIntern.InternableToString(target));
                }
                return(null);
            }