2 types derived from Rope
Microsoft.CodeAnalysis (2)
Collections\Rope.cs (2)
144private sealed class StringRope : Rope 173private sealed class ConcatRope : Rope
31 references to Rope
Microsoft.CodeAnalysis (21)
Collections\Rope.cs (14)
18public static readonly Rope Empty = ForString(""); 30private readonly Stack<Rope>? _stack; 39internal Enumerator(Rope rope) 43_stack = new Stack<Rope>(); 86public static Rope ForString(string s) 97public static Rope Concat(Rope r1, Rope r2) 117if (!(obj is Rope other) || Length != other.Length) 175internal readonly Rope _left, _right; 178public ConcatRope(Rope left, Rope right) 188var stack = new Stack<Rope>(); 217var stack = new Stack<Rope>();
ConstantValue.cs (2)
46internal virtual Rope? RopeValue { get { throw new InvalidOperationException(); } } 111internal static ConstantValue CreateFromRope(Rope value)
ConstantValueSpecialized.cs (5)
96internal override Rope? RopeValue 136private readonly Rope _value; 149_value = Rope.ForString(value); 152public ConstantValueString(Rope value) 192internal override Rope RopeValue
Microsoft.CodeAnalysis.CSharp (10)
Binder\Binder_Operators.cs (5)
3205Rope leftValue = valueLeft.RopeValue ?? Rope.Empty; 3206Rope rightValue = valueRight.RopeValue ?? Rope.Empty; 3209return (newLength > int.MaxValue) ? ConstantValue.Bad : ConstantValue.CreateFromRope(Rope.Concat(leftValue, rightValue));
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (5)
321var next = getRope(constantValue); 322var current = getRope(argument.ConstantValueOpt); 323followingArgument = _factory.StringLiteral(ConstantValue.CreateFromRope(Rope.Concat(current, next))); 332static Rope getRope(ConstantValue constantValue) 341return Rope.ForString(constantValue.CharValue.ToString());