IOperationClassWriter.cs (17)
34_typeMap = _tree.Types.OfType<AbstractNode>().ToDictionary(t => t.Name, t => (AbstractNode?)t);
211WriteLine($"{(node.IsInternal ? "internal" : "public")} interface {node.Name} : {node.Base}");
234return new[] { GetSubName(node.Name) };
352node.Name,
363writeEnumElement(GetSubName(currentEntry.Name),
365currentEntry.Name,
419string typeName = type.Name[1..];
437writeClassHeader(type.IsAbstract ? "abstract" : "sealed", @class, @base, type.Name);
663throw new InvalidOperationException($"{node.Name} is not being included in OperationKind, but has no base type!");
671return GetSubName(node.Name);
724Debug.Assert(node.ChildrenOrder != null, $"Encountered null children order for {type.Name}, should have been caught in verifier!");
965string nameMinusI = node.Name[1..];
966WriteLine($"{(node.IsInternal ? "internal" : "public")} override IOperation {GetVisitorName(node)}({node.Name} operation, object? argument)");
1045var baseName = GetSubName(type.Name);
1046WriteLine($"{accessibility} virtual void {GetVisitorName(type)}({type.Name} operation) => DefaultVisit(operation);");
1066WriteLine($"{accessibility} virtual TResult? {GetVisitorName(type)}({type.Name} operation, TArgument argument) => DefaultVisit(operation, argument);");
1104return type.VisitorName ?? $"Visit{GetSubName(type.Name)}";