diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs index f35d4fe03ae..04b25553b6b 100644 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs +++ b/csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs @@ -920,7 +920,8 @@ namespace Semmle.Extraction.CIL.Entities { elementType.GetId(trapFile, inContext); trapFile.Write('['); - trapFile.Write(rank); + for (int i = 1; i < rank; ++i) + trapFile.Write(','); trapFile.Write(']'); } @@ -1206,7 +1207,10 @@ namespace Semmle.Extraction.CIL.Entities public void WriteId(TextWriter trapFile, GenericContext gc) { elementType.WriteId(trapFile, gc); - trapFile.Write("[]"); + trapFile.Write('['); + for (int i=1; i m.MethodKind).FirstOrDefault(); @@ -345,11 +345,12 @@ namespace Semmle.Extraction.CSharp.Entities foreach (var tp in symbol.GetAnnotatedTypeArguments()) { trapFile.type_arguments(Type.Create(Context, tp.Symbol), child, this); - var ta = tp.Nullability.GetTypeAnnotation(); - if (ta != Kinds.TypeAnnotation.None) - trapFile.type_argument_annotation(this, child, ta); child++; } + + var nullability = new Nullability(symbol); + if (!nullability.IsOblivious) + trapFile.type_nullability(this, NullabilityEntity.Create(Context, nullability)); } else { @@ -380,7 +381,7 @@ namespace Semmle.Extraction.CSharp.Entities PopulateMethodBody(trapFile); PopulateGenerics(trapFile); PopulateMetadataHandle(trapFile); - PopulateNullability(trapFile, symbol.ReturnNullableAnnotation); + PopulateNullability(trapFile, symbol.GetAnnotatedReturnType()); } public override TrapStackBehaviour TrapStackBehaviour => TrapStackBehaviour.PushesLabel; diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs index efb88840e03..f05bab3f366 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs @@ -103,7 +103,7 @@ namespace Semmle.Extraction.CSharp.Entities public override void Populate(TextWriter trapFile) { PopulateAttributes(); - PopulateNullability(trapFile, symbol.NullableAnnotation); + PopulateNullability(trapFile, symbol.GetAnnotatedType()); PopulateRefKind(trapFile, symbol.RefKind); if (symbol.Name != Original.symbol.Name) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs index 900a313fe92..bcb971ae799 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs @@ -28,7 +28,7 @@ namespace Semmle.Extraction.CSharp.Entities PopulateAttributes(); PopulateModifiers(trapFile); BindComments(); - PopulateNullability(trapFile, symbol.NullableAnnotation); + PopulateNullability(trapFile, symbol.GetAnnotatedType()); PopulateRefKind(trapFile, symbol.RefKind); var type = Type.Create(Context, symbol.Type); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Symbol.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Symbol.cs index ddd1c79faf8..4f239083d24 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Symbol.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Symbol.cs @@ -28,11 +28,13 @@ namespace Semmle.Extraction.CSharp.Entities Attribute.ExtractAttributes(Context, symbol, this); } - protected void PopulateNullability(TextWriter trapFile, NullableAnnotation annotation) + protected void PopulateNullability(TextWriter trapFile, AnnotatedTypeSymbol type) { - var ta = annotation.GetTypeAnnotation(); - if (ta != Kinds.TypeAnnotation.None) - trapFile.type_annotation(this, ta); + var n = NullabilityEntity.Create(Context, Nullability.Create(type)); + if (!type.HasObliviousNullability()) + { + trapFile.type_nullability(this, n); + } } protected void PopulateRefKind(TextWriter trapFile, RefKind kind) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/ArrayType.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/ArrayType.cs index 6e7b6f4d92c..c4a79a7764b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/ArrayType.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/ArrayType.cs @@ -27,13 +27,11 @@ namespace Semmle.Extraction.CSharp.Entities { trapFile.array_element_type(this, Dimension, Rank, element.Type.TypeRef); PopulateType(trapFile); - PopulateNullability(trapFile, symbol.ElementNullableAnnotation); } public override void WriteId(TextWriter trapFile) { trapFile.WriteSubId(element.Type); - trapFile.Write((int)symbol.ElementNullableAnnotation); symbol.BuildArraySuffix(trapFile); trapFile.Write(";type"); } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs index 416fb34f224..e22d32c0d01 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs @@ -57,9 +57,6 @@ namespace Semmle.Extraction.CSharp.Entities for (int i = 0; i < symbol.TypeArguments.Length; ++i) { - var ta = symbol.TypeArgumentsNullableAnnotations[i].GetTypeAnnotation(); - if (ta != Kinds.TypeAnnotation.None) - trapFile.type_argument_annotation(this, i, ta); trapFile.type_arguments(TypeArguments[i].TypeRef, i, this); } } @@ -166,7 +163,8 @@ namespace Semmle.Extraction.CSharp.Entities referencedType = Type.Create(cx, symbol); } - public static NamedTypeRef Create(Context cx, INamedTypeSymbol type) => NamedTypeRefFactory.Instance.CreateEntity2(cx, type); + public static NamedTypeRef Create(Context cx, INamedTypeSymbol type) => + NamedTypeRefFactory.Instance.CreateEntity2(cx, type); class NamedTypeRefFactory : ICachedEntityFactory { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Nullability.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Nullability.cs new file mode 100644 index 00000000000..64f4ed58783 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Nullability.cs @@ -0,0 +1,269 @@ +using Microsoft.CodeAnalysis; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace Semmle.Extraction.CSharp.Entities +{ + public sealed class Nullability + { + public int Annotation { get; } + + static readonly Nullability[] EmptyArray = new Nullability[0]; + public readonly Nullability[] NullableParameters; + + public static Nullability Create(AnnotatedTypeSymbol ts) + { + if (ts.HasConsistentNullability()) + { + switch (ts.Nullability) + { + case NullableAnnotation.Annotated: + return annotated; + case NullableAnnotation.NotAnnotated: + return notannotated; + default: + return oblivious; + } + } + + return new Nullability(ts); + } + + public bool IsOblivious => Annotation == 0 && NullableParameters.Length == 0; + + static readonly Nullability oblivious = new Nullability(NullableAnnotation.Disabled); + static readonly Nullability annotated = new Nullability(NullableAnnotation.Annotated); + static readonly Nullability notannotated = new Nullability(NullableAnnotation.NotAnnotated); + + private Nullability(NullableAnnotation n) + { + switch (n) + { + case NullableAnnotation.NotAnnotated: + Annotation = 1; + break; + case NullableAnnotation.Annotated: + Annotation = 2; + break; + default: + Annotation = 0; + break; + } + NullableParameters = EmptyArray; + } + + private Nullability(AnnotatedTypeSymbol ts) : this(ts.Nullability) + { + NullableParameters = ts.HasConsistentNullability() ? EmptyArray : ts.GetAnnotatedTypeArguments().Select(Create).ToArray(); + } + + public Nullability(IMethodSymbol method) + { + Annotation = 0; + NullableParameters = method.GetAnnotatedTypeArguments().Select(a => new Nullability(a)).ToArray(); + } + + public override bool Equals(object other) + { + return other is Nullability n && Annotation == n.Annotation && NullableParameters.SequenceEqual(n.NullableParameters); + } + + public override int GetHashCode() + { + int h = Annotation; + + foreach (var t in NullableParameters) + h = h * 5 + t.GetHashCode(); + + return h; + } + + public void WriteId(TextWriter trapFile) + { + trapFile.Write(Annotation); + trapFile.Write('('); + foreach (var s in NullableParameters) + s.WriteId(trapFile); + trapFile.Write(')'); + } + + public override string ToString() + { + using (var w = new StringWriter()) + { + WriteId(w); + return w.ToString(); + } + } + } + + public class NullabilityEntity : CachedEntity + { + public NullabilityEntity(Context cx, Nullability init) : base(cx, init) + { + } + + public override Location ReportingLocation => throw new System.NotImplementedException(); + + public override bool NeedsPopulation => true; + + public override TrapStackBehaviour TrapStackBehaviour => TrapStackBehaviour.NoLabel; + + public override void Populate(TextWriter trapFile) + { + trapFile.nullability(this, symbol.Annotation); + + int i = 0; + foreach (var s in symbol.NullableParameters) + { + trapFile.nullability_parent(Create(Context, s), i, this); + i++; + } + } + + public override void WriteId(TextWriter trapFile) + { + symbol.WriteId(trapFile); + } + + public static NullabilityEntity Create(Context cx, Nullability init) => NullabilityFactory.Instance.CreateEntity(cx, init); + + class NullabilityFactory : ICachedEntityFactory + { + public static readonly NullabilityFactory Instance = new NullabilityFactory(); + + public NullabilityEntity Create(Context cx, Nullability init) => new NullabilityEntity(cx, init); + } + } + + public static class NullabilityExtensions + { + /// + /// Gets the annotated type of an ILocalSymbol. + /// This has not yet been exposed on the public API. + /// + public static AnnotatedTypeSymbol GetAnnotatedType(this ILocalSymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); + + /// + /// Gets the annotated type of an IParameterSymbol. + /// This has not yet been exposed on the public API. + /// + public static AnnotatedTypeSymbol GetAnnotatedType(this IParameterSymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); + + /// + /// Gets the annotated type of an IPropertySymbol. + /// This has not yet been exposed on the public API. + /// + public static AnnotatedTypeSymbol GetAnnotatedType(this IPropertySymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); + + /// + /// Gets the annotated type of an IEventSymbol. + /// This has not yet been exposed on the public API. + /// + public static AnnotatedTypeSymbol GetAnnotatedType(this IEventSymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); + + /// + /// Gets the annotated type of an IFieldSymbol. + /// This has not yet been exposed on the public API. + /// + public static AnnotatedTypeSymbol GetAnnotatedType(this IFieldSymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); + + /// + /// Gets the annotated return type of an IMethodSymbol. + /// This has not yet been exposed on the public API. + /// + public static AnnotatedTypeSymbol GetAnnotatedReturnType(this IMethodSymbol symbol) => new AnnotatedTypeSymbol(symbol.ReturnType, symbol.ReturnNullableAnnotation); + + /// + /// Gets the type annotation for a NullableAnnotation. + /// + public static Kinds.TypeAnnotation GetTypeAnnotation(this NullableAnnotation na) + { + switch (na) + { + case NullableAnnotation.Annotated: + return Kinds.TypeAnnotation.Annotated; + case NullableAnnotation.NotAnnotated: + return Kinds.TypeAnnotation.NotAnnotated; + default: + return Kinds.TypeAnnotation.None; + } + } + + public static IEnumerable GetAnnotatedTypeArguments(this AnnotatedTypeSymbol at) + { + switch (at.Symbol) + { + case IArrayTypeSymbol array: + yield return array.GetAnnotatedElementType(); + break; + case INamedTypeSymbol named: + foreach (var n in named.GetAnnotatedTypeArguments()) + yield return n; + break; + } + } + + /// + /// Checks if this type has consistent nullability, which is the most common case. + /// Either the code is oblivious to nullability, or is non-nullable. + /// This is so that we can avoid populating nullability in most cases. + /// For example, + /// + /// IEnumerable<string?> // false + /// IEnumerable<string?>? // true + /// string? // true + /// string[] // true + /// string?[] // false + /// string?[]? // true + /// + /// + /// The annotated type. + /// If the nullability is consistent in the type. + public static bool HasConsistentNullability(this AnnotatedTypeSymbol at) => + at.GetAnnotatedTypeArguments().All(a => a.Nullability == at.Nullability && a.HasConsistentNullability()); + + /// + /// Holds if the type symbol is completely oblivious to nullability. + /// + /// The annotated type symbol. + /// If at is oblivious. + public static bool HasObliviousNullability(this AnnotatedTypeSymbol at) => + at.Nullability.GetTypeAnnotation() == Kinds.TypeAnnotation.None && at.HasConsistentNullability(); + + /// + /// Gets the annotated element type of an IArrayTypeSymbol. + /// This has not yet been exposed on the public API. + /// + public static AnnotatedTypeSymbol GetAnnotatedElementType(this IArrayTypeSymbol symbol) => + new AnnotatedTypeSymbol(symbol.ElementType, symbol.ElementNullableAnnotation); + + /// + /// Gets the annotated type arguments of an INamedTypeSymbol. + /// This has not yet been exposed on the public API. + /// + public static IEnumerable GetAnnotatedTypeArguments(this INamedTypeSymbol symbol) => + symbol.TypeArguments.Zip(symbol.TypeArgumentsNullableAnnotations, (t, a) => new AnnotatedTypeSymbol(t, a)); + + /// + /// Gets the annotated type arguments of an IMethodSymbol. + /// This has not yet been exposed on the public API. + /// + public static IEnumerable GetAnnotatedTypeArguments(this IMethodSymbol symbol) => + symbol.TypeArguments.Zip(symbol.TypeArgumentsNullableAnnotations, (t, a) => new AnnotatedTypeSymbol(t, a)); + + /// + /// Gets the annotated type constraints of an ITypeParameterSymbol. + /// This has not yet been exposed on the public API. + /// + public static IEnumerable GetAnnotatedTypeConstraints(this ITypeParameterSymbol symbol) => + symbol.ConstraintTypes.Zip(symbol.ConstraintNullableAnnotations, (t, a) => new AnnotatedTypeSymbol(t, a)); + + /// + /// Creates an AnnotatedTypeSymbol from an ITypeSymbol. + /// + public static AnnotatedTypeSymbol WithAnnotation(this ITypeSymbol symbol, NullableAnnotation annotation) => + new AnnotatedTypeSymbol(symbol, annotation); + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs index 6377c5d49c7..2fdb8cd3a83 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs @@ -51,11 +51,11 @@ namespace Semmle.Extraction.CSharp.Entities baseType = abase.Symbol; var t = Create(Context, abase.Symbol); trapFile.specific_type_parameter_constraints(constraints, t.TypeRef); - if (abase.Nullability.GetTypeAnnotation() != Kinds.TypeAnnotation.None) - trapFile.specific_type_parameter_annotation(constraints, t.TypeRef, abase.Nullability.GetTypeAnnotation()); + if (!abase.HasObliviousNullability()) + trapFile.specific_type_parameter_nullability(constraints, t.TypeRef, NullabilityEntity.Create(Context, Nullability.Create(abase))); } - trapFile.types(this, Semmle.Extraction.Kinds.TypeKind.TYPE_PARAMETER, symbol.Name); + trapFile.types(this, Kinds.TypeKind.TYPE_PARAMETER, symbol.Name); trapFile.extend(this, Create(Context, baseType).TypeRef); Namespace parentNs = Namespace.Create(Context, symbol.TypeParameterKind == TypeParameterKind.Method ? Context.Compilation.GlobalNamespace : symbol.ContainingNamespace); @@ -66,7 +66,7 @@ namespace Semmle.Extraction.CSharp.Entities trapFile.type_location(this, Context.Create(l)); } - if (this.IsSourceDeclaration) + if (IsSourceDeclaration) { var declSyntaxReferences = symbol.DeclaringSyntaxReferences.Select(d => d.GetSyntax()). Select(s => s.Parent).Where(p => p != null).Select(p => p.Parent).ToArray(); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs b/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs index 107fe42b7e2..6f301aeeb99 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs @@ -262,7 +262,9 @@ namespace Semmle.Extraction.CSharp // Type arguments with different nullability can result in // a constructed type with different nullability of its members and methods, // so we need to create a distinct database entity for it. - trapFile.BuildList(",", named.GetAnnotatedTypeArguments(), (ta, tb0) => { subTermAction(cx, tb0, ta.Symbol); trapFile.Write((int)ta.Nullability); }); + trapFile.BuildList(",", named.GetAnnotatedTypeArguments(), + (ta, tb0) => subTermAction(cx, tb0, ta.Symbol) + ); trapFile.Write('>'); } } @@ -279,7 +281,7 @@ namespace Semmle.Extraction.CSharp ? (prop, tb0) => { tb0.Write(prop.Name); - trapFile.Write(' '); + tb0.Write(' '); subTermAction(cx, tb0, prop.Type); } : (Action)((prop, tb0) => subTermAction(cx, tb0, prop.Type)); @@ -457,30 +459,6 @@ namespace Semmle.Extraction.CSharp public static SymbolInfo GetSymbolInfo(this Context cx, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node) => cx.GetModel(node).GetSymbolInfo(node); - /// - /// Gets the symbol for a particular syntax node. - /// Throws an exception if the symbol is not found. - /// - /// - /// - /// This gives a nicer message than a "null pointer exception", - /// and should be used where we require a symbol to be resolved. - /// - /// - /// The extraction context. - /// The syntax node. - /// The resolved symbol. - public static ISymbol GetSymbol(this Context cx, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node) - { - var info = GetSymbolInfo(cx, node); - if (info.Symbol == null) - { - throw new InternalError(node, "Could not resolve symbol"); - } - - return info.Symbol; - } - /// /// Determines the type of a node, or default /// if the type could not be determined. @@ -494,78 +472,11 @@ namespace Semmle.Extraction.CSharp return new AnnotatedTypeSymbol(info.Type.DisambiguateType(), info.Nullability.Annotation); } - /// - /// Gets the annotated type of an ILocalSymbol. - /// This has not yet been exposed on the public API. - /// - public static AnnotatedTypeSymbol GetAnnotatedType(this ILocalSymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); - - /// - /// Gets the annotated type of an IPropertySymbol. - /// This has not yet been exposed on the public API. - /// - public static AnnotatedTypeSymbol GetAnnotatedType(this IPropertySymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); - - /// - /// Gets the annotated type of an IFieldSymbol. - /// This has not yet been exposed on the public API. - /// - public static AnnotatedTypeSymbol GetAnnotatedType(this IFieldSymbol symbol) => new AnnotatedTypeSymbol(symbol.Type, symbol.NullableAnnotation); - - /// - /// Gets the annotated return type of an IMethodSymbol. - /// This has not yet been exposed on the public API. - /// - public static AnnotatedTypeSymbol GetAnnotatedReturnType(this IMethodSymbol symbol) => new AnnotatedTypeSymbol(symbol.ReturnType, symbol.ReturnNullableAnnotation); - - /// - /// Gets the type annotation for a NullableAnnotation. - /// - public static Kinds.TypeAnnotation GetTypeAnnotation(this NullableAnnotation na) - { - switch(na) - { - case NullableAnnotation.Annotated: - return Kinds.TypeAnnotation.Annotated; - case NullableAnnotation.NotAnnotated: - return Kinds.TypeAnnotation.NotAnnotated; - default: - return Kinds.TypeAnnotation.None; - } - } - - /// - /// Gets the annotated element type of an IArrayTypeSymbol. - /// This has not yet been exposed on the public API. - /// - public static AnnotatedTypeSymbol GetAnnotatedElementType(this IArrayTypeSymbol symbol) => - new AnnotatedTypeSymbol(symbol.ElementType, symbol.ElementNullableAnnotation); - /// /// Gets the annotated type arguments of an INamedTypeSymbol. /// This has not yet been exposed on the public API. /// public static IEnumerable GetAnnotatedTypeArguments(this INamedTypeSymbol symbol) => symbol.TypeArguments.Zip(symbol.TypeArgumentsNullableAnnotations, (t, a) => new AnnotatedTypeSymbol(t, a)); - - /// - /// Gets the annotated type arguments of an IMethodSymbol. - /// This has not yet been exposed on the public API. - /// - public static IEnumerable GetAnnotatedTypeArguments(this IMethodSymbol symbol) => - symbol.TypeArguments.Zip(symbol.TypeArgumentsNullableAnnotations, (t, a) => new AnnotatedTypeSymbol(t, a)); - - /// - /// Gets the annotated type constraints of an ITypeParameterSymbol. - /// This has not yet been exposed on the public API. - /// - public static IEnumerable GetAnnotatedTypeConstraints(this ITypeParameterSymbol symbol) => - symbol.ConstraintTypes.Zip(symbol.ConstraintNullableAnnotations, (t, a) => new AnnotatedTypeSymbol(t, a)); - - /// - /// Creates an AnnotatedTypeSymbol from an ITypeSymbol. - /// - public static AnnotatedTypeSymbol WithAnnotation(this ITypeSymbol symbol, NullableAnnotation annotation) => - new AnnotatedTypeSymbol(symbol, annotation); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs b/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs index 836a21312fb..c6637640556 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs @@ -381,6 +381,16 @@ namespace Semmle.Extraction.CSharp trapFile.WriteTuple("nullable_underlying_type", nullableType, underlyingType); } + internal static void nullability(this TextWriter trapFile, NullabilityEntity nullability, int annotation) + { + trapFile.WriteTuple("nullability", nullability, annotation); + } + + internal static void nullability_parent(this TextWriter trapFile, NullabilityEntity nullability, int index, NullabilityEntity parent) + { + trapFile.WriteTuple("nullability_parent", nullability, index, parent); + } + internal static void numlines(this TextWriter trapFile, IEntity label, LineCounts lineCounts) { trapFile.WriteTuple("numlines", label, lineCounts.Total, lineCounts.Code, lineCounts.Comment); @@ -446,9 +456,9 @@ namespace Semmle.Extraction.CSharp trapFile.WriteTuple("specific_type_parameter_constraints", constraints, baseType); } - internal static void specific_type_parameter_annotation(this TextWriter trapFile, TypeParameterConstraints constraints, Type baseType, TypeAnnotation annotation) + internal static void specific_type_parameter_nullability(this TextWriter trapFile, TypeParameterConstraints constraints, Type baseType, NullabilityEntity nullability) { - trapFile.WriteTuple("specific_type_parameter_annotation", constraints, baseType, (int)annotation); + trapFile.WriteTuple("specific_type_parameter_nullability", constraints, baseType, nullability); } internal static void stmt_location(this TextWriter trapFile, Statement stmt, Location location) @@ -481,9 +491,14 @@ namespace Semmle.Extraction.CSharp trapFile.WriteTuple("type_annotation", element, (int)annotation); } - internal static void type_argument_annotation(this TextWriter trapFile, IEntity element, int index, Kinds.TypeAnnotation annotation) + internal static void type_arguments(this TextWriter trapFile, Type arg, int n, IEntity typeOrMethod) { - trapFile.WriteTuple("type_argument_annotation", element, index, (int)annotation); + trapFile.WriteTuple("type_arguments", arg, n, typeOrMethod); + } + + internal static void type_location(this TextWriter trapFile, Type type, Location location) + { + trapFile.WriteTuple("type_location", type, location); } internal static void type_mention(this TextWriter trapFile, TypeMention ta, Type type, IEntity parent) @@ -496,14 +511,9 @@ namespace Semmle.Extraction.CSharp trapFile.WriteTuple("type_mention_location", ta, loc); } - internal static void type_arguments(this TextWriter trapFile, Type arg, int n, IEntity typeOrMethod) + internal static void type_nullability(this TextWriter trapFile, IEntity element, NullabilityEntity nullability) { - trapFile.WriteTuple("type_arguments", arg, n, typeOrMethod); - } - - internal static void type_location(this TextWriter trapFile, Type type, Location location) - { - trapFile.WriteTuple("type_location", type, location); + trapFile.WriteTuple("type_nullability", element, nullability); } internal static void type_parameter_constraints(this TextWriter trapFile, TypeParameterConstraints constraints, TypeParameter typeParam) diff --git a/csharp/ql/src/semmle/code/csharp/AnnotatedType.qll b/csharp/ql/src/semmle/code/csharp/AnnotatedType.qll index 14a88830ad2..fb3e200b0a2 100644 --- a/csharp/ql/src/semmle/code/csharp/AnnotatedType.qll +++ b/csharp/ql/src/semmle/code/csharp/AnnotatedType.qll @@ -10,120 +10,223 @@ import csharp private module Annotations { newtype TAnnotation = - TNotNullableRefType() or - TNullableRefType() or TReadonlyRefType() or TRefType() or - TOutType() + TOutType() or + TNullability(@nullability n) /** An annotation on a type. */ class TypeAnnotation extends TAnnotation { - /** Holds if this string should prefix the type string. */ - predicate isPrefix() { none() } + /** Gets the bit position in the bit-field, also used to order the annotations in the text format. */ + int getBit() { none() } - /** Holds if this string should suffix the type string. */ - predicate isSuffix() { none() } + /** Gets the string prefixing the type, if any. */ + string getPrefix() { none() } - /** Gets the bit position in the bit-field. */ - abstract int getBit(); + /** Gets the string suffixing the type, if any. */ + string getSuffix() { none() } /** Gets a string representation of this type annotation. */ - abstract string toString(); - } - - /** An annotation indicating that the type is not nullable. */ - class NonNullableRefType extends TypeAnnotation, TNotNullableRefType { - override predicate isSuffix() { any() } - - override string toString() { result = "!" } - - override int getBit() { result = 2 } - } - - /** An annotation indicating that the type is a nullable reference type. */ - class NullableRefType extends TypeAnnotation, TNullableRefType { - override predicate isSuffix() { any() } - - override string toString() { result = "?" } - - override int getBit() { result = 3 } + string toString() { none() } } /** An annotation indicating that the type is a readonly reference. */ class ReadonlyRefType extends TypeAnnotation, TReadonlyRefType { - override predicate isPrefix() { any() } + override string getPrefix() { result = "readonly " } - override string toString() { result = "readonly " } + override string toString() { result = "readonly ref" } override int getBit() { result = 4 } } /** An annotation indicating that the variable or return is by `ref`. */ class RefTypeAnnotation extends TypeAnnotation, TRefType { - override predicate isPrefix() { any() } + override string getPrefix() { result = "ref " } - override string toString() { result = "ref " } + override string toString() { result = "ref" } override int getBit() { result = 5 } } /** An annotation indicating that the parameter is `out`. */ class OutType extends TypeAnnotation, TOutType { - override predicate isPrefix() { any() } + override string getPrefix() { result = "out " } - override string toString() { result = "out " } + override string toString() { result = "out" } override int getBit() { result = 6 } } - newtype TAnnotations = - TAnnotationFlags(int flags) { - flags = getElementTypeFlags(_) or - flags = getTypeArgumentFlags(_, _) or - flags = getTypeParameterFlags(_, _) + /** + * A structured type annotation representing type nullability. + * For example, `IDictionary?` has nullability `?`. + */ + class Nullability extends TypeAnnotation, TNullability { + @nullability nullability; + + Nullability() { this = TNullability(nullability) } + + override string toString() { result = getMemberString() + getSelfNullability() } + + language[monotonicAggregates] + private string getMemberString() { + if nullability_parent(_, _, nullability) + then + result = "<" + + concat(int i, Nullability child | + nullability_parent(getNullability(child), i, nullability) + | + child.toString(), "," order by i + ) + ">" + else result = "" } - /** A set of annotations on a type. */ + /** + * Gets a string representing the nullability, disregarding child nullability. + * For example, `IDictionary?` has nullability `?`. + */ + string getSelfNullability() { none() } + + override int getBit() { none() } + } + + @nullability getNullability(Nullability n) { n = TNullability(result) } + + private newtype TAnnotations = + TAnnotationFlags(int flags, Nullability n) { + exists(Element e | + flags = getElementTypeFlags(e) and + n = getElementNullability(e) + ) + } or + TAnnotationsNoFlags(Nullability n) + + /** A collection of type annotations. */ class TypeAnnotations extends TAnnotations { - int flags; - - TypeAnnotations() { this = TAnnotationFlags(flags) } - - /** Gets an annotation in this set of annotations. */ - TypeAnnotation getAnAnnotation() { isSet(result.getBit()) } - - private predicate isSet(int bit) { - isBit(bit) and - exists(int mask | mask = getBitMask(bit) | flags.bitAnd(mask) = mask) + /** Gets the nullability of this type annotation. */ + Nullability getNullability() { + this = TAnnotationFlags(_, result) + or + this = TAnnotationsNoFlags(result) } /** Gets text to be displayed before the type. */ string getTypePrefix() { result = concat(TypeAnnotation a | - a = this.getAnAnnotation() and a.isPrefix() + a = this.getAnAnnotation() | - a.toString(), "" order by a.getBit() + a.getPrefix(), "" order by a.getBit() ) } /** Gets text to be displayed after the type. */ string getTypeSuffix() { result = concat(TypeAnnotation a | - a = this.getAnAnnotation() and a.isSuffix() + a = this.getAnAnnotation() | - a.toString(), "" order by a.getBit() + a.getSuffix(), "" order by a.getBit() ) } /** Gets a textual representation of this type annotation. */ - string toString() { result = getTypePrefix() + getTypeSuffix() } + string toString() { result = getTypePrefix() + getNullability() + getTypeSuffix() } + + private int getFlags() { this = TAnnotationFlags(result, _) } + + private predicate isSet(int bit) { + isBit(bit) and + exists(int mask | mask = getBitMask(bit) | this.getFlags().bitAnd(mask) = mask) + } + + /** Gets an annotation in this set of annotations. */ + TypeAnnotation getAnAnnotation() { + isSet(result.getBit()) + or + result = this.getNullability() + } + } + + /** Gets the nullability with no additional flags. */ + Nullability getNoFlagsNullability(TypeAnnotations annotations) { + annotations = TAnnotationsNoFlags(result) + } + + /** + * Gets the `i`th child of type annotations `annotations`. + * This is used to represent structured datatypes, where the structure + * of the type annotation mirrors the structure of the annotated type. + */ + bindingset[i] + TypeAnnotations getChild(TypeAnnotations annotations, int i) { + getNoFlagsNullability(result) = getChildNullability(annotations.getNullability(), i) + } + + /** + * Gets the `i`th child of nullability `n`. + * Returns `n` if the nullability is not explicitly + * stored in the database, since many type annotations will have consistent + * nullability. + */ + bindingset[i] + Nullability getChildNullability(Nullability n, int i) { + if nullability_parent(_, i, getNullability(n)) + then nullability_parent(getNullability(result), i, getNullability(n)) + else result = n + } + + /** + * A type that is "oblivious", either because nullability is not + * applicable, because the code was not compiled in a nullable context, or + * because the C# language version is less than 8. + */ + class ObliviousNullability extends Nullability { + ObliviousNullability() { nullability instanceof @oblivious } + + override string getSelfNullability() { result = "_" } + } + + /** + * A type that is "fully" oblivious. The type itself is oblivious + * and all type arguments are oblivious. + */ + class NoNullability extends ObliviousNullability { + NoNullability() { not nullability_parent(_, _, nullability) } + } + + /** A type with annotated nullablity, `?`. */ + class AnnotatedNullability extends Nullability { + AnnotatedNullability() { nullability instanceof @annotated } + + override string getSelfNullability() { result = "?" } + + override int getBit() { result = 3 } + + override string getSuffix() { result = "?" } + } + + /** + * A ref type not annotated with `?` in a nullable context. + */ + class NotAnnotatedNullability extends Nullability { + NotAnnotatedNullability() { nullability instanceof @not_annotated } + + override string getSelfNullability() { result = "!" } + + override int getBit() { result = 2 } + + override string getSuffix() { result = "!" } } /** Holds if the type annotations `annotations` apply to type `type` on element `element`. */ predicate elementTypeAnnotations( @has_type_annotation element, Type type, TypeAnnotations annotations ) { - annotations = TAnnotationFlags(getElementTypeFlags(element)) and + ( + annotations = TAnnotationFlags(getElementTypeFlags(element), getElementNullability(element)) + or + not exists(getElementTypeFlags(element)) and + getNoFlagsNullability(annotations) = getElementNullability(element) + ) and ( type = element.(Assignable).getType() or @@ -131,8 +234,6 @@ private module Annotations { or type = element.(Expr).getType() or - type = element.(ArrayType).getElementType() - or type = element.(DelegateType).getReturnType() ) } @@ -147,32 +248,49 @@ private int getBitMask(int bit) { } private int getElementTypeFlags(@has_type_annotation element) { - result = sum(int b | type_annotation(element, b) | b) + result = strictsum(int b | type_annotation(element, b) | b) } -private int getTypeArgumentFlags(ConstructedGeneric generic, int argument) { - exists(generic.getTypeArgument(argument)) and - result = sum(int b | type_argument_annotation(generic, argument, b) | b) +private Annotations::Nullability getTypeParameterNullability( + TypeParameterConstraints constraints, Type type +) { + if specific_type_parameter_nullability(constraints, getTypeRef(type), _) + then + specific_type_parameter_nullability(constraints, getTypeRef(type), + Annotations::getNullability(result)) + else ( + specific_type_parameter_constraints(constraints, getTypeRef(type)) and + result instanceof Annotations::NoNullability + ) } -private int getTypeParameterFlags(TypeParameterConstraints constraints, Type type) { - specific_type_parameter_annotation(constraints, getTypeRef(type), _) and - result = sum(int b | specific_type_parameter_annotation(constraints, getTypeRef(type), b) | b) +private Annotations::Nullability getElementNullability(@has_type_annotation element) { + if type_nullability(element, _) + then type_nullability(element, Annotations::getNullability(result)) + else result instanceof Annotations::NoNullability } private newtype TAnnotatedType = TAnnotatedTypeNullability(Type type, Annotations::TypeAnnotations annotations) { Annotations::elementTypeAnnotations(_, type, annotations) or - exists(ConstructedGeneric c, int i | - type = c.getTypeArgument(i) and - annotations = Annotations::TAnnotationFlags(getTypeArgumentFlags(c, i)) + exists(AnnotatedConstructedType c, int i | + type = c.getType().(ConstructedType).getTypeArgument(i) and + annotations = Annotations::getChild(c.getAnnotations(), i) ) or - annotations = Annotations::TAnnotationFlags(getTypeParameterFlags(_, type)) + Annotations::getNoFlagsNullability(annotations) = getTypeParameterNullability(_, type) + or + // All types have at least one annotated type + Annotations::getNoFlagsNullability(annotations) instanceof Annotations::NoNullability + or + exists(AnnotatedArrayType at | + type = at.getType().(ArrayType).getElementType() and + annotations = Annotations::getChild(at.getAnnotations(), 0) + ) } -/** A type with additional information. */ +/** A type with additional type information. */ class AnnotatedType extends TAnnotatedType { Type type; Annotations::TypeAnnotations annotations; @@ -192,7 +310,7 @@ class AnnotatedType extends TAnnotatedType { * Gets the unannotated type, for example `string` in `string?`. * Note that this might be a nullable value type (`System.Nullable`). */ - final Type getType() { result = type } + Type getType() { result = type } /** * Gets the underlying type, for example `string` in `string?` @@ -206,7 +324,7 @@ class AnnotatedType extends TAnnotatedType { } /** Gets the type annotation set of this annotated type. */ - private Annotations::TypeAnnotations getAnnotations() { result = annotations } + Annotations::TypeAnnotations getAnnotations() { result = annotations } /** Gets a type annotation of this annotated type. */ private Annotations::TypeAnnotation getAnAnnotation() { @@ -214,12 +332,12 @@ class AnnotatedType extends TAnnotatedType { } /** Holds if the type is a non-nullable reference, for example, `string` in a nullable-enabled context. */ - predicate isNonNullableRefType() { - this.getAnAnnotation() instanceof Annotations::NonNullableRefType - } + predicate isNonNullableRefType() { this.getAnAnnotation() instanceof Annotations::NoNullability } /** Holds if the type is a nullable reference, for example `string?`. */ - predicate isNullableRefType() { this.getAnAnnotation() instanceof Annotations::NullableRefType } + predicate isNullableRefType() { + this.getAnAnnotation() instanceof Annotations::AnnotatedNullability + } /** Holds if the type is a `ref`, for example the return type of `ref int F()`. */ predicate isRef() { this.getAnAnnotation() instanceof Annotations::RefTypeAnnotation } @@ -233,14 +351,71 @@ class AnnotatedType extends TAnnotatedType { /** Holds if this annotated type applies to element `e`. */ predicate appliesTo(Element e) { Annotations::elementTypeAnnotations(e, type, annotations) } - /** Holds if this annotated type applies to type parameter constraints `constraints`. */ - predicate appliesToTypeConstraint(TypeParameterConstraints constraints) { - annotations = Annotations::TAnnotationFlags(getTypeParameterFlags(constraints, type)) + /** Holds if this annotated type is the `i`th type argument of constructed generic 'g'. */ + predicate appliesToTypeArgument(ConstructedGeneric g, int i) { + Annotations::getNoFlagsNullability(this.getAnnotations()) = Annotations::getChildNullability(getElementNullability(g), + i) and + this.getType() = g.getTypeArgument(i) } - /** Holds if this annotated type applies to the `i`th type argument of constructed generic `g`. */ - predicate appliesToTypeArgument(ConstructedGeneric g, int i) { - type = g.getTypeArgument(i) and - this.getAnnotations() = Annotations::TAnnotationFlags(getTypeArgumentFlags(g, i)) + /** Holds if this annotated type applies to type parameter constraints `constraints`. */ + predicate appliesToTypeConstraint(TypeParameterConstraints constraints) { + Annotations::getNoFlagsNullability(this.getAnnotations()) = getTypeParameterNullability(constraints, + type) + } +} + +/** An array type with additional type information. */ +class AnnotatedArrayType extends AnnotatedType { + override ArrayType type; + + /** Gets the annotated element type of this array, for example `int?` in `int?[]`. */ + final AnnotatedType getElementType() { + result.getType() = type.getElementType() and + result.getAnnotations() = Annotations::getChild(this.getAnnotations(), 0) + } + + private string getDimensionString(AnnotatedType elementType) { + exists(AnnotatedType et, string res | + et = getElementType() and + res = type.getArraySuffix() and + if et.getUnderlyingType() instanceof ArrayType and not et.isNullableRefType() + then result = res + et.(AnnotatedArrayType).getDimensionString(elementType) + else ( + result = res and elementType = et + ) + ) + } + + override string toString() { + exists(AnnotatedType elementType | + result = annotations.getTypePrefix() + elementType.toString() + + this.getDimensionString(elementType) + annotations.getTypeSuffix() + ) + } +} + +/** A constructed type with additional type information. */ +class AnnotatedConstructedType extends AnnotatedType { + override ConstructedType type; + + /** Gets the `i`th type argument of this constructed type. */ + AnnotatedType getTypeArgument(int i) { + result.getType() = type.getTypeArgument(i) and + result.getAnnotations() = Annotations::getChild(this.getAnnotations(), i) + } + + override string toString() { + result = annotations.getTypePrefix() + type.getUnboundGeneric().getNameWithoutBrackets() + "<" + + this.getTypeArgumentsString() + ">" + annotations.getTypeSuffix() + } + + language[monotonicAggregates] + private string getTypeArgumentsString() { + result = concat(int i | + exists(this.getTypeArgument(i)) + | + this.getTypeArgument(i).toString(), ", " order by i + ) } } diff --git a/csharp/ql/src/semmle/code/csharp/Generics.qll b/csharp/ql/src/semmle/code/csharp/Generics.qll index cab7a520df4..29fd083aec5 100644 --- a/csharp/ql/src/semmle/code/csharp/Generics.qll +++ b/csharp/ql/src/semmle/code/csharp/Generics.qll @@ -370,21 +370,21 @@ class ConstructedType extends ValueOrRefType, ConstructedGeneric { override UnboundGenericType getUnboundGeneric() { constructed_generic(this, getTypeRef(result)) } - language[monotonicAggregates] - private string annotatedTypeArgumentsToString() { - result = concat(int i | - exists(this.getAnnotatedTypeArgument(i)) - | - this.getAnnotatedTypeArgument(i).toString(), ", " order by i - ) - } - override string toStringWithTypes() { - result = getUnboundGeneric().getNameWithoutBrackets() + "<" + - this.annotatedTypeArgumentsToString() + ">" + result = getUnboundGeneric().getNameWithoutBrackets() + "<" + this.getTypeArgumentsString() + + ">" } final override Type getChild(int n) { result = getTypeArgument(n) } + + language[monotonicAggregates] + private string getTypeArgumentsString() { + result = concat(int i | + exists(this.getTypeArgument(i)) + | + this.getTypeArgument(i).toString(), ", " order by i + ) + } } /** diff --git a/csharp/ql/src/semmle/code/csharp/Type.qll b/csharp/ql/src/semmle/code/csharp/Type.qll index d16f9eb4130..b1ab4865540 100644 --- a/csharp/ql/src/semmle/code/csharp/Type.qll +++ b/csharp/ql/src/semmle/code/csharp/Type.qll @@ -821,9 +821,6 @@ class ArrayType extends DotNet::ArrayType, RefType, @array_type { /** Gets the element type of this array, for example `int` in `int[]`. */ override Type getElementType() { array_element_type(this, _, _, getTypeRef(result)) } - /** Gets the annotated element type of this array, for example `int?` in `int?[]`. */ - final AnnotatedType getAnnotatedElementType() { result.appliesTo(this) } - /** Holds if this array type has the same shape (dimension and rank) as `that` array type. */ predicate hasSameShapeAs(ArrayType that) { getDimension() = that.getDimension() and @@ -835,12 +832,18 @@ class ArrayType extends DotNet::ArrayType, RefType, @array_type { if i = getRank() - 1 then result = "" else result = "," + getRankString(i + 1) } - private string getDimensionString(AnnotatedType elementType) { - exists(AnnotatedType et, string res | - et = getAnnotatedElementType() and - res = "[" + getRankString(0) + "]" and - if et.getUnderlyingType() instanceof ArrayType and not et.isNullableRefType() - then result = res + et.getUnderlyingType().(ArrayType).getDimensionString(elementType) + /** + * INTERNAL: Do not use. + * Gets a string representing the array suffix, for example `[,,,]`. + */ + string getArraySuffix() { result = "[" + getRankString(0) + "]" } + + private string getDimensionString(Type elementType) { + exists(Type et, string res | + et = this.getElementType() and + res = getArraySuffix() and + if et instanceof ArrayType + then result = res + et.(ArrayType).getDimensionString(elementType) else ( result = res and elementType = et ) @@ -848,7 +851,7 @@ class ArrayType extends DotNet::ArrayType, RefType, @array_type { } override string toStringWithTypes() { - exists(AnnotatedType elementType | + exists(Type elementType | result = elementType.toString() + this.getDimensionString(elementType) ) } @@ -905,7 +908,7 @@ class UnknownType extends Type, @unknown_type { } */ class TupleType extends ValueType, @tuple_type { /** Gets the underlying type of this tuple, which is of type `System.ValueTuple`. */ - ConstructedStruct getUnderlyingType() { tuple_underlying_type(this, result) } + ConstructedStruct getUnderlyingType() { tuple_underlying_type(this, getTypeRef(result)) } /** * Gets the `n`th element of this tuple, indexed from 0. diff --git a/csharp/ql/src/semmlecode.csharp.dbscheme b/csharp/ql/src/semmlecode.csharp.dbscheme index f93793ee5f6..df0118d2d28 100644 --- a/csharp/ql/src/semmlecode.csharp.dbscheme +++ b/csharp/ql/src/semmlecode.csharp.dbscheme @@ -157,28 +157,28 @@ compilation_finished( externalDefects( unique int id: @externalDefect, - varchar(900) queryPath: string ref, + string queryPath: string ref, int location: @location ref, - varchar(900) message: string ref, + string message: string ref, float severity: float ref); externalMetrics( unique int id: @externalMetric, - varchar(900) queryPath: string ref, + string queryPath: string ref, int location: @location ref, float value: float ref); externalData( int id: @externalDataElement, - varchar(900) path: string ref, + string path: string ref, int column: int ref, - varchar(900) value: string ref); + string value: string ref); snapshotDate( unique date snapshotDate: date ref); sourceLocationPrefix( - varchar(900) prefix: string ref); + string prefix: string ref); /* * Duplicate code @@ -186,12 +186,12 @@ sourceLocationPrefix( duplicateCode( unique int id: @duplication, - varchar(900) relativePath: string ref, + string relativePath: string ref, int equivClass: int ref); similarCode( unique int id: @similarity, - varchar(900) relativePath: string ref, + string relativePath: string ref, int equivClass: int ref); @duplication_or_similarity = @duplication | @similarity @@ -244,7 +244,7 @@ locations_default( @sourceline = @file | @callable | @xmllocatable; numlines( - unique int element_id: @sourceline ref, + int element_id: @sourceline ref, int num_lines: int ref, int num_code: int ref, int num_comment: int ref); @@ -252,9 +252,9 @@ numlines( assemblies( unique int id: @assembly, int file: @file ref, - varchar(900) fullname: string ref, - varchar(900) name: string ref, - varchar(900) version: string ref); + string fullname: string ref, + string name: string ref, + string version: string ref); /* fromSource(0) = unknown, @@ -263,15 +263,15 @@ assemblies( */ files( unique int id: @file, - varchar(900) name: string ref, - varchar(900) simple: string ref, - varchar(900) ext: string ref, + string name: string ref, + string simple: string ref, + string ext: string ref, int fromSource: int ref); folders( unique int id: @folder, - varchar(900) name: string ref, - varchar(900) simple: string ref); + string name: string ref, + string simple: string ref); @container = @folder | @file ; @@ -291,7 +291,7 @@ file_extraction_mode( namespaces( unique int id: @namespace, - varchar(900) name: string ref); + string name: string ref); namespace_declarations( unique int id: @namespace_declaration, @@ -330,7 +330,7 @@ using_directive_location( types( unique int id: @type, int kind: int ref, - varchar(900) name: string ref); + string name: string ref); case @type.kind of 1 = @bool_type @@ -378,10 +378,10 @@ case @type.kind of typerefs( unique int id: @typeref, - varchar(900) name: string ref); + string name: string ref); typeref_type( - unique int id: @typeref ref, + int id: @typeref ref, unique int typeId: @type ref); @type_or_ref = @type | @typeref; @@ -424,7 +424,7 @@ type_location( tuple_underlying_type( unique int tuple: @tuple_type ref, - int struct: @struct_type ref); + int struct: @type_or_ref ref); #keyset[tuple, index] tuple_element( @@ -452,7 +452,7 @@ type_mention_location( unique int id: @type_mention ref, int loc: @location ref); -@has_type_annotation = @assignable | @type_parameter | @callable | @array_type | @expr | @delegate_type; +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic; /** * A direct annotation on an entity, for example `string? x;`. @@ -472,8 +472,18 @@ type_mention_location( */ type_annotation(int id: @has_type_annotation ref, int annotation: int ref); -/** The annotation of type arguments of a constructed type or method. */ -type_argument_annotation(int constructedgeneric: @generic ref, int position: int ref, int annotation: int ref); +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref) /** GENERICS **/ @@ -517,10 +527,10 @@ specific_type_parameter_constraints( int id: @type_parameter_constraints ref, int base_id: @type_or_ref ref); -specific_type_parameter_annotation( +specific_type_parameter_nullability( int id: @type_parameter_constraints ref, int base_id: @type_or_ref ref, - int annotation: int ref); + int nullability: @nullability ref); /** MODIFIERS */ @@ -530,7 +540,7 @@ specific_type_parameter_annotation( modifiers( unique int id: @modifier, - varchar(900) name: string ref); + string name: string ref); has_modifiers( int id: @modifiable_direct ref, @@ -548,7 +558,7 @@ compiler_generated(unique int id: @modifiable_direct ref); exprorstmt_name( unique int parent_id: @named_exprorstmt ref, - varchar(900) name: string ref); + string name: string ref); nested_types( unique int id: @type ref, @@ -557,7 +567,7 @@ nested_types( properties( unique int id: @property, - varchar(900) name: string ref, + string name: string ref, int declaring_type_id: @type ref, int type_id: @type_or_ref ref, int unbound_id: @property ref); @@ -568,7 +578,7 @@ property_location( indexers( unique int id: @indexer, - varchar(900) name: string ref, + string name: string ref, int declaring_type_id: @type ref, int type_id: @type_or_ref ref, int unbound_id: @indexer ref); @@ -580,7 +590,7 @@ indexer_location( accessors( unique int id: @accessor, int kind: int ref, - varchar(900) name: string ref, + string name: string ref, int declaring_member_id: @member ref, int unbound_id: @accessor ref); @@ -595,7 +605,7 @@ accessor_location( events( unique int id: @event, - varchar(900) name: string ref, + string name: string ref, int declaring_type_id: @type ref, int type_id: @type_or_ref ref, int unbound_id: @event ref); @@ -607,7 +617,7 @@ event_location( event_accessors( unique int id: @event_accessor, int kind: int ref, - varchar(900) name: string ref, + string name: string ref, int declaring_event_id: @event ref, int unbound_id: @event_accessor ref); @@ -622,8 +632,8 @@ event_accessor_location( operators( unique int id: @operator, - varchar(900) name: string ref, - varchar(900) symbol: string ref, + string name: string ref, + string symbol: string ref, int declaring_type_id: @type ref, int type_id: @type_or_ref ref, int unbound_id: @operator ref); @@ -633,8 +643,8 @@ operator_location( int loc: @location ref); constant_value( - unique int id: @variable ref, - varchar(900) value: string ref); + int id: @variable ref, + string value: string ref); /** CALLABLES **/ @@ -644,7 +654,7 @@ constant_value( methods( unique int id: @method, - varchar(900) name: string ref, + string name: string ref, int declaring_type_id: @type ref, int type_id: @type_or_ref ref, int unbound_id: @method ref); @@ -655,7 +665,7 @@ method_location( constructors( unique int id: @constructor, - varchar(900) name: string ref, + string name: string ref, int declaring_type_id: @type ref, int unbound_id: @constructor ref); @@ -665,7 +675,7 @@ constructor_location( destructors( unique int id: @destructor, - varchar(900) name: string ref, + string name: string ref, int declaring_type_id: @type ref, int unbound_id: @destructor ref); @@ -674,7 +684,7 @@ destructor_location( int loc: @location ref); overrides( - unique int id: @callable ref, + int id: @callable ref, int base_id: @callable ref); explicitly_implements( @@ -683,7 +693,7 @@ explicitly_implements( local_functions( unique int id: @local_function, - varchar(900) name: string ref, + string name: string ref, int return_type: @type ref, int unbound_id: @local_function ref); @@ -700,7 +710,7 @@ local_function_stmts( fields( unique int id: @field, int kind: int ref, - varchar(900) name: string ref, + string name: string ref, int declaring_type_id: @type ref, int type_id: @type_or_ref ref, int unbound_id: @field ref); @@ -717,7 +727,7 @@ field_location( localvars( unique int id: @local_variable, int kind: int ref, - varchar(900) name: string ref, + string name: string ref, int implicitly_typed: int ref /* 0 = no, 1 = yes */, int type_id: @type_or_ref ref, int parent_id: @local_var_decl_expr ref); @@ -738,7 +748,7 @@ localvar_location( #keyset[index, parent_id] params( unique int id: @parameter, - varchar(900) name: string ref, + string name: string ref, int type_id: @type_or_ref ref, int index: int ref, int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ @@ -1075,7 +1085,7 @@ expr_compiler_generated( expr_value( unique int id: @expr ref, - varchar(900) value: string ref); + string value: string ref); expr_call( unique int caller_id: @expr ref, @@ -1093,7 +1103,7 @@ expr_location( dynamic_member_name( unique int id: @late_bindable_expr ref, - varchar(900) name: string ref); + string name: string ref); @qualifiable_expr = @member_access_expr | @method_invocation_expr @@ -1109,7 +1119,7 @@ expr_argument( expr_argument_name( unique int id: @expr ref, - varchar(900) name: string ref); + string name: string ref); /** CONTROL/DATA FLOW **/ @@ -1119,18 +1129,18 @@ expr_argument_name( xmlEncoding ( unique int id: @file ref, - varchar(900) encoding: string ref); + string encoding: string ref); xmlDTDs( unique int id: @xmldtd, - varchar(900) root: string ref, - varchar(900) publicId: string ref, - varchar(900) systemId: string ref, + string root: string ref, + string publicId: string ref, + string systemId: string ref, int fileid: @file ref); xmlElements( unique int id: @xmlelement, - varchar(900) name: string ref, + string name: string ref, int parentid: @xmlparent ref, int idx: int ref, int fileid: @file ref); @@ -1138,15 +1148,15 @@ xmlElements( xmlAttrs( unique int id: @xmlattribute, int elementid: @xmlelement ref, - varchar(900) name: string ref, - varchar(3600) value: string ref, + string name: string ref, + string value: string ref, int idx: int ref, int fileid: @file ref); xmlNs( int id: @xmlnamespace, - varchar(900) prefixName: string ref, - varchar(900) URI: string ref, + string prefixName: string ref, + string URI: string ref, int fileid: @file ref); xmlHasNs( @@ -1156,13 +1166,13 @@ xmlHasNs( xmlComments( unique int id: @xmlcomment, - varchar(3600) text: string ref, + string text: string ref, int parentid: @xmlparent ref, int fileid: @file ref); xmlChars( unique int id: @xmlcharacters, - varchar(3600) text: string ref, + string text: string ref, int parentid: @xmlparent ref, int idx: int ref, int isCDATA: int ref, @@ -1182,8 +1192,8 @@ xmllocations( commentline( unique int id: @commentline, int kind: int ref, - varchar(800) text: string ref, - varchar(800) rawtext: string ref); + string text: string ref, + string rawtext: string ref); case @commentline.kind of 0 = @singlelinecomment @@ -1236,22 +1246,22 @@ asp_code_inline(unique int code: @asp_code ref); asp_directive_attribute( int directive: @asp_directive ref, int index: int ref, - varchar(1000) name: string ref, + string name: string ref, int value: @asp_quoted_string ref); asp_directive_name( unique int directive: @asp_directive ref, - varchar(1000) name: string ref); + string name: string ref); asp_element_body( unique int element: @asp_element ref, - varchar(1000) body: string ref); + string body: string ref); asp_tag_attribute( int tag: @asp_open_tag ref, int index: int ref, - varchar(1000) name: string ref, + string name: string ref, int attribute: @asp_attribute ref); asp_tag_name( unique int tag: @asp_open_tag ref, - varchar(1000) name: string ref); + string name: string ref); asp_tag_isempty(int tag: @asp_open_tag ref); /* Common Intermediate Language - CIL */ @@ -1606,7 +1616,7 @@ cil_access( cil_value( unique int instruction: @cil_literal ref, - varchar(900) value: string ref); + string value: string ref); #keyset[instruction, index] cil_switch( @@ -1639,7 +1649,7 @@ case @cil_type.kind of cil_type( unique int id: @cil_type, - varchar(900) name: string ref, + string name: string ref, int kind: int ref, int parent: @cil_type_container ref, int sourceDecl: @cil_type ref); @@ -1655,7 +1665,7 @@ cil_array_type( cil_method( unique int id: @cil_method, - varchar(900) name: string ref, + string name: string ref, int parent: @cil_type ref, int return_type: @cil_type ref); @@ -1676,7 +1686,7 @@ cil_implements( cil_field( unique int id: @cil_field, int parent: @cil_type ref, - varchar(900) name: string ref, + string name: string ref, int field_type: @cil_type ref); @cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; @@ -1713,13 +1723,13 @@ cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); cil_property( unique int id: @cil_property, int parent: @cil_type ref, - varchar(900) name: string ref, + string name: string ref, int property_type: @cil_type ref); #keyset[parent, name] cil_event(unique int id: @cil_event, int parent: @cil_type ref, - varchar(900) name: string ref, + string name: string ref, int event_type: @cil_type ref); #keyset[impl, index] @@ -1817,14 +1827,14 @@ cil_attribute( #keyset[attribute_id, param] cil_attribute_named_argument( int attribute_id: @cil_attribute ref, - varchar(100) param: string ref, - varchar(900) value: string ref); + string param: string ref, + string value: string ref); #keyset[attribute_id, index] cil_attribute_positional_argument( int attribute_id: @cil_attribute ref, int index: int ref, - varchar(900) value: string ref); + string value: string ref); // Common .Net data model covering both C# and CIL diff --git a/csharp/ql/src/semmlecode.csharp.dbscheme.stats b/csharp/ql/src/semmlecode.csharp.dbscheme.stats index 5e5b32342cc..08b4255824e 100644 --- a/csharp/ql/src/semmlecode.csharp.dbscheme.stats +++ b/csharp/ql/src/semmlecode.csharp.dbscheme.stats @@ -1,15 +1,15 @@ @compilation -641 +1057 @diagnostic -7036 +108998 @extractor_message -264 +55 @externalDefect @@ -21,47 +21,47 @@ @externalDataElement -8 +10 @duplication -13480 +18936 @similarity -124007 +141055 @location_default -7339237 +10628591 @assembly -1870 +2760 @file -15550 +20987 @folder -4611 +6292 @namespace -5457 +5700 @namespace_declaration -14700 +19007 @using_namespace_directive -85929 +86694 @using_static_directive -253 +321 @bool_type @@ -117,23 +117,23 @@ @enum_type -8356 +11359 @struct_type -37594 +43620 @class_type -142002 +142562 @interface_type -176859 +206665 @delegate_type -49262 +55958 @null_type @@ -141,19 +141,19 @@ @type_parameter -80545 +80353 @pointer_type -272 +456 @nullable_type -2027 +2279 @array_type -7951 +9835 @void_type @@ -173,7 +173,7 @@ @tuple_type -2476 +2682 @uint_ptr_type @@ -185,19 +185,31 @@ @typeref -427553 +462875 @attribute -120784 +144787 @type_mention -1477122 +2181438 + + +@oblivious +57 + + +@not_annotated +49 + + +@annotated +11 @type_parameter_constraints -330908 +363573 @modifier @@ -205,531 +217,535 @@ @property -277986 +326745 @indexer -23786 +29544 @getter -291486 +338867 @setter -45608 +54213 @event -6046 +7794 @add_event_accessor -6013 +6531 @remove_event_accessor -6013 +6531 @operator -14355 +18266 @method -1076961 +1183684 @constructor -154830 +171824 @destructor -461 +569 @local_function -1174 +1225 @addressable_field -160511 +187149 @constant -122762 +147707 @addressable_local_variable -238799 +289247 @local_constant -1223 +1741 @local_variable_ref -11 +70 @parameter -1873820 +2097984 @block_stmt -262647 +470589 @expr_stmt -328762 +484425 @if_stmt -71396 +154912 @switch_stmt -5510 +8021 @while_stmt -1696 +4300 @do_stmt -179 +825 @for_stmt -3370 +8294 @foreach_stmt -9035 +10100 @break_stmt -7981 +16413 @continue_stmt -1828 +3174 @goto_stmt -115 +1297 @goto_case_stmt -95 +328 @goto_default_stmt -148 +266 @throw_stmt -10708 +63215 @return_stmt -107422 +166461 @yield_stmt -1155 +1269 @try_stmt -2439 +6192 @checked_stmt -8 +241 @unchecked_stmt -76 +169 @lock_stmt -656 +1789 @using_block_stmt -5182 +4219 @var_decl_stmt -213042 +253667 @const_decl_stmt -1222 +1735 @empty_stmt -149 +244 @unsafe_stmt -22 +342 @fixed_stmt -54 +1207 @label_stmt -69 +448 @catch -2055 +4524 @case_stmt -34567 +53221 @local_function_stmt -1305 +1335 @using_decl_stmt -17 +18 @bool_literal_expr -51125 +76358 @char_literal_expr -6799 +15164 @decimal_literal_expr -126 +100 @int_literal_expr -183666 +275065 @long_literal_expr -83 +193 @uint_literal_expr -239 +3178 @ulong_literal_expr -165 +249 @float_literal_expr -64 +627 @double_literal_expr -319 +629 @string_literal_expr -342808 +372602 @null_literal_expr -58357 +139157 @this_access_expr -266101 +461644 @base_access_expr -2766 +4040 @local_variable_access_expr -756875 +991740 @parameter_access_expr -348197 +572331 @field_access_expr -387345 +711987 @property_access_expr -331895 +424606 @method_access_expr -5754 +7195 @event_access_expr -1952 +1273 @indexer_access_expr -20850 +30564 @array_access_expr -10320 +24812 @type_access_expr -496066 +706800 @typeof_expr -7384 +24651 @method_invocation_expr -726337 +873671 @delegate_invocation_expr -2920 +4434 @operator_invocation_expr -30533 +40914 @cast_expr -138001 +210715 @object_creation_expr -62254 +90994 @explicit_delegate_creation_expr -200 +1143 @implicit_delegate_creation_expr -3424 +3030 @array_creation_expr -17336 +21192 @default_expr -5647 +8491 @plus_expr -40 +64 @minus_expr -2712 +5824 @bit_not_expr -257 +801 @log_not_expr -14848 +28058 @post_incr_expr -4717 +12241 @post_decr_expr -363 +1467 @pre_incr_expr -321 +1297 @pre_decr_expr -48 +287 @mul_expr -700 +4200 @div_expr -278 +1261 @rem_expr -174 +583 @add_expr -15490 +29468 @sub_expr -3359 +11073 @lshift_expr -252 +1825 @rshift_expr -160 +1182 @lt_expr -4871 +15563 @gt_expr -4360 +10285 @le_expr -1131 +3891 @ge_expr -2035 +5876 @eq_expr -38255 +73546 @ne_expr -24659 +52803 @bit_and_expr -1845 +6565 @bit_xor_expr -165 +497 @bit_or_expr -3840 +12259 @log_and_expr -16596 +30520 @log_or_expr -11990 +22295 @is_expr -4906 +8506 @as_expr -4522 +6480 @null_coalescing_expr -2632 +4436 @conditional_expr -8632 +13572 @simple_assign_expr -87603 +196499 @assign_add_expr -1029 +3401 @assign_sub_expr -111 +634 @assign_mul_expr -20 +131 @assign_div_expr -4 +54 -@assign_and_expr -152 - - -@assign_xor_expr +@assign_rem_expr 8 +@assign_and_expr +382 + + +@assign_xor_expr +105 + + @assign_or_expr -687 +1858 @assign_lshift_expr -6 +90 @assign_rshift_expr -7 +119 @object_init_expr -4760 +3022 @collection_init_expr -1260 +911 @array_init_expr -16761 +17916 @checked_expr -37 +403 @unchecked_expr -255 +2931 @constructor_init_expr -5737 +9066 @add_event_expr -736 +672 @remove_event_expr -306 +334 @local_var_decl_expr -240135 +291172 @lambda_expr -23385 +16045 @anonymous_method_expr -118 +174 @dynamic_element_access_expr @@ -737,63 +753,55 @@ @dynamic_member_access_expr -444 +89 @pointer_indirection_expr -54 +3240 @address_of_expr -31 +967 @sizeof_expr -120 +1106 @await_expr -26351 +27481 @nameof_expr -7589 - - -@namespace_access_expr -1000 +18864 @interpolated_string_expr -3470 - - -@unknown_expr -22558 +5023 @throw_expr -381 +931 @tuple_expr -1841 +2261 @local_function_invocation_expr -2365 +2434 @ref_expr -31 +145 @discard_expr -372 +544 @switch_expr -34 +35 @recursive_pattern_expr @@ -809,15 +817,19 @@ @switch_case_expr -135 +148 @assign_coalesce_expr 14 -@assign_rem_expr -0 +@suppress_nullable_warning_expr +428 + + +@namespace_access_expr +12 @par_expr @@ -828,6 +840,10 @@ 0 +@unknown_expr +0 + + @range_expr 0 @@ -836,20 +852,16 @@ 0 -@suppress_nullable_warning_expr -0 - - @xmldtd 2 @xmlelement -3426 +1226 @xmlattribute -5138 +1785 @xmlnamespace @@ -857,63 +869,63 @@ @xmlcomment -300 +152 @xmlcharacters -826 +238 @singlelinecomment -190700 +305420 @xmldoccomment -155568 +210408 @multilinecomment -2025 +10871 @commentblock -142586 +216571 @asp_close_tag -1542 - - -@asp_code -244 +22 @asp_comment -14 - - -@asp_data_binding -44 +5 @asp_directive -243 +3 @asp_open_tag -1920 +28 @asp_quoted_string -4545 +31 @asp_text -3522 +58 @asp_xml_directive -16 +1 + + +@asp_code +0 + + +@asp_data_binding +0 @cil_arglist @@ -921,31 +933,31 @@ @cil_ceq -71085 +150958 @cil_cgt -5097 +14265 @cil_cgt_un -29102 +58842 @cil_clt -6821 +21999 @cil_clt_un -152 +760 @cil_ldftn -31039 +34640 @cil_ldvirtftn -452 +572 @cil_ldarg @@ -965,219 +977,219 @@ @cil_localloc -158 +1296 @cil_endfilter -742 +901 @cil_volatile -4322 +8933 @cil_initobj -42348 +50442 @cil_constrained -10563 +13699 @cil_rethrow -1557 +2702 @cil_sizeof -509 +1663 @cil_refanytype -3 +9 @cil_readonly -22 +55 @cil_stsfld -39335 +50535 @cil_stobj -3560 +5663 @cil_conv_ovf_i1_un -11 +12 @cil_conv_ovf_i2_un -9 - - -@cil_conv_ovf_i4_un -18 - - -@cil_conv_ovf_i8_un -9 - - -@cil_conv_ovf_u1_un -13 - - -@cil_conv_ovf_u2_un -9 - - -@cil_conv_ovf_u4_un -7 - - -@cil_conv_ovf_i_un -27 - - -@cil_conv_ovf_u_un -1 - - -@cil_box -34001 - - -@cil_newarr -30964 - - -@cil_ldlen -16074 - - -@cil_ldelema -3250 - - -@cil_ldelem_i1 -16 - - -@cil_ldelem_u1 -1746 - - -@cil_ldelem_i2 -39 - - -@cil_ldelem_u2 -716 - - -@cil_ldelem_i4 -1404 - - -@cil_ldelem_u4 -249 - - -@cil_ldelem_i8 -156 - - -@cil_ldelem_i -30 - - -@cil_ldelem_r4 -6 - - -@cil_ldelem_r8 -72 - - -@cil_ldelem_ref -8789 - - -@cil_stelem_i -28 - - -@cil_stelem_i1 -2283 - - -@cil_stelem_i2 -2131 - - -@cil_stelem_i4 -1186 - - -@cil_stelem_i8 -82 - - -@cil_stelem_r4 -7 - - -@cil_stelem_r8 -49 - - -@cil_stelem_ref -52243 - - -@cil_ldelem -1244 - - -@cil_stelem -2784 - - -@cil_unbox_any -7679 - - -@cil_conv_ovf_i1 -16 - - -@cil_conv_ovf_u1 -74 - - -@cil_conv_ovf_i2 10 +@cil_conv_ovf_i4_un +46 + + +@cil_conv_ovf_i8_un +18 + + +@cil_conv_ovf_u1_un +16 + + +@cil_conv_ovf_u2_un +11 + + +@cil_conv_ovf_u4_un +12 + + +@cil_conv_ovf_i_un +30 + + +@cil_conv_ovf_u_un +3 + + +@cil_box +49494 + + +@cil_newarr +42488 + + +@cil_ldlen +29621 + + +@cil_ldelema +7817 + + +@cil_ldelem_i1 +43 + + +@cil_ldelem_u1 +3997 + + +@cil_ldelem_i2 +96 + + +@cil_ldelem_u2 +2501 + + +@cil_ldelem_i4 +3022 + + +@cil_ldelem_u4 +725 + + +@cil_ldelem_i8 +271 + + +@cil_ldelem_i +56 + + +@cil_ldelem_r4 +80 + + +@cil_ldelem_r8 +136 + + +@cil_ldelem_ref +17540 + + +@cil_stelem_i +51 + + +@cil_stelem_i1 +4466 + + +@cil_stelem_i2 +3032 + + +@cil_stelem_i4 +2382 + + +@cil_stelem_i8 +112 + + +@cil_stelem_r4 +48 + + +@cil_stelem_r8 +68 + + +@cil_stelem_ref +72262 + + +@cil_ldelem +2491 + + +@cil_stelem +5239 + + +@cil_unbox_any +12659 + + +@cil_conv_ovf_i1 +27 + + +@cil_conv_ovf_u1 +116 + + +@cil_conv_ovf_i2 +34 + + @cil_conv_ovf_u2 -36 +73 @cil_conv_ovf_i4 -25 +97 @cil_conv_ovf_u4 -37 +43 @cil_conv_ovf_i8 -5 +13 @cil_conv_ovf_u8 -20 +46 @cil_mkrefany @@ -1185,23 +1197,23 @@ @cil_ldtoken -16408 +30884 @cil_conv_u2 -1623 +3231 @cil_conv_u1 -2397 +5205 @cil_conv_i -2539 +6279 @cil_conv_ovf_i -83 +151 @cil_conv_ovf_u @@ -1209,531 +1221,531 @@ @cil_add_ovf -576 +1079 @cil_add_ovf_un -67 +107 @cil_mul_ovf -112 +302 @cil_mul_ovf_un -160 +572 @cil_sub_ovf -127 +197 @cil_sub_ovf_un -16 +20 @cil_endfinally -27093 +36918 @cil_leave -12636 +16770 @cil_leave_s -52174 +71780 @cil_stind_i -170 +372 @cil_conv_u -2784 +11293 @cil_nop -421589 +1058352 @cil_ldarg_0 -1219505 +1761439 @cil_ldarg_1 -470021 +666052 @cil_ldarg_2 -179471 +260506 @cil_ldarg_3 -87409 +124504 @cil_ldloc_0 -370059 +552030 @cil_ldloc_1 -198298 +295756 @cil_ldloc_2 -132619 +198557 @cil_ldloc_3 -89670 +138205 @cil_stloc_0 -249999 +366180 @cil_stloc_1 -128061 +199128 @cil_stloc_2 -93078 +148560 @cil_stloc_3 -64772 +104523 @cil_ldarg_s -108039 +141946 @cil_ldarga_s -41249 +60259 @cil_starg_s -8831 +15145 @cil_ldloc_s -322360 +554029 @cil_ldloca_s -248663 +306810 @cil_stloc_s -242364 +421486 @cil_ldnull -367434 +527874 @cil_ldc_i4_m1 -25408 +37403 @cil_ldc_i4_0 -286505 +452737 @cil_ldc_i4_1 -180607 +273764 @cil_ldc_i4_2 -38368 +61963 @cil_ldc_i4_3 -16972 +26360 @cil_ldc_i4_4 -15394 +25516 @cil_ldc_i4_5 -10633 +15555 @cil_ldc_i4_6 -5988 +9146 @cil_ldc_i4_7 -4801 +7875 @cil_ldc_i4_8 -6847 +12587 @cil_ldc_i4_s -93556 +153320 @cil_ldc_i4 -101313 +127757 @cil_ldc_i8 -804 +1844 @cil_ldc_r4 -391 +1819 @cil_ldc_r8 -2592 +4211 @cil_dup -133065 +175646 @cil_pop -63274 +84451 @cil_call -1032059 +1478950 @cil_ret -629053 +867426 @cil_br_s -278770 +460982 @cil_brfalse_s -241287 +397705 @cil_brtrue_s -157059 +202602 @cil_beq_s -41579 +55540 @cil_bge_s -9364 +13561 @cil_bgt_s -4692 +7322 @cil_ble_s -10134 +13335 @cil_blt_s -15628 +23707 @cil_bne_un_s -36167 +44432 @cil_bge_un_s -462 +1087 @cil_bgt_un_s -3796 +5045 @cil_ble_un_s -4164 +5587 @cil_blt_un_s -402 +833 @cil_br -48655 +80292 @cil_brfalse -14223 +23259 @cil_brtrue -11832 +16446 @cil_beq -8957 +11212 @cil_bge -460 +568 @cil_bgt -531 +638 @cil_ble -1040 +1163 @cil_blt -1840 +2379 @cil_bne_un -2234 +2606 @cil_bge_un -76 +351 @cil_bgt_un -649 +726 @cil_ble_un -1094 +1209 @cil_blt_un -68 +157 @cil_switch -8423 +11344 @cil_ldind_i1 -66 +171 @cil_ldind_u1 -1972 +4812 @cil_ldind_i2 -47 - - -@cil_ldind_u2 -882 - - -@cil_ldind_i4 -3656 - - -@cil_ldind_u4 -419 - - -@cil_ldind_i8 -338 - - -@cil_ldind_i -240 - - -@cil_ldind_r4 -52 - - -@cil_ldind_r8 -79 - - -@cil_ldind_ref -6458 - - -@cil_stind_ref -10649 - - -@cil_stind_i1 -3593 - - -@cil_stind_i2 -435 - - -@cil_stind_i4 -5789 - - -@cil_stind_i8 -419 - - -@cil_stind_r4 -28 - - -@cil_stind_r8 135 +@cil_ldind_u2 +3540 + + +@cil_ldind_i4 +6599 + + +@cil_ldind_u4 +857 + + +@cil_ldind_i8 +786 + + +@cil_ldind_i +602 + + +@cil_ldind_r4 +166 + + +@cil_ldind_r8 +173 + + +@cil_ldind_ref +9006 + + +@cil_stind_ref +14083 + + +@cil_stind_i1 +7192 + + +@cil_stind_i2 +2098 + + +@cil_stind_i4 +11327 + + +@cil_stind_i8 +974 + + +@cil_stind_r4 +213 + + +@cil_stind_r8 +291 + + @cil_add -45802 +91505 @cil_sub -27733 +48903 @cil_mul -6208 +15702 @cil_div -1845 +4122 @cil_div_un -62 +298 @cil_rem -927 +1798 @cil_rem_un -60 +183 @cil_and -12636 +22304 @cil_or -7591 +12425 @cil_xor -1069 +1745 @cil_shl -2632 +4680 @cil_shr -972 +2069 @cil_shr_un -1202 +2226 @cil_neg -440 +1101 @cil_not -346 +562 @cil_conv_i1 -229 +594 @cil_conv_i2 -368 +846 @cil_conv_i4 -14947 +29360 @cil_conv_i8 -7691 +17068 @cil_conv_r4 -264 +612 @cil_conv_r8 -1003 +1987 @cil_conv_u4 -441 +1227 @cil_conv_u8 -1780 +4327 @cil_callvirt -767609 +1047791 @cil_ldobj -2907 +5059 @cil_ldstr -170165 +267379 @cil_newobj -204904 +283678 @cil_castclass -54510 +68061 @cil_isinst -31244 +42709 @cil_conv_r_un -103 +209 @cil_unbox -179 +263 @cil_throw -267455 +387689 @cil_ldfld -483765 +733616 @cil_ldflda -66802 +96244 @cil_stfld -269151 +373661 @cil_ldsfld -115160 +153188 @cil_ldsflda -1318 +2353 @cil_break @@ -1789,80 +1801,80 @@ @cil_valueorreftype -236158 +249380 @cil_typeparameter -98272 +53658 @cil_array_type -8222 +6961 @cil_pointer_type -440 +638 @cil_method -982868 +1164177 @cil_method_implementation -1040241 +1351440 @cil_field -373454 +459120 @cil_parameter -1904597 +2241281 @cil_property -166215 +232996 @cil_event -3719 +6340 @cil_local_variable -624672 +989637 @cil_catch_handler -10888 +16252 @cil_filter_handler -742 +901 @cil_finally_handler -26292 +35985 @cil_fault_handler -799 +931 @cil_attribute -140634 +248346 compilations -641 +1057 id -641 +1057 cwd -129 +494 @@ -1876,7 +1888,7 @@ 1 2 -641 +1057 @@ -1892,27 +1904,22 @@ 1 2 -71 +409 2 3 -21 +45 3 -14 -10 +24 +38 -14 -15 -23 - - -15 +28 29 -4 +2 @@ -1922,11 +1929,11 @@ compilation_args -2574 +4654 id -641 +1057 num @@ -1934,7 +1941,7 @@ arg -645 +1056 @@ -1951,6 +1958,11 @@ 636 +5 +6 +416 + + 6 7 5 @@ -1972,6 +1984,11 @@ 636 +5 +6 +416 + + 6 7 5 @@ -1990,11 +2007,16 @@ 5 6 -2 +1 -641 -642 +421 +422 +1 + + +1057 +1058 4 @@ -2009,14 +2031,14 @@ 12 -1 -2 -1 - - 2 3 -3 +2 + + +3 +4 +1 5 @@ -2024,6 +2046,11 @@ 1 +416 +417 +1 + + 635 636 1 @@ -2042,12 +2069,12 @@ 1 2 -637 +1041 2 -642 -8 +1058 +15 @@ -2063,12 +2090,12 @@ 1 2 -643 +1049 2 3 -2 +7 @@ -2078,11 +2105,11 @@ compilation_compiling_files -11459 +21452 id -641 +1057 num @@ -2090,7 +2117,7 @@ file -9738 +18152 @@ -2108,18 +2135,33 @@ 2 -11 -50 +4 +18 -11 -50 -49 +4 +5 +225 -54 +5 +8 +84 + + +8 +23 +80 + + +23 +78 +81 + + +78 1094 -41 +68 @@ -2139,18 +2181,33 @@ 2 -11 -50 +4 +18 -11 -50 -49 +4 +5 +225 -54 +5 +8 +84 + + +8 +23 +80 + + +23 +78 +81 + + +78 1094 -41 +68 @@ -2176,37 +2233,47 @@ 4 5 -313 +212 5 -7 -38 +6 +101 -7 +6 8 -95 +38 8 9 -212 +95 9 -21 -86 +10 +150 -21 -47 -88 +10 +20 +90 -48 -642 -37 +20 +55 +83 + + +55 +159 +82 + + +160 +1058 +18 @@ -2232,37 +2299,47 @@ 4 5 -313 +212 5 -7 -38 +6 +101 -7 +6 8 -95 +38 8 9 -212 +95 9 -21 -86 +10 +150 -21 -46 +10 +20 +90 + + +20 +55 +83 + + +55 +155 82 -46 -635 -43 +156 +1047 +18 @@ -2278,17 +2355,17 @@ 1 2 -8450 +16413 2 -3 -1005 +4 +1541 -3 -12 -283 +4 +417 +198 @@ -2304,17 +2381,17 @@ 1 2 -8531 +16531 2 -3 -961 +4 +1449 -3 -11 -246 +4 +77 +172 @@ -2324,11 +2401,11 @@ compilation_referencing_files -86469 +94271 id -641 +1056 num @@ -2336,7 +2413,7 @@ file -1126 +1701 @@ -2348,74 +2425,69 @@ 12 +1 +2 +70 + + +2 +3 +82 + + 3 -71 -55 +5 +96 -72 -76 -41 +5 +11 +84 -79 -120 -47 +11 +46 +90 -121 -123 -43 +46 +80 +88 -123 -126 -37 +100 +124 +84 -126 -129 -48 +124 +130 +94 -129 -131 -59 - - -132 +130 137 -56 +85 138 -153 -57 +157 +77 -153 -158 -49 +157 +181 +80 -161 -184 -49 +181 +219 +86 -184 -212 -46 - - -218 -234 -49 - - -241 +219 272 -5 +40 @@ -2429,74 +2501,69 @@ 12 +1 +2 +70 + + +2 +3 +82 + + 3 -71 -55 +5 +96 -72 -75 -41 +5 +11 +84 -78 -120 -47 +11 +46 +90 -121 -123 -43 +46 +79 +88 -123 -126 -51 +100 +124 +84 -126 -129 -34 +124 +130 +94 -129 -131 -59 - - -132 +130 137 -56 +85 138 -153 -57 +157 +78 -153 -158 -49 +157 +182 +80 -161 -183 -49 +182 +219 +85 -184 -212 -46 - - -218 -234 -49 - - -241 +219 272 -5 +40 @@ -2526,53 +2593,58 @@ 55 -98 -25 - - -98 -148 -24 - - -148 -252 +112 21 -252 -499 -22 - - -499 -518 -19 - - -518 -519 +112 +172 21 +173 +270 +21 + + +270 +401 +21 + + +416 +545 +14 + + 545 -603 +546 +13 + + +546 +547 +21 + + +573 +631 18 -603 -621 -17 +631 +651 +22 -621 -622 -37 +651 +679 +21 -623 -642 -7 +681 +1057 +18 @@ -2588,67 +2660,67 @@ 1 4 -20 +17 4 -8 +6 21 -8 +6 27 -23 +21 27 -39 +46 21 -39 -64 +48 +78 21 -64 -94 +78 +105 21 -95 -136 +110 +146 21 -138 -155 -22 - - -155 -165 -22 - - -165 -172 +152 +171 21 -172 -187 -21 +171 +180 +23 -187 -193 -22 +182 +197 +24 -193 -201 -15 +197 +202 +19 + + +202 +208 +23 + + +208 +231 +18 @@ -2664,27 +2736,37 @@ 1 2 -240 +323 2 3 -110 +142 3 -11 -86 +4 +84 -11 +4 +5 +214 + + +5 +23 +130 + + +23 28 -85 +132 28 47 -50 +101 47 @@ -2693,38 +2775,23 @@ 48 -100 -66 +106 +128 -100 -176 -85 - - -177 +108 181 -7 +50 184 -185 -115 +219 +128 -187 -284 -23 - - -284 -285 -107 - - -332 +253 478 -7 +124 @@ -2740,58 +2807,58 @@ 1 2 -243 +334 2 3 -124 +156 3 -7 +4 +189 + + +4 +6 +135 + + +6 +13 +128 + + +13 +18 +139 + + +18 +21 +118 + + +21 +26 +143 + + +26 +35 +145 + + +35 +96 +129 + + +96 +123 85 - -7 -16 -95 - - -16 -20 -85 - - -20 -23 -85 - - -23 -29 -89 - - -29 -38 -97 - - -38 -52 -85 - - -52 -104 -90 - - -104 -120 -48 - @@ -2800,11 +2867,11 @@ compilation_time -4487 +7399 id -641 +1057 num @@ -2816,7 +2883,7 @@ seconds -2410 +3821 @@ -2830,7 +2897,7 @@ 1 2 -641 +1057 @@ -2846,7 +2913,7 @@ 7 8 -641 +1057 @@ -2862,12 +2929,12 @@ 6 7 -17 +36 7 8 -624 +1021 @@ -2881,8 +2948,8 @@ 12 -641 -642 +1057 +1058 1 @@ -2913,8 +2980,8 @@ 12 -2410 -2411 +3821 +3822 1 @@ -2929,8 +2996,8 @@ 12 -641 -642 +1057 +1058 7 @@ -2961,38 +3028,33 @@ 12 -171 -172 +322 +323 +2 + + +325 +326 1 -173 -174 +336 +337 1 -188 -189 +1017 +1018 1 -202 -203 +1056 +1057 1 -616 -617 -1 - - -639 -640 -1 - - -641 -642 +1057 +1058 1 @@ -3009,17 +3071,17 @@ 1 2 -2169 +3373 2 -14 -184 +8 +290 -14 -78 -57 +8 +94 +158 @@ -3035,7 +3097,7 @@ 1 2 -2410 +3821 @@ -3051,12 +3113,17 @@ 1 2 -2240 +3445 2 +4 +308 + + +4 5 -170 +68 @@ -3066,15 +3133,15 @@ diagnostic_for -7036 +108998 diagnostic -7036 +108998 compilation -138 +554 file_number @@ -3082,7 +3149,7 @@ file_number_diagnostic_number -1028 +1332 @@ -3096,7 +3163,7 @@ 1 2 -7036 +108998 @@ -3112,7 +3179,7 @@ 1 2 -7036 +108998 @@ -3128,7 +3195,7 @@ 1 2 -7036 +108998 @@ -3143,68 +3210,58 @@ 2 -3 -2 - - -4 -5 -26 - - -5 -6 -5 - - -6 7 -12 +45 7 -8 -7 +21 +43 -8 -11 -11 +21 +183 +42 -11 -14 -11 +192 +233 +3 -15 -20 -12 +233 +234 +226 -20 -32 -11 +234 +235 +2 -33 -57 -12 +235 +236 +51 -59 -106 -11 +236 +238 +42 -123 -193 -12 +238 +246 +42 -232 -1029 -6 +246 +299 +42 + + +305 +1333 +16 @@ -3220,7 +3277,7 @@ 1 2 -138 +554 @@ -3235,68 +3292,58 @@ 2 -3 -2 - - -4 -5 -26 - - -5 -6 -5 - - -6 7 -12 +45 7 -8 -7 +21 +43 -8 -11 -11 +21 +183 +42 -11 -14 -11 +192 +233 +3 -15 -20 -12 +233 +234 +226 -20 -32 -11 +234 +235 +2 -33 -57 -12 +235 +236 +51 -59 -106 -11 +236 +238 +42 -123 -193 -12 +238 +246 +42 -232 -1029 -6 +246 +299 +42 + + +305 +1333 +16 @@ -3310,8 +3357,8 @@ 12 -7036 -7037 +108998 +108999 1 @@ -3326,8 +3373,8 @@ 12 -138 -139 +554 +555 1 @@ -3342,8 +3389,8 @@ 12 -1028 -1029 +1332 +1333 1 @@ -3360,32 +3407,42 @@ 1 2 -488 +304 2 3 -147 +484 3 -4 -150 +9 +118 -4 -10 -79 +9 +15 +104 -10 -26 +15 +422 90 -26 -139 -74 +422 +434 +109 + + +434 +464 +100 + + +465 +555 +23 @@ -3401,32 +3458,42 @@ 1 2 -488 +304 2 3 -147 +484 3 -4 -150 +9 +118 -4 -10 -79 +9 +15 +104 -10 -26 +15 +422 90 -26 -139 -74 +422 +434 +109 + + +434 +464 +100 + + +465 +555 +23 @@ -3442,7 +3509,7 @@ 1 2 -1028 +1332 @@ -3452,31 +3519,31 @@ diagnostics -7036 +108998 id -7036 +108998 severity -1 +2 error_tag -2 +18 error_message -2 +7 full_error_message -2 +59 location -5748 +10620 @@ -3490,7 +3557,7 @@ 1 2 -7036 +108998 @@ -3506,7 +3573,7 @@ 1 2 -7036 +108998 @@ -3522,7 +3589,7 @@ 1 2 -7036 +108998 @@ -3538,7 +3605,7 @@ 1 2 -7036 +108998 @@ -3554,7 +3621,7 @@ 1 2 -7036 +108998 @@ -3568,8 +3635,13 @@ 12 -7036 -7037 +11828 +11829 +1 + + +97170 +97171 1 @@ -3588,6 +3660,11 @@ 3 1 + +16 +17 +1 + @@ -3604,6 +3681,11 @@ 3 1 + +5 +6 +1 + @@ -3620,6 +3702,11 @@ 3 1 + +57 +58 +1 + @@ -3632,8 +3719,13 @@ 12 -5748 -5749 +461 +462 +1 + + +10159 +10160 1 @@ -3648,13 +3740,68 @@ 12 +2 +3 +1 + + 4 5 1 -7032 -7033 +6 +7 +1 + + +33 +34 +1 + + +201 +202 +1 + + +416 +417 +4 + + +832 +833 +2 + + +1248 +1249 +2 + + +1664 +1665 +1 + + +2080 +2081 +1 + + +3328 +3329 +1 + + +11824 +11825 +1 + + +84032 +84033 1 @@ -3671,7 +3818,7 @@ 1 2 -2 +18 @@ -3687,7 +3834,7 @@ 1 2 -2 +18 @@ -3703,6 +3850,26 @@ 1 2 +11 + + +2 +3 +2 + + +5 +6 +2 + + +8 +9 +1 + + +13 +14 2 @@ -3717,220 +3884,405 @@ 12 -2 -3 -1 - - -5746 -5747 -1 - - - - - - -error_message -id - - -12 - - -4 -5 -1 - - -7032 -7033 -1 - - - - - - -error_message -severity - - -12 - - 1 2 -2 - - - - - - -error_message -error_tag - - -12 - - -1 -2 -2 - - - - - - -error_message -full_error_message - - -12 - - -1 -2 -2 - - - - - - -error_message -location - - -12 - - -2 -3 -1 - - -5746 -5747 -1 - - - - - - -full_error_message -id - - -12 - - -4 -5 -1 - - -7032 -7033 -1 - - - - - - -full_error_message -severity - - -12 - - -1 -2 -2 - - - - - - -full_error_message -error_tag - - -12 - - -1 -2 -2 - - - - - - -full_error_message -error_message - - -12 - - -1 -2 -2 - - - - - - -full_error_message -location - - -12 - - -2 -3 -1 - - -5746 -5747 -1 - - - - - - -location -id - - -12 - - -1 -2 -4674 +4 2 3 -920 +4 3 +4 +2 + + +4 +5 +1 + + +5 +6 +1 + + +6 +7 +1 + + +8 +9 +1 + + +27 +28 +1 + + +201 +202 +1 + + +202 +203 +1 + + +10157 +10158 +1 + + + + + + +error_message +id + + +12 + + +2 +3 +1 + + +4 +5 +1 + + +6 +7 +1 + + +33 +34 +1 + + +201 +202 +1 + + +11824 +11825 +1 + + +96928 +96929 +1 + + + + + + +error_message +severity + + +12 + + +1 +2 +7 + + + + + + +error_message +error_tag + + +12 + + +1 +2 +6 + + +12 +13 +1 + + + + + + +error_message +full_error_message + + +12 + + +1 +2 +2 + + +2 +3 +1 + + +5 +6 +2 + + +13 +14 +1 + + +32 +33 +1 + + + + + + +error_message +location + + +12 + + +2 +3 +2 + + +6 +7 +1 + + +27 +28 +1 + + +201 +202 +1 + + +225 +226 +1 + + +10157 +10158 +1 + + + + + + +full_error_message +id + + +12 + + +1 +2 +6 + + +2 +6 +5 + + +6 12 -154 +5 + + +14 +17 +5 + + +17 +28 +5 + + +416 +417 +18 + + +832 +833 +4 + + +1248 +1249 +5 + + +1664 +11825 +5 + + +65312 +65313 +1 + + + + + + +full_error_message +severity + + +12 + + +1 +2 +59 + + + + + + +full_error_message +error_tag + + +12 + + +1 +2 +59 + + + + + + +full_error_message +error_message + + +12 + + +1 +2 +59 + + + + + + +full_error_message +location + + +12 + + +1 +2 +24 + + +2 +3 +6 + + +3 +4 +7 + + +4 +7 +5 + + +7 +12 +4 + + +14 +17 +5 + + +17 +23 +5 + + +27 +10158 +3 + + + + + + +location +id + + +12 + + +1 +2 +9120 + + +2 +3 +1031 + + +3 +833 +469 @@ -3946,7 +4298,7 @@ 1 2 -5748 +10620 @@ -3962,7 +4314,12 @@ 1 2 -5748 +10612 + + +2 +3 +8 @@ -3978,7 +4335,7 @@ 1 2 -5748 +10620 @@ -3994,7 +4351,12 @@ 1 2 -5748 +10606 + + +2 +3 +14 @@ -4004,11 +4366,11 @@ extractor_messages -264 +55 id -264 +55 severity @@ -4020,19 +4382,19 @@ text -8 +3 entity -143 +22 location -241 +32 stack_trace -30 +4 @@ -4046,7 +4408,7 @@ 1 2 -264 +55 @@ -4062,7 +4424,7 @@ 1 2 -264 +55 @@ -4078,7 +4440,7 @@ 1 2 -264 +55 @@ -4094,7 +4456,7 @@ 1 2 -264 +55 @@ -4110,7 +4472,7 @@ 1 2 -264 +55 @@ -4126,7 +4488,7 @@ 1 2 -264 +55 @@ -4140,18 +4502,18 @@ 12 +4 +5 +1 + + 15 16 1 -35 -36 -1 - - -214 -215 +36 +37 1 @@ -4184,12 +4546,7 @@ 1 2 -2 - - -6 -7 -1 +3 @@ -4208,13 +4565,13 @@ 1 -16 -17 +4 +5 1 -126 -127 +17 +18 1 @@ -4234,13 +4591,13 @@ 1 -26 -27 +4 +5 1 -214 -215 +27 +28 1 @@ -4260,8 +4617,8 @@ 2 -29 -30 +3 +4 1 @@ -4276,8 +4633,8 @@ 12 -264 -265 +55 +56 1 @@ -4308,8 +4665,8 @@ 12 -8 -9 +3 +4 1 @@ -4324,8 +4681,8 @@ 12 -143 -144 +22 +23 1 @@ -4340,8 +4697,8 @@ 12 -241 -242 +32 +33 1 @@ -4356,8 +4713,8 @@ 12 -30 -31 +4 +5 1 @@ -4372,168 +4729,123 @@ 12 +4 +5 +1 + + +15 +16 +1 + + +36 +37 +1 + + + + + + +text +severity + + +12 + + +1 +2 +3 + + + + + + +text +origin + + +12 + + +1 +2 +3 + + + + + + +text +entity + + +12 + + +1 +2 +1 + + +4 +5 +1 + + +17 +18 +1 + + + + + + +text +location + + +12 + + +1 +2 +1 + + +4 +5 +1 + + +27 +28 +1 + + + + + + +text +stack_trace + + +12 + + 1 2 2 -2 -3 -1 - - -4 -5 -1 - - -12 -13 -1 - - -15 -16 -1 - - -35 -36 -1 - - -194 -195 -1 - - - - - - -text -severity - - -12 - - -1 -2 -8 - - - - - - -text -origin - - -12 - - -1 -2 -8 - - - - - - -text -entity - - -12 - - -1 -2 -4 - - -4 -5 -1 - - -6 -7 -1 - - -16 -17 -1 - - -113 -114 -1 - - - - - - -text -location - - -12 - - -1 -2 -3 - - -2 -3 -1 - - -4 -5 -1 - - -12 -13 -1 - - -26 -27 -1 - - -194 -195 -1 - - - - - - -text -stack_trace - - -12 - - -1 -2 -7 - - -25 -26 +3 +4 1 @@ -4550,359 +4862,8 @@ 1 2 -96 - - -2 -3 -32 - - -3 -6 -12 - - -6 -40 -3 - - - - - - -entity -severity - - -12 - - -1 -2 -143 - - - - - - -entity -origin - - -12 - - -1 -2 -143 - - - - - - -entity -text - - -12 - - -1 -2 -143 - - - - - - -entity -location - - -12 - - -1 -2 -101 - - -2 -3 -31 - - -3 -40 11 - - - - - -entity -stack_trace - - -12 - - -1 -2 -141 - - -2 -5 -2 - - - - - - -location -id - - -12 - - -1 -2 -231 - - -2 -16 -10 - - - - - - -location -severity - - -12 - - -1 -2 -241 - - - - - - -location -origin - - -12 - - -1 -2 -241 - - - - - - -location -text - - -12 - - -1 -2 -241 - - - - - - -location -entity - - -12 - - -1 -2 -241 - - - - - - -location -stack_trace - - -12 - - -1 -2 -241 - - - - - - -stack_trace -id - - -12 - - -1 -2 -9 - - -2 -3 -3 - - -3 -4 -3 - - -4 -5 -2 - - -5 -6 -1 - - -6 -7 -2 - - -8 -9 -2 - - -9 -11 -2 - - -12 -13 -2 - - -24 -25 -2 - - -50 -59 -2 - - - - - - -stack_trace -severity - - -12 - - -1 -2 -29 - - -2 -3 -1 - - - - - - -stack_trace -origin - - -12 - - -1 -2 -30 - - - - - - -stack_trace -text - - -12 - - -1 -2 -28 - - -2 -3 -2 - - - - - - -stack_trace -entity - - -12 - - -1 -2 -15 - 2 3 @@ -4911,7 +4872,7 @@ 3 4 -1 +2 4 @@ -4920,18 +4881,225 @@ 5 +16 +2 + + + + + + +entity +severity + + +12 + + +1 +2 +22 + + + + + + +entity +origin + + +12 + + +1 +2 +22 + + + + + + +entity +text + + +12 + + +1 +2 +22 + + + + + + +entity +location + + +12 + + +1 +2 +16 + + +2 +3 +4 + + +3 6 +2 + + + + + + +entity +stack_trace + + +12 + + +1 +2 +22 + + + + + + +location +id + + +12 + + +1 +2 +22 + + +2 +3 +9 + + +15 +16 1 + + + + + +location +severity + + +12 + -6 -7 -3 +1 +2 +32 + + + + + + +location +origin + + +12 + + +1 +2 +32 + + + + + + +location +text + + +12 + + +1 +2 +32 + + + + + + +location +entity + + +12 + + +1 +2 +32 + + + + + + +location +stack_trace + + +12 + + +1 +2 +32 + + + + + + +stack_trace +id + + +12 + + +1 +2 +2 -17 -21 -2 +2 +3 +1 51 @@ -4944,6 +5112,90 @@ stack_trace +severity + + +12 + + +1 +2 +3 + + +2 +3 +1 + + + + + + +stack_trace +origin + + +12 + + +1 +2 +4 + + + + + + +stack_trace +text + + +12 + + +1 +2 +3 + + +2 +3 +1 + + + + + + +stack_trace +entity + + +12 + + +1 +2 +2 + + +2 +3 +1 + + +18 +19 +1 + + + + + + +stack_trace location @@ -4952,57 +5204,17 @@ 1 2 -9 +2 2 3 -3 - - -3 -4 -3 - - -4 -5 -2 - - -5 -6 1 -6 -7 -2 - - -8 -9 -2 - - -9 -11 -2 - - -12 -13 -2 - - -24 -25 -2 - - -27 -59 -2 +28 +29 +1 @@ -5012,19 +5224,19 @@ compilation_finished -641 +1057 id -641 +1057 cpu_seconds -248 +467 elapsed_seconds -641 +1054 @@ -5038,7 +5250,7 @@ 1 2 -641 +1057 @@ -5054,7 +5266,7 @@ 1 2 -641 +1057 @@ -5070,32 +5282,27 @@ 1 2 -154 +281 2 3 -19 +70 3 -5 -22 +4 +43 -5 -6 -17 - - -6 +4 8 -18 +41 8 -15 -18 +13 +32 @@ -5111,32 +5318,27 @@ 1 2 -154 +281 2 3 -19 +70 3 -5 -22 +4 +43 -5 -6 -17 - - -6 +4 8 -18 +41 8 -15 -18 +13 +32 @@ -5152,7 +5354,12 @@ 1 2 -641 +1051 + + +2 +3 +3 @@ -5168,7 +5375,12 @@ 1 2 -641 +1051 + + +2 +3 +3 @@ -5592,11 +5804,11 @@ externalData -16 +20 id -8 +10 path @@ -5608,7 +5820,7 @@ value -16 +20 @@ -5622,7 +5834,7 @@ 1 2 -8 +10 @@ -5638,7 +5850,7 @@ 2 3 -8 +10 @@ -5654,7 +5866,7 @@ 2 3 -8 +10 @@ -5668,8 +5880,8 @@ 12 -8 -9 +10 +11 1 @@ -5700,8 +5912,8 @@ 12 -16 -17 +20 +21 1 @@ -5716,8 +5928,8 @@ 12 -8 -9 +10 +11 2 @@ -5748,8 +5960,8 @@ 12 -8 -9 +10 +11 2 @@ -5766,7 +5978,7 @@ 1 2 -16 +20 @@ -5782,7 +5994,7 @@ 1 2 -16 +20 @@ -5798,7 +6010,7 @@ 1 2 -16 +20 @@ -5830,19 +6042,19 @@ duplicateCode -13480 +18936 id -13480 +18936 relativePath -1215 +2265 equivClass -4735 +6810 @@ -5856,7 +6068,7 @@ 1 2 -13480 +18936 @@ -5872,7 +6084,7 @@ 1 2 -13480 +18936 @@ -5888,42 +6100,37 @@ 1 2 -483 +1060 2 3 -249 +418 3 4 -81 +161 4 -5 -81 +6 +198 -5 -8 -108 +6 +11 +179 -8 -16 -97 +11 +36 +170 -16 -70 -92 - - -71 +36 1047 -24 +79 @@ -5939,37 +6146,32 @@ 1 2 -624 +1248 2 3 -173 +310 3 4 -107 +188 4 -5 -71 +6 +195 -5 -8 -111 +6 +12 +186 -8 -23 -94 - - -23 +12 405 -35 +138 @@ -5985,32 +6187,32 @@ 1 2 -2 +5 2 3 -3064 +4495 3 4 -717 +1051 4 5 -431 +595 5 -8 -361 +9 +551 -8 +9 11 -160 +113 @@ -6026,17 +6228,22 @@ 1 2 -3704 +4222 2 3 -800 +1918 3 +5 +520 + + +5 11 -231 +150 @@ -6046,19 +6253,19 @@ similarCode -124007 +141055 id -124007 +141055 relativePath -3653 +4793 equivClass -34919 +40443 @@ -6072,7 +6279,7 @@ 1 2 -124007 +141055 @@ -6088,7 +6295,7 @@ 1 2 -124007 +141055 @@ -6104,57 +6311,52 @@ 1 2 -819 +989 2 3 -561 +824 3 4 -253 +334 4 5 -240 +338 5 7 -328 +425 7 10 -303 +422 10 16 -290 +391 16 -27 -280 +28 +367 -27 +28 63 -277 +360 63 -540 -274 - - -563 10255 -28 +343 @@ -6170,47 +6372,47 @@ 1 2 -1136 +1419 2 3 -509 +717 3 4 -343 +447 4 5 -248 +353 5 7 -327 +426 7 10 -285 +394 10 17 -289 +400 17 39 -283 +363 39 3151 -233 +274 @@ -6226,37 +6428,37 @@ 1 2 -27 +22 2 3 -15700 +18979 3 4 -6717 +7590 4 5 -4246 +4736 5 6 -2523 +2796 6 8 -3121 +3485 8 11 -2585 +2835 @@ -6272,22 +6474,22 @@ 1 2 -24135 +27489 2 3 -7080 +8570 3 5 -2744 +3204 5 11 -960 +1180 @@ -6297,11 +6499,11 @@ tokens -16303051 +19390833 id -137487 +159991 offset @@ -6309,19 +6511,19 @@ beginLine -66951 +66941 beginColumn -1273 +1274 endLine -65748 +65737 endColumn -1281 +1280 @@ -6335,72 +6537,67 @@ 100 101 -14059 +16507 101 102 -11347 +13400 102 103 -9867 +10706 103 104 -7193 +8227 104 -105 -7011 +106 +14785 -105 -107 -11281 +106 +108 +10905 -107 -109 -9402 +108 +111 +14230 -109 -112 -11634 +111 +115 +13953 -112 -116 -11231 +115 +121 +13841 -116 -122 -10975 +121 +130 +12523 -122 -132 -11245 +130 +145 +12013 -132 -151 -10714 +145 +186 +12027 -151 -246 -10322 - - -246 +186 24726 -1206 +6874 @@ -6416,77 +6613,72 @@ 3 8 -9658 +14714 8 10 -10203 +12264 10 12 -12464 +14261 12 13 -7171 +7803 13 14 -8457 +8972 14 15 -8662 +9603 15 16 -7359 +7805 16 -17 -6734 +18 +14115 -17 -19 -12294 +18 +20 +13499 -19 -21 -11808 +20 +22 +12619 -21 -23 -10152 +22 +24 +10282 -23 -25 -9076 +24 +27 +13441 -25 -29 -12371 +27 +33 +12806 -29 -50 -10359 - - -50 +33 4516 -719 +7807 @@ -6501,68 +6693,68 @@ 3 -31 -11905 +30 +12551 -31 -36 -11061 +30 +35 +12550 -36 -40 -10541 +35 +39 +11810 -40 -44 -11491 +39 +43 +12757 -44 -48 -12544 +43 +47 +14181 -48 +47 51 -9774 +14812 51 54 -10252 +11812 54 57 -10130 +11572 57 61 -12505 +14300 61 65 -11020 +12505 65 71 -11742 +13314 71 83 -10362 +12181 83 356 -4160 +5646 @@ -6578,82 +6770,72 @@ 3 8 -9693 +14749 8 10 -10246 +12307 10 11 -6305 +7233 11 12 -6863 +7732 12 13 -7917 +8549 13 14 -8978 +9485 14 15 -8596 +9545 15 -16 -7157 - - -16 17 -6534 +14705 17 -18 -6305 - - -18 19 -6514 +13999 19 21 -12394 +13941 21 23 -10926 +12055 23 -25 -9003 +26 +14297 -25 -29 -10845 +26 +31 +12102 -29 +31 4516 -9211 +9292 @@ -6668,68 +6850,68 @@ 3 -33 -11758 +32 +12833 -33 +32 38 -10683 +14379 38 -42 -10267 +43 +14719 -42 -46 -11227 +43 +47 +12728 -46 -50 -11885 +47 +51 +13764 -50 -54 -12367 +51 +55 +14329 -54 -57 -9677 +55 +58 +11193 -57 -60 -9829 +58 +62 +14558 -60 -64 -11875 +62 +66 +13018 -64 -68 -10641 +66 +71 +13691 -68 -73 -10560 +71 +78 +12570 -73 -82 -10400 +78 +135 +12009 -82 +135 363 -6318 +200 @@ -6745,17 +6927,27 @@ 2 3 -21440 +10300 4 -9 -1856 +5 +8833 -12 -137488 -1429 +7 +8 +2307 + + +9 +28 +1913 + + +29 +159992 +1372 @@ -6771,17 +6963,27 @@ 2 3 -21440 +10300 -4 -9 -1856 +3 +4 +8833 -10 -27395 -1429 +5 +6 +2307 + + +7 +22 +1926 + + +22 +27426 +1359 @@ -6797,17 +6999,27 @@ 1 2 -21460 +10430 2 -7 -1942 +3 +8777 -7 -470 -1323 +3 +4 +2244 + + +4 +13 +1987 + + +13 +488 +1287 @@ -6823,17 +7035,27 @@ 2 3 -21440 +10300 -4 -9 -1856 +3 +4 +8833 -10 -27361 -1429 +5 +6 +2307 + + +7 +22 +1926 + + +22 +27392 +1359 @@ -6849,17 +7071,27 @@ 1 2 -21457 +10382 2 -7 -1939 +3 +8807 -7 -479 -1329 +3 +4 +2264 + + +4 +12 +1856 + + +12 +494 +1416 @@ -6875,77 +7107,77 @@ 1 2 -3940 +3932 2 3 -4614 +4619 3 4 -5107 +5103 4 5 -5049 +5047 5 6 -4514 +4515 6 7 -4085 +4084 7 8 -3742 +3752 8 9 -3307 +3318 9 11 -5783 +5798 11 14 -5837 +5800 14 19 -5467 +5476 19 32 -5251 +5189 32 -76 -5025 +80 +5056 -76 -1383 +80 +1631 5022 -1384 -3597 -208 +1632 +4188 +230 @@ -6961,22 +7193,22 @@ 1 4 -4906 +4909 4 7 -5029 +5022 7 12 -5528 +5527 12 18 -5048 +5044 18 @@ -6986,12 +7218,12 @@ 26 35 -5332 +5343 35 45 -5040 +5029 45 @@ -7001,27 +7233,32 @@ 57 72 -5093 +5080 72 91 -5148 +5111 91 114 -5184 +5123 114 -149 -5124 +153 +5079 -149 -441 -4975 +153 +472 +5021 + + +472 +570 +109 @@ -7037,62 +7274,62 @@ 1 2 -9046 +9053 2 4 -5786 +5791 4 6 -4829 +4819 6 9 -6118 +6109 9 12 -5032 +5030 12 16 -5582 +5585 16 20 -5344 +5338 20 26 -5672 +5652 26 35 -5331 +5315 35 -53 -5120 +54 +5190 -53 -93 -5098 +54 +99 +5046 -93 -313 -3993 +99 +339 +4013 @@ -7108,12 +7345,12 @@ 1 2 -56336 +56327 2 3 -5720 +5719 3 @@ -7134,22 +7371,22 @@ 1 2 -9015 +9022 2 4 -5814 +5819 4 6 -4705 +4696 6 9 -6096 +6085 9 @@ -7164,31 +7401,31 @@ 16 20 -5294 +5291 20 26 -5618 +5600 26 35 -5225 +5211 35 -53 -5146 +54 +5217 -53 -92 -5094 +54 +97 +5056 -92 -319 +97 +341 4369 @@ -7205,7 +7442,7 @@ 1 2 -102 +101 2 @@ -7215,62 +7452,62 @@ 3 5 -104 +103 5 8 -94 +90 8 11 -94 +91 11 -14 -90 +15 +107 -14 -18 +15 +20 100 -18 -28 -97 - - -28 -91 +20 +34 96 -92 -263 +34 +116 96 -264 -835 +116 +318 96 -851 -12397 +319 +1276 96 -12702 -67475 +1313 +15993 96 -68233 -114514 -36 +16054 +81805 +96 + + +81831 +126123 +30 @@ -7286,67 +7523,67 @@ 1 2 -104 +101 2 3 -84 +86 3 5 -112 +111 5 8 -94 +86 8 11 -117 +116 11 -14 -99 +15 +112 -14 -19 -101 +15 +21 +102 -19 -39 -99 - - -40 -82 +21 +46 97 -82 -126 -98 - - -126 -213 -99 - - -215 -449 +46 +97 96 -453 -3387 -73 +97 +150 +97 + + +150 +265 +96 + + +265 +676 +98 + + +676 +3602 +76 @@ -7362,62 +7599,67 @@ 1 2 -243 +240 2 3 -98 +84 3 4 -112 +115 4 5 -79 +69 5 6 -84 +67 6 8 -107 +91 8 -23 -96 +15 +98 -23 -54 +15 +48 97 -54 -144 +48 +106 96 -145 -1392 +106 +447 96 -1447 -10372 +458 +4412 96 -10475 -36610 -69 +4439 +15076 +96 + + +15140 +36635 +29 @@ -7433,62 +7675,67 @@ 1 2 -243 +240 2 3 -98 +84 3 4 -112 +115 4 5 -79 +69 5 6 -84 +67 6 8 -107 +91 8 -23 -96 +15 +98 -23 -54 +15 +48 97 -54 -144 +48 +106 96 -145 -1392 +106 +447 96 -1447 -10375 +458 +4412 96 -10476 -36609 -69 +4439 +15076 +96 + + +15138 +36634 +29 @@ -7504,52 +7751,52 @@ 1 2 -321 +312 2 3 -178 +162 3 4 -164 +154 4 5 -81 +75 5 9 -117 +114 9 15 -97 +103 15 22 -98 +110 22 -44 +36 96 -44 -88 -96 +37 +75 +99 -89 -176 -25 +76 +175 +49 @@ -7565,77 +7812,77 @@ 1 2 -3847 +3838 2 3 -4499 +4504 3 4 -5022 +5018 4 5 -4979 +4977 5 6 -4460 +4461 6 7 -4053 +4052 7 8 -3674 +3684 8 9 -3252 +3264 9 11 -5618 +5632 11 14 -5654 +5617 14 19 -5335 +5343 19 32 -5179 +5113 32 -75 -4971 +78 +4956 -75 -1119 +78 +1173 4932 -1121 -3579 -273 +1173 +4170 +346 @@ -7651,67 +7898,67 @@ 1 5 -5546 +5550 5 9 -5454 +5452 9 15 -5692 +5683 15 22 -5387 +5385 22 30 -5043 +5047 30 39 -5000 +5001 39 50 -5193 +5186 50 63 -5119 +5115 63 79 -4956 +4940 79 99 -5007 +4966 99 125 -5078 +4992 125 -163 -4979 +173 +4975 -163 -441 -3294 +173 +570 +3445 @@ -7727,7 +7974,7 @@ 1 2 -53887 +53876 2 @@ -7753,67 +8000,67 @@ 1 2 -6483 +6489 2 3 -3747 +3749 3 5 -5343 +5347 5 7 -5672 +5657 7 10 -4870 +4866 10 14 -6007 +6004 14 17 -5141 +5144 17 22 -5202 +5187 22 28 -5339 +5323 28 39 -5222 +5189 39 -61 -5007 +62 +5012 -61 -109 -4976 +62 +118 +4958 -109 -313 -2739 +118 +339 +2812 @@ -7829,67 +8076,67 @@ 1 2 -6454 +6460 2 3 -3708 +3710 3 5 -5420 +5424 5 7 -5488 +5473 7 10 -4894 +4889 10 14 -5975 +5973 14 17 -5079 +5081 17 22 -5183 +5173 22 28 -5298 +5281 28 39 -5141 +5106 39 -61 -5028 +62 +5049 -61 -107 -4991 +62 +115 +4960 -107 -318 -3089 +115 +340 +3158 @@ -7905,72 +8152,72 @@ 1 2 -103 +100 2 3 -75 +71 3 5 -109 +112 5 8 -99 +93 8 11 -99 +94 11 15 -109 +102 15 21 -99 +100 21 -38 -97 - - -38 -127 -97 - - -128 -343 +36 98 -344 -1906 +36 +124 97 -1964 -25254 -97 +125 +331 +96 -25838 -92921 -97 +333 +1416 +96 -95159 -100909 -5 +1469 +18166 +96 + + +18253 +87352 +96 + + +87890 +113121 +29 @@ -7986,67 +8233,72 @@ 1 2 -106 +100 2 3 -80 +79 3 4 -91 +92 4 8 -118 +115 8 10 -90 +83 10 14 -117 +108 14 19 -102 +105 19 -33 +32 99 -33 -78 -97 +32 +80 +96 80 -122 +132 98 -122 -200 -97 +132 +224 +98 -200 -398 -97 +226 +480 +96 -398 -2279 -89 +480 +1699 +96 + + +1720 +3280 +15 @@ -8062,62 +8314,62 @@ 1 2 -248 +239 2 3 -109 +97 3 4 -89 +94 4 5 -98 +89 5 -6 -74 +7 +108 -6 -8 -101 +7 +11 +105 -8 -22 +11 +38 +96 + + +38 +79 +96 + + +79 +225 97 -22 -51 -98 +229 +2123 +96 -51 -133 -97 +2143 +11420 +96 -133 -1225 -97 - - -1290 -10635 -97 - - -10679 -26467 -76 +11472 +26469 +67 @@ -8133,52 +8385,52 @@ 1 2 -319 +307 2 3 -191 +177 3 4 -147 +136 4 -6 -117 +5 +71 -6 -11 -108 +5 +9 +111 -11 -18 -101 - - -18 -30 +9 +15 99 -30 -53 -98 +15 +24 +107 -53 -75 -98 +24 +37 +97 -76 +37 +63 +96 + + +63 110 -3 +79 @@ -8194,62 +8446,62 @@ 1 2 -248 +239 2 3 -109 +97 3 4 -89 +94 4 5 -98 +89 5 -6 -74 +7 +108 -6 -8 -101 +7 +11 +105 -8 -22 +11 +38 +96 + + +38 +79 +96 + + +79 +225 97 -22 -51 -98 +229 +2123 +96 -51 -133 -97 +2143 +11428 +96 -133 -1225 -97 - - -1290 -10635 -97 - - -10679 -26467 -76 +11469 +26469 +67 @@ -8259,15 +8511,15 @@ locations_default -7339237 +10628591 id -7339237 +10628591 file -13679 +18229 beginLine @@ -8275,7 +8527,7 @@ beginColumn -1126 +1161 endLine @@ -8283,7 +8535,7 @@ endColumn -1207 +1234 @@ -8297,7 +8549,7 @@ 1 2 -7339237 +10628591 @@ -8313,7 +8565,7 @@ 1 2 -7339237 +10628591 @@ -8329,7 +8581,7 @@ 1 2 -7339237 +10628591 @@ -8345,7 +8597,7 @@ 1 2 -7339237 +10628591 @@ -8361,7 +8613,7 @@ 1 2 -7339237 +10628591 @@ -8376,73 +8628,73 @@ 1 -18 -1049 +16 +1382 -18 -29 -908 +16 +27 +1438 -29 +27 34 -1032 +1384 34 -52 -1072 +47 +1422 -52 -74 -1062 +47 +70 +1406 -74 -101 -1043 +70 +103 +1387 -101 -140 -1035 +103 +151 +1371 -140 -194 -1027 +151 +215 +1374 -194 -271 -1035 +215 +310 +1375 -271 -392 -1026 +310 +465 +1372 -392 -601 -1029 +465 +754 +1370 -601 -1067 -1026 +754 +1405 +1368 -1068 -3393 -1026 +1405 +6323 +1368 -3400 -167164 -309 +6331 +167166 +212 @@ -8457,68 +8709,68 @@ 1 -10 -1072 +9 +1356 -10 -15 -1074 +9 +14 +1624 -15 -20 -949 +14 +19 +1345 -20 -23 -1180 +19 +21 +1382 -23 -30 -1114 +21 +28 +1454 -30 -39 -1056 +28 +38 +1411 -39 -51 -1049 +38 +52 +1450 -51 -69 -1049 +52 +72 +1390 -69 -93 -1048 +72 +101 +1371 -93 -133 -1044 +101 +148 +1369 -133 -204 -1028 +148 +233 +1376 -204 -378 -1027 +233 +449 +1368 -378 +449 44061 -989 +1333 @@ -8534,67 +8786,67 @@ 1 7 -698 +1283 7 10 -1112 +1423 10 -16 -1138 +14 +1422 -16 -22 -1222 +14 +20 +1544 -22 -28 -1170 +20 +27 +1519 -28 +27 34 -1044 +1370 34 -41 -1063 +42 +1415 -41 -49 -1065 +42 +51 +1467 -49 -59 -1107 +51 +62 +1485 -59 -70 -1042 +62 +74 +1378 -70 -85 -1080 +74 +89 +1410 -85 -107 -1026 +89 +113 +1383 -107 +113 781 -912 +1130 @@ -8609,68 +8861,68 @@ 1 -10 -1068 +9 +1355 -10 -15 -1066 +9 +14 +1629 -15 -20 -959 +14 +19 +1340 -20 -23 -1174 +19 +21 +1388 -23 -30 -1103 +21 +28 +1450 -30 -39 -1060 +28 +38 +1396 -39 -51 -1062 +38 +52 +1466 -51 -69 -1061 +52 +72 +1390 -69 -93 -1036 +72 +101 +1370 -93 -133 -1039 +101 +148 +1374 -133 -204 -1033 +148 +234 +1377 -204 -379 -1030 +234 +453 +1369 -380 +453 46103 -988 +1325 @@ -8685,68 +8937,68 @@ 1 -15 -1084 +13 +1388 -15 -23 -1091 +13 +20 +1394 -23 -27 -1154 +20 +25 +1524 -27 -36 -1104 +25 +31 +1459 -36 -44 -1053 +31 +41 +1454 -44 -54 -1096 +41 +52 +1475 -54 -65 -1080 +52 +64 +1432 -65 -77 -1097 +64 +76 +1407 -77 +76 90 -1064 +1459 90 104 -1053 +1429 104 121 -1056 +1373 121 149 -1043 +1396 149 883 -704 +1039 @@ -8772,17 +9024,17 @@ 3 4 -4194 +4193 4 5 -3819 +3818 5 7 -6300 +6302 7 @@ -8792,7 +9044,7 @@ 8 10 -4991 +4990 10 @@ -8802,27 +9054,27 @@ 13 18 -5837 +5836 18 28 -5563 +5541 28 -60 -5469 +65 +5498 -60 -223 +65 +289 5443 -223 -25138 -3711 +289 +33315 +3706 @@ -8853,22 +9105,22 @@ 4 6 -5614 +5612 6 12 -5659 +5460 12 -39 -5507 +46 +5480 -39 -13512 -4467 +46 +18137 +4695 @@ -8894,7 +9146,7 @@ 3 4 -5401 +5400 4 @@ -8904,7 +9156,7 @@ 5 6 -5787 +5788 6 @@ -8914,32 +9166,32 @@ 7 9 -6496 +6494 9 12 -6083 +6073 12 18 -5599 +5518 18 -34 -5493 +39 +5564 -34 -90 -5481 +39 +109 +5477 -90 -337 -1877 +109 +370 +1903 @@ -8955,32 +9207,32 @@ 1 2 -33221 +33201 2 3 -21100 +21035 3 4 -6051 +5962 4 -8 -5780 +9 +6100 -8 -34 -5457 +9 +45 +5468 -34 -89 -914 +45 +367 +757 @@ -9006,7 +9258,7 @@ 3 4 -4747 +4746 4 @@ -9016,7 +9268,7 @@ 5 6 -3954 +3955 6 @@ -9026,12 +9278,12 @@ 7 8 -4764 +4762 8 10 -4965 +4966 10 @@ -9041,27 +9293,27 @@ 13 18 -5782 +5776 18 29 -5697 +5626 29 -58 -5476 +64 +5543 -58 -133 -5488 +64 +147 +5447 -133 -377 -1748 +147 +411 +1800 @@ -9077,58 +9329,58 @@ 1 2 -313 +312 2 3 -85 +82 3 4 -67 +61 4 5 -71 +67 5 -7 -78 +8 +106 -7 -13 -92 +8 +17 +95 -13 -38 +17 +56 88 -38 -123 +56 +168 +88 + + +172 +1186 +88 + + +1190 +16937 +88 + + +18267 +1428349 86 - -127 -1194 -85 - - -1236 -15406 -85 - - -15727 -1094594 -76 - @@ -9143,47 +9395,52 @@ 1 2 -386 +368 2 3 -155 +131 3 4 -91 +74 4 6 -82 - - -6 -12 90 -12 -45 -85 +6 +13 +89 -48 -536 -85 +13 +28 +91 -542 -3990 -85 +28 +97 +88 -4076 -13387 -67 +97 +958 +88 + + +962 +6873 +88 + + +6919 +17795 +54 @@ -9199,57 +9456,57 @@ 1 2 -351 +344 2 3 -96 +91 3 4 -65 +58 4 -5 -61 - - -5 -8 +6 100 -8 -18 -86 +6 +11 +94 -18 -52 -87 +11 +28 +90 -52 -307 -85 +28 +86 +90 -314 -2787 -85 +86 +357 +88 -2849 -9082 -85 +370 +2712 +88 -9434 -50357 -25 +2841 +9048 +88 + + +9055 +50367 +30 @@ -9265,57 +9522,57 @@ 1 2 -351 +344 2 3 -96 +90 3 4 -65 +59 4 -5 -61 - - -5 -8 +6 100 -8 -18 -86 +6 +11 +94 -18 -52 -87 +11 +28 +90 -52 -307 -85 +28 +86 +90 -319 -2788 -85 +86 +357 +88 -2852 -9085 -85 +371 +2711 +88 -9525 -53426 -25 +2842 +9053 +88 + + +9106 +53429 +30 @@ -9331,53 +9588,53 @@ 1 2 -359 +351 2 3 -105 +101 3 4 -85 +77 4 6 -85 +91 6 11 -90 +95 11 -22 -89 +23 +91 -22 -40 +23 +39 +92 + + +39 +68 +88 + + +68 +157 +88 + + +157 +450 87 - -40 -76 -86 - - -76 -197 -85 - - -199 -453 -55 - @@ -9402,7 +9659,7 @@ 3 4 -5876 +5875 4 @@ -9432,22 +9689,22 @@ 18 29 -5851 +5819 29 -66 -5624 +73 +5605 -66 -290 -5556 +73 +407 +5557 -290 -24298 -3085 +407 +32723 +3136 @@ -9473,27 +9730,27 @@ 3 4 -7358 +7357 4 6 -5646 +5645 6 12 -5903 +5743 12 -39 -5621 +46 +5573 -39 -13508 -4602 +46 +18133 +4812 @@ -9509,32 +9766,32 @@ 1 2 -37930 +37920 2 3 -17510 +17451 3 4 -5827 +5698 4 -7 -5571 +8 +6069 -7 -25 -5561 +8 +35 +5605 -25 -72 -1650 +35 +80 +1306 @@ -9560,12 +9817,12 @@ 3 4 -6607 +6605 4 5 -3869 +3870 5 @@ -9580,32 +9837,32 @@ 7 9 -6712 +6711 9 12 -6169 +6160 12 18 -5741 +5659 18 -35 -5704 +39 +5610 -35 -97 -5588 +39 +112 +5598 -97 -337 -1602 +112 +370 +1779 @@ -9631,7 +9888,7 @@ 3 5 -6505 +6504 5 @@ -9651,32 +9908,32 @@ 10 13 -5916 +5915 13 18 -5691 +5686 18 30 -5804 +5717 30 -62 -5589 +68 +5607 -62 -149 -5572 +68 +165 +5575 -149 -378 -1103 +165 +413 +1176 @@ -9692,57 +9949,57 @@ 1 2 -303 +307 2 3 -101 +102 3 4 -86 +78 4 6 -107 +102 6 10 -93 +100 10 -30 -94 +33 +93 -30 -76 -91 +33 +85 +93 -76 -274 -91 +85 +287 +93 290 -4787 -91 +3095 +93 -4919 -54258 -91 +3150 +47095 +93 -56076 -183228 -59 +47807 +264670 +80 @@ -9758,47 +10015,52 @@ 1 2 -399 +383 2 3 -159 +148 3 4 -101 +78 4 -9 -97 +7 +105 -9 -20 -94 +7 +23 +101 -20 -55 -91 +23 +46 +93 -55 -650 -91 +46 +232 +93 -651 -5179 -91 +233 +2143 +93 -5249 -10698 -84 +2153 +10467 +93 + + +10478 +13226 +47 @@ -9814,57 +10076,57 @@ 1 2 -339 +345 2 3 -112 +103 3 4 -78 +72 4 6 -107 +95 6 -13 -98 +11 +101 -13 -32 -91 +11 +37 +95 -32 -93 -92 +37 +102 +93 -93 -691 -91 +103 +442 +93 -729 -5319 -91 +443 +3057 +93 -5513 -13620 -91 +3249 +11842 +93 -13631 -22565 -17 +11855 +22748 +51 @@ -9880,52 +10142,57 @@ 1 2 -334 +332 2 3 -140 +133 3 4 -91 +85 4 6 -83 +93 6 12 -99 - - -12 -27 94 -27 -53 -91 - - -53 -81 -91 - - -81 -123 +12 +26 93 -123 -169 -91 +26 +54 +93 + + +54 +80 +94 + + +80 +117 +93 + + +117 +164 +95 + + +164 +178 +29 @@ -9941,57 +10208,57 @@ 1 2 -341 +346 2 3 -112 +103 3 4 -76 +71 4 6 -107 +95 6 -13 -98 +11 +102 -13 -32 -91 +11 +37 +94 -32 -92 -91 +37 +101 +93 -92 -665 -91 +102 +439 +93 -686 -5235 -91 +442 +3053 +93 -5316 -13328 -91 +3217 +11609 +93 -13356 -22538 -18 +11646 +22648 +51 @@ -10001,23 +10268,23 @@ numlines -213180 +333286 element_id -213180 +314329 num_lines -1200 +1502 num_code -1005 +1276 num_comment -387 +491 @@ -10031,7 +10298,12 @@ 1 2 -213180 +295373 + + +2 +3 +18956 @@ -10047,7 +10319,12 @@ 1 2 -213180 +295380 + + +2 +3 +18949 @@ -10063,7 +10340,12 @@ 1 2 -213180 +311689 + + +2 +3 +2640 @@ -10079,47 +10361,42 @@ 1 2 -505 +633 2 3 -154 +203 3 4 -92 +113 4 6 -84 +108 6 10 -94 +116 10 -20 -90 +21 +116 -20 -81 -90 +21 +93 +114 -81 -26473 -90 - - -33985 -33986 -1 +93 +79337 +99 @@ -10135,42 +10412,42 @@ 1 2 -506 +636 2 3 -158 +204 3 4 -91 +113 4 6 -87 +116 6 10 -104 +126 10 18 -101 +115 18 -32 -92 +35 +115 -32 -47 -61 +35 +48 +77 @@ -10186,42 +10463,42 @@ 1 2 -507 +635 2 3 -158 +205 3 4 -90 +111 4 6 -94 +113 6 10 -96 +126 10 -16 -94 +17 +122 -16 -27 -98 +17 +30 +117 -27 -38 -63 +30 +41 +73 @@ -10237,41 +10514,41 @@ 1 2 -407 +522 2 3 -128 +174 3 4 -78 +98 4 6 -81 +106 6 -11 -88 +12 +112 -11 -23 -77 +12 +26 +98 -23 -92 -76 +26 +137 +96 -98 -43772 +143 +104495 70 @@ -10288,42 +10565,42 @@ 1 2 -407 +523 2 3 -130 +176 3 4 -79 +98 4 6 -82 +108 6 -10 -80 +11 +100 -10 -19 -77 +11 +21 +99 -19 -36 -79 +21 +43 +99 -36 -53 -71 +43 +58 +73 @@ -10339,42 +10616,42 @@ 1 2 -409 +525 2 3 -133 +172 3 4 -76 +100 4 6 -85 +111 6 -10 -82 +11 +106 -10 -18 -79 +11 +20 +100 -18 -30 -80 +20 +35 +107 -30 -45 -61 +35 +48 +55 @@ -10390,46 +10667,46 @@ 1 2 -156 +198 2 3 -47 +66 3 4 -31 +40 4 6 -29 +36 6 10 -33 +39 10 -25 -30 +24 +37 -26 -94 -30 +24 +82 +37 -98 -11994 -30 +82 +15817 +37 -166744 -166745 +254391 +254392 1 @@ -10446,46 +10723,46 @@ 1 2 -156 +199 2 3 -47 +65 3 4 -32 +41 4 6 -30 +36 6 10 -31 +38 10 -24 -30 +23 +37 -24 -74 -30 +23 +70 +37 -74 -231 -30 +70 +309 +37 -365 -366 +372 +373 1 @@ -10502,42 +10779,42 @@ 1 2 -156 +199 2 3 -47 +65 3 4 -31 +40 4 6 -30 +37 6 10 -32 +39 10 -24 -31 +23 +37 -25 -75 -30 +23 +71 +37 -78 -327 -30 +79 +331 +37 @@ -10547,27 +10824,27 @@ assemblies -1870 +2760 id -1870 +2760 file -1870 +2758 fullname -1246 +1253 name -556 +553 version -115 +95 @@ -10581,7 +10858,7 @@ 1 2 -1870 +2760 @@ -10597,7 +10874,7 @@ 1 2 -1870 +2760 @@ -10613,7 +10890,7 @@ 1 2 -1870 +2760 @@ -10629,7 +10906,7 @@ 1 2 -1870 +2760 @@ -10645,7 +10922,12 @@ 1 2 -1870 +2756 + + +2 +3 +2 @@ -10661,7 +10943,12 @@ 1 2 -1870 +2756 + + +2 +3 +2 @@ -10677,7 +10964,7 @@ 1 2 -1870 +2758 @@ -10693,7 +10980,7 @@ 1 2 -1870 +2758 @@ -10709,22 +10996,32 @@ 1 2 -798 +722 2 3 -349 +234 3 -9 -97 +4 +84 -9 -10 -2 +4 +6 +65 + + +6 +8 +116 + + +8 +13 +32 @@ -10740,22 +11037,32 @@ 1 2 -798 +722 2 3 -349 +234 3 -9 -97 +4 +84 -9 -10 -2 +4 +6 +65 + + +6 +8 +116 + + +8 +13 +32 @@ -10771,7 +11078,7 @@ 1 2 -1246 +1253 @@ -10787,7 +11094,7 @@ 1 2 -1246 +1253 @@ -10803,42 +11110,52 @@ 1 2 -238 +181 2 3 -85 +73 3 4 -57 +47 4 5 -49 +36 5 7 -38 - - -7 -8 42 -8 -14 -44 +7 +9 +33 -26 +9 +11 +48 + + +11 +13 +37 + + +13 +15 +50 + + +15 27 -3 +6 @@ -10854,42 +11171,52 @@ 1 2 -238 +181 2 3 -85 +74 3 4 -57 +47 4 5 -49 +35 5 7 -38 - - -7 -8 42 -8 -14 -44 +7 +9 +33 -26 +9 +11 +48 + + +11 +13 +37 + + +13 +15 +50 + + +15 27 -3 +6 @@ -10905,7 +11232,7 @@ 1 2 -376 +368 2 @@ -10915,7 +11242,7 @@ 3 4 -37 +42 4 @@ -10941,7 +11268,7 @@ 1 2 -411 +404 2 @@ -10951,7 +11278,7 @@ 3 4 -37 +41 4 @@ -10972,37 +11299,52 @@ 1 2 -49 +25 2 3 -20 +15 3 4 -11 +6 4 -7 -9 +6 +8 -7 -10 +6 +7 7 -10 +7 +9 +6 + + +9 +11 +8 + + +12 31 -10 +8 33 +142 +8 + + +157 756 -9 +4 @@ -11018,37 +11360,52 @@ 1 2 -49 +25 2 3 -20 +16 3 4 -11 +6 4 -7 -9 - - -7 -10 +6 7 -10 +6 +7 +7 + + +7 +9 +6 + + +9 +11 +8 + + +12 31 -10 +8 33 +142 +8 + + +157 756 -9 +4 @@ -11064,33 +11421,38 @@ 1 2 -64 +45 2 3 -15 +14 3 -5 -9 - - -5 -8 -9 - - -8 -23 -10 - - -25 -586 +4 8 + +4 +6 +6 + + +6 +13 +8 + + +15 +27 +8 + + +30 +586 +6 + @@ -11105,33 +11467,38 @@ 1 2 -64 +46 2 3 -15 +13 3 -5 -9 - - -5 -8 -9 - - -8 -23 -10 - - -25 -166 +4 8 + +4 +6 +6 + + +6 +13 +8 + + +15 +27 +8 + + +30 +166 +6 + @@ -11140,19 +11507,19 @@ files -15550 +20987 id -15550 +20987 name -15550 +20987 simple -12907 +16459 ext @@ -11174,7 +11541,7 @@ 1 2 -15550 +20987 @@ -11190,7 +11557,7 @@ 1 2 -15550 +20987 @@ -11206,7 +11573,7 @@ 1 2 -15550 +20987 @@ -11222,7 +11589,7 @@ 1 2 -15550 +20987 @@ -11238,7 +11605,7 @@ 1 2 -15550 +20987 @@ -11254,7 +11621,7 @@ 1 2 -15550 +20987 @@ -11270,7 +11637,7 @@ 1 2 -15550 +20987 @@ -11286,7 +11653,7 @@ 1 2 -15550 +20987 @@ -11302,12 +11669,12 @@ 1 2 -12092 +15342 2 -79 -815 +417 +1117 @@ -11323,12 +11690,12 @@ 1 2 -12092 +15342 2 -79 -815 +417 +1117 @@ -11344,12 +11711,12 @@ 1 2 -12862 +16251 2 4 -45 +208 @@ -11365,7 +11732,7 @@ 1 2 -12907 +16459 @@ -11381,11 +11748,11 @@ 1 2 -1 +2 -9 -10 +2 +3 1 @@ -11394,115 +11761,95 @@ 1 -98 -99 -1 - - -112 -113 -1 - - -1853 -1854 -1 - - -13460 -13461 -1 - - - - - - -ext -name - - -12 - - -1 -2 -1 - - -9 -10 -1 - - -17 -18 -1 - - -98 -99 -1 - - -112 -113 -1 - - -1853 -1854 -1 - - -13460 -13461 -1 - - - - - - -ext -simple - - -12 - - -1 -2 -1 - - -7 -8 -1 - - -11 -12 -1 - - -56 -57 -1 - - 58 59 1 -549 -550 +2740 +2741 1 -12271 -12272 +18168 +18169 +1 + + + + + + +ext +name + + +12 + + +1 +2 +2 + + +2 +3 +1 + + +17 +18 +1 + + +58 +59 +1 + + +2740 +2741 +1 + + +18168 +18169 +1 + + + + + + +ext +simple + + +12 + + +1 +2 +3 + + +11 +12 +1 + + +31 +32 +1 + + +545 +546 +1 + + +16078 +16079 1 @@ -11533,8 +11880,8 @@ 12 -15550 -15551 +20987 +20988 1 @@ -11549,8 +11896,8 @@ 12 -15550 -15551 +20987 +20988 1 @@ -11565,8 +11912,8 @@ 12 -12907 -12908 +16459 +16460 1 @@ -11593,19 +11940,19 @@ folders -4611 +6292 id -4611 +6292 name -4528 +6258 simple -1557 +1648 @@ -11619,7 +11966,7 @@ 1 2 -4611 +6292 @@ -11635,7 +11982,7 @@ 1 2 -4611 +6292 @@ -11651,12 +11998,12 @@ 1 2 -4445 +6224 2 3 -83 +34 @@ -11672,7 +12019,7 @@ 1 2 -4528 +6258 @@ -11688,27 +12035,32 @@ 1 2 -929 +841 2 3 -312 +293 3 4 -146 +236 4 -9 -122 +6 +152 -9 -243 -48 +6 +211 +124 + + +301 +342 +2 @@ -11724,27 +12076,32 @@ 1 2 -964 +853 2 3 -300 +286 3 4 -138 +237 4 -12 -118 +6 +147 -12 -243 -37 +6 +302 +124 + + +341 +342 +1 @@ -11754,15 +12111,15 @@ containerparent -20158 +27276 parent -4611 +6292 child -20158 +27276 @@ -11776,32 +12133,32 @@ 1 2 -2359 +3258 2 3 -965 +1213 3 4 -276 +509 4 -7 -385 +6 +500 -7 -15 -347 +6 +16 +474 -15 -226 -279 +16 +230 +338 @@ -11817,7 +12174,7 @@ 1 2 -20158 +27276 @@ -11827,15 +12184,15 @@ file_extraction_mode -15330 +20927 file -15330 +20927 mode -2 +1 @@ -11849,7 +12206,7 @@ 1 2 -15330 +20927 @@ -11863,13 +12220,8 @@ 12 -3808 -3809 -1 - - -11522 -11523 +20927 +20928 1 @@ -11880,15 +12232,15 @@ namespaces -5457 +5700 id -5457 +5700 name -1491 +1313 @@ -11902,7 +12254,7 @@ 1 2 -5457 +5700 @@ -11918,37 +12270,42 @@ 1 2 -414 +67 2 3 -564 +744 3 4 -102 +55 4 -6 -132 - - -6 -8 +5 127 -8 -17 -116 +5 +7 +81 -17 +7 +9 +113 + + +9 +21 +103 + + +21 66 -36 +23 @@ -11958,15 +12315,15 @@ namespace_declarations -14700 +19007 id -14700 +19007 namespace_id -1549 +1509 @@ -11980,7 +12337,7 @@ 1 2 -14700 +19007 @@ -11996,47 +12353,47 @@ 1 2 -481 +558 2 3 -281 +223 3 4 -130 +107 4 -5 -91 - - -5 -7 -136 - - -7 -10 +6 125 -10 -16 -118 +6 +9 +126 -16 -38 -118 +9 +15 +114 -38 +15 +32 +117 + + +32 +112 +114 + + +115 646 -69 +25 @@ -12046,15 +12403,15 @@ namespace_declaration_location -14700 +19007 id -14700 +19007 loc -12601 +16071 @@ -12068,7 +12425,7 @@ 1 2 -14700 +19007 @@ -12084,17 +12441,17 @@ 1 2 -10914 +14045 2 3 -1412 +1606 3 -11 -275 +129 +420 @@ -12104,15 +12461,15 @@ parent_namespace -454645 +501755 child_id -454645 +501755 namespace_id -3755 +3630 @@ -12126,7 +12483,7 @@ 1 2 -454645 +501755 @@ -12142,52 +12499,52 @@ 1 2 -1052 +1108 2 3 -443 +423 3 4 -265 +245 4 -5 -201 +6 +334 -5 -7 -326 +6 +9 +286 -7 -11 -343 +9 +15 +308 -11 -18 -298 +15 +28 +282 -18 -33 -300 +28 +58 +276 -33 -87 -283 +58 +254 +273 -87 -144013 -244 +255 +170410 +95 @@ -12197,15 +12554,15 @@ parent_namespace_declaration -17614 +30406 child_id -14102 +21983 namespace_id -14694 +19004 @@ -12219,17 +12576,17 @@ 1 2 -12053 +16376 2 3 -1555 +4192 3 143 -494 +1415 @@ -12245,12 +12602,17 @@ 1 2 -13937 +17129 2 +7 +1458 + + +7 299 -757 +417 @@ -12260,15 +12622,15 @@ using_namespace_directives -85929 +86694 id -85929 +86694 namespace_id -1294 +1088 @@ -12282,7 +12644,7 @@ 1 2 -85929 +86694 @@ -12298,52 +12660,52 @@ 1 2 -322 +291 2 3 -193 +138 3 4 -109 +85 4 6 -112 +100 6 9 -98 +82 9 15 -110 +86 15 -29 -103 +27 +91 -29 -71 -99 +27 +53 +82 -71 -265 -98 +54 +237 +82 -266 -8577 -50 +241 +8479 +51 @@ -12353,15 +12715,15 @@ using_static_directives -253 +321 id -253 +321 type_id -74 +98 @@ -12375,7 +12737,7 @@ 1 2 -253 +321 @@ -12391,37 +12753,37 @@ 1 2 -17 +29 2 3 -28 +32 3 4 -7 +9 4 5 -8 +10 5 -7 -5 +9 +9 -8 -12 -5 +9 +15 +8 -12 +15 16 -4 +1 @@ -12431,15 +12793,15 @@ using_directive_location -86182 +87015 id -86182 +87015 loc -73015 +71734 @@ -12453,7 +12815,7 @@ 1 2 -86182 +87015 @@ -12469,17 +12831,17 @@ 1 2 -61748 +59536 2 3 -9952 +10489 3 -12 -1315 +129 +1709 @@ -12489,11 +12851,11 @@ types -507522 +555841 id -507522 +555841 kind @@ -12501,7 +12863,7 @@ name -146855 +158850 @@ -12515,7 +12877,7 @@ 1 2 -507522 +555841 @@ -12531,7 +12893,7 @@ 1 2 -507522 +555841 @@ -12550,28 +12912,28 @@ 18 -272 -2028 +456 +2280 2 -2476 -7952 +2682 +9836 2 -8356 -37595 +11359 +43621 2 -49262 -80546 +55958 +80354 2 -142002 -176860 +142562 +206666 2 @@ -12591,28 +12953,28 @@ 18 -194 -562 +312 +578 2 -931 -995 +852 +994 2 -2768 -5106 +2988 +6687 2 -12169 -19871 +13823 +21622 2 -46794 -59834 +55697 +56500 2 @@ -12629,27 +12991,27 @@ 1 2 -99207 +105413 2 3 -22271 +27307 3 4 -10613 +9579 4 8 -11224 +12599 8 -10421 -3540 +11441 +3952 @@ -12665,12 +13027,12 @@ 1 2 -144518 +157673 2 5 -2337 +1177 @@ -12680,15 +13042,15 @@ typerefs -427553 +462875 id -427553 +462875 name -64947 +69295 @@ -12702,7 +13064,7 @@ 1 2 -427553 +462875 @@ -12718,22 +13080,22 @@ 1 2 -47720 +50533 2 3 -8138 +10126 3 -5 -5295 +6 +6047 -5 -36269 -3794 +6 +37752 +2589 @@ -12743,15 +13105,15 @@ typeref_type -415976 +462440 id -415976 +462440 typeId -415976 +462440 @@ -12765,7 +13127,7 @@ 1 2 -415976 +462440 @@ -12781,7 +13143,7 @@ 1 2 -415976 +462440 @@ -12791,11 +13153,11 @@ array_element_type -7951 +9835 array -7951 +9835 dimension @@ -12807,7 +13169,7 @@ element -7930 +9808 @@ -12821,7 +13183,7 @@ 1 2 -7951 +9835 @@ -12837,7 +13199,7 @@ 1 2 -7951 +9835 @@ -12853,7 +13215,7 @@ 1 2 -7951 +9835 @@ -12867,18 +13229,18 @@ 12 -1 -2 +2 +3 1 -28 -29 +54 +55 1 -7922 -7923 +9779 +9780 1 @@ -12919,18 +13281,18 @@ 12 -1 -2 +2 +3 1 -27 -28 +53 +54 1 -7902 -7903 +9753 +9754 1 @@ -12950,18 +13312,18 @@ 1 -6 -7 +11 +12 1 -22 -23 +24 +25 1 -7922 -7923 +9799 +9800 1 @@ -13007,18 +13369,18 @@ 1 -6 -7 +11 +12 1 -22 -23 +24 +25 1 -7922 -7923 +9799 +9800 1 @@ -13035,12 +13397,12 @@ 1 2 -7913 +9786 2 5 -17 +22 @@ -13056,7 +13418,7 @@ 1 2 -7930 +9808 @@ -13072,12 +13434,12 @@ 1 2 -7913 +9786 2 5 -17 +22 @@ -13087,15 +13449,15 @@ nullable_underlying_type -2027 +2279 nullable -2027 +2279 underlying -1490 +1665 @@ -13109,7 +13471,7 @@ 1 2 -2027 +2279 @@ -13125,22 +13487,22 @@ 1 2 -1132 +1243 2 3 -205 +266 3 4 -138 +139 4 -7 -15 +8 +17 @@ -13150,15 +13512,15 @@ pointer_referent_type -272 +456 pointer -272 +456 referent -272 +456 @@ -13172,7 +13534,7 @@ 1 2 -272 +456 @@ -13188,7 +13550,7 @@ 1 2 -272 +456 @@ -13198,11 +13560,11 @@ enum_underlying_type -8356 +11359 enum_id -8356 +11359 underlying_type_id @@ -13220,7 +13582,7 @@ 1 2 -8356 +11359 @@ -13234,43 +13596,43 @@ 12 -6 -7 +7 +8 1 -8 -9 +10 +11 1 -16 -17 +27 +28 1 -82 -83 +103 +104 1 -111 -112 +106 +107 1 -274 -275 +435 +436 1 -404 -405 +461 +462 1 -7455 -7456 +10210 +10211 1 @@ -13281,15 +13643,15 @@ delegate_return_type -49285 +55985 delegate_id -49285 +55985 return_type_id -21520 +23894 @@ -13303,7 +13665,7 @@ 1 2 -49285 +55985 @@ -13319,17 +13681,17 @@ 1 2 -19160 +21161 2 -4 -1772 +3 +1803 -4 -7319 -588 +3 +9114 +930 @@ -13339,15 +13701,15 @@ extend -507096 +557003 sub -507096 +557003 super -12966 +12849 @@ -13361,7 +13723,7 @@ 1 2 -507096 +557003 @@ -13377,32 +13739,32 @@ 1 2 -7018 +6927 2 3 -2596 +2601 3 4 -1035 +1039 4 6 -1105 +1131 6 -24 -974 +31 +966 -24 -176860 -238 +31 +206666 +185 @@ -13412,15 +13774,15 @@ implement -681583 +752149 sub -206287 +235420 super -152713 +170825 @@ -13434,32 +13796,32 @@ 1 2 -51447 +59364 2 3 -62642 +74329 3 4 -47212 +54343 4 6 -18296 +19213 6 11 -16904 +18398 11 44 -9786 +9773 @@ -13475,32 +13837,32 @@ 1 2 -67731 +78466 2 3 -41030 +44401 3 4 -18277 +19338 4 6 -11342 +13428 6 -8 -11679 +9 +13436 -8 -151421 -2654 +9 +175652 +1756 @@ -13510,15 +13872,15 @@ type_location -333640 +430401 id -215765 +224933 loc -26226 +46244 @@ -13532,27 +13894,27 @@ 1 2 -148580 +121778 2 3 -38656 +57052 3 4 -10826 +17460 4 5 -16223 +19506 5 -104 -1480 +77 +9137 @@ -13568,17 +13930,17 @@ 1 2 -24077 +41878 2 -252 -1968 +29 +3484 -257 +29 17019 -181 +882 @@ -13588,15 +13950,15 @@ tuple_underlying_type -2894 +3134 tuple -2894 +3134 struct -1559 +1704 @@ -13610,7 +13972,7 @@ 1 2 -2894 +3134 @@ -13626,22 +13988,22 @@ 1 2 -860 +961 2 3 -447 +472 3 4 -143 +158 4 101 -109 +113 @@ -13651,11 +14013,11 @@ tuple_element -9220 +10263 tuple -2476 +2682 index @@ -13663,7 +14025,7 @@ field -9220 +10263 @@ -13677,32 +14039,37 @@ 1 2 -58 +67 2 3 -1593 +1670 3 4 -265 +306 4 -7 -226 +6 +193 -7 -13 -191 +6 +11 +219 -13 +11 +21 +212 + + +21 22 -143 +15 @@ -13718,32 +14085,37 @@ 1 2 -58 +67 2 3 -1593 +1670 3 4 -265 +306 4 -7 -226 +6 +193 -7 -13 -191 +6 +11 +219 -13 +11 +21 +212 + + +21 22 -143 +15 @@ -13757,108 +14129,108 @@ 12 -13 -14 +15 +16 1 -26 -27 +30 +31 1 -39 -40 +45 +46 1 -52 -53 +60 +61 1 -65 -66 +75 +76 1 -78 -79 +90 +91 1 -91 -92 +105 +106 1 -117 -118 +135 +136 1 -143 -144 +165 +166 1 -169 -170 +195 +196 1 -197 -198 +227 +228 1 -223 -224 +257 +258 1 -249 -250 +287 +288 1 -283 -284 +326 +327 1 -334 -335 +385 +386 1 -387 -388 +446 +447 1 -475 -476 +539 +540 1 -560 -561 +639 +640 1 -825 -826 +945 +946 1 -2418 -2419 +2615 +2616 1 -2476 -2477 +2682 +2683 1 @@ -13873,108 +14245,108 @@ 12 -13 -14 +15 +16 1 -26 -27 +30 +31 1 -39 -40 +45 +46 1 -52 -53 +60 +61 1 -65 -66 +75 +76 1 -78 -79 +90 +91 1 -91 -92 +105 +106 1 -117 -118 +135 +136 1 -143 -144 +165 +166 1 -169 -170 +195 +196 1 -197 -198 +227 +228 1 -223 -224 +257 +258 1 -249 -250 +287 +288 1 -283 -284 +326 +327 1 -334 -335 +385 +386 1 -387 -388 +446 +447 1 -475 -476 +539 +540 1 -560 -561 +639 +640 1 -825 -826 +945 +946 1 -2418 -2419 +2615 +2616 1 -2476 -2477 +2682 +2683 1 @@ -13991,7 +14363,7 @@ 1 2 -9220 +10263 @@ -14007,7 +14379,7 @@ 1 2 -9220 +10263 @@ -14017,19 +14389,19 @@ attributes -120784 +144787 id -120784 +144787 type_id -559 +517 target -67938 +74146 @@ -14043,7 +14415,7 @@ 1 2 -120784 +144787 @@ -14059,7 +14431,7 @@ 1 2 -120784 +144787 @@ -14075,62 +14447,67 @@ 1 2 -90 +46 2 3 -67 - - -3 -4 -30 - - -4 -6 -48 - - -6 -10 50 -10 -15 -46 +3 +5 +45 -15 -21 -44 +5 +8 +41 -21 -40 +8 +11 +42 + + +11 +16 43 -40 -67 -42 +16 +25 +39 -67 -114 -42 +25 +49 +46 -114 -488 -42 +49 +84 +40 -509 +84 +161 +39 + + +164 +296 +44 + + +315 +7070 +39 + + +14098 49629 -15 +3 @@ -14146,62 +14523,62 @@ 1 2 -111 +72 2 3 -66 +49 3 -4 -30 - - -4 -6 +5 40 -6 -9 -43 - - -9 -14 -42 - - -14 -20 +5 +8 44 -20 +8 +12 +45 + + +12 +19 +43 + + +19 31 -42 +40 31 -59 -42 +56 +39 -59 -101 -42 +56 +95 +41 -103 -343 -42 +95 +196 +39 -365 +201 +326 +40 + + +339 49629 -15 +25 @@ -14217,22 +14594,22 @@ 1 2 -33353 +37641 2 3 -25919 +27423 3 4 -6776 +6746 4 -853 -1890 +2518 +2336 @@ -14248,22 +14625,22 @@ 1 2 -33726 +38510 2 3 -26581 +27709 3 4 -6618 +6480 4 -14 -1013 +16 +1447 @@ -14273,15 +14650,15 @@ attribute_location -231497 +289574 id -120784 +144787 loc -119045 +140232 @@ -14293,14 +14670,9 @@ 12 -1 -2 -10071 - - 2 3 -110713 +144787 @@ -14316,12 +14688,12 @@ 1 2 -117698 +137280 2 33350 -1347 +2952 @@ -14331,19 +14703,19 @@ type_mention -1477122 +2181438 id -1477122 +2181438 type_id -40955 +64029 parent -1403992 +2040856 @@ -14357,7 +14729,7 @@ 1 2 -1477122 +2181438 @@ -14373,7 +14745,7 @@ 1 2 -1477122 +2181438 @@ -14389,47 +14761,47 @@ 1 2 -11444 +17289 2 3 -8616 +13682 3 4 -3498 +5842 4 5 -3051 +5042 5 7 -3038 +4865 7 12 -3491 +5498 12 -24 -3193 +25 +4984 -24 -80 -3077 +25 +99 +4820 -80 -112680 -1547 +99 +161715 +2007 @@ -14445,47 +14817,47 @@ 1 2 -12381 +20094 2 3 -8459 +12833 3 4 -3612 +5717 4 5 -2990 +4591 5 7 -2899 +4623 7 12 -3354 +5197 12 -25 -3238 +26 +4929 -25 -125 -3073 +26 +155 +4805 -125 -109603 -949 +155 +154065 +1240 @@ -14501,12 +14873,12 @@ 1 2 -1372976 +1950128 2 953 -31016 +90728 @@ -14522,12 +14894,12 @@ 1 2 -1384839 +2012696 2 29 -19153 +28160 @@ -14537,15 +14909,15 @@ type_mention_location -1477122 +2181438 id -1477122 +2181438 loc -1361596 +1978560 @@ -14559,7 +14931,7 @@ 1 2 -1477122 +2181438 @@ -14575,12 +14947,12 @@ 1 2 -1316306 +1892284 2 -198 -45290 +227 +86276 @@ -14590,15 +14962,15 @@ type_annotation -60856 +59922 id -60732 +59922 annotation -5 +3 @@ -14612,12 +14984,7 @@ 1 2 -60608 - - -2 -3 -124 +59922 @@ -14631,28 +14998,18 @@ 12 -105 -106 +2330 +2331 1 -1664 -1665 +17268 +17269 1 -13118 -13119 -1 - - -14761 -14762 -1 - - -31208 -31209 +40324 +40325 1 @@ -14662,26 +15019,22 @@ -type_argument_annotation -374019 +nullability +117 -constructedgeneric -279883 +nullability +117 -position -21 - - -annotation -2 +kind +3 -constructedgeneric -position +nullability +kind 12 @@ -14689,25 +15042,97 @@ 1 2 -217898 +117 + + + + + + +kind +nullability + + +12 + + +11 +12 +1 + + +49 +50 +1 + + +57 +58 +1 + + + + + + + + +nullability_parent +386 + + +nullability +25 + + +index +17 + + +parent +114 + + + + +nullability +index + + +12 + + +1 +2 +16 2 3 -50067 +3 3 -22 -11918 +4 +2 + + +5 +8 +2 + + +16 +18 +2 -constructedgeneric -annotation +nullability +parent 12 @@ -14715,121 +15140,45 @@ 1 2 -279477 +14 -2 -3 -406 +3 +4 +1 + + +4 +5 +2 - - - - - -position -constructedgeneric - - -12 - 5 6 -4 +2 -95 -96 -1 +6 +7 +2 -234 -235 -1 +23 +26 +2 -373 -374 -1 - - -512 -513 -1 - - -651 -652 -1 - - -791 -792 -1 - - -932 -933 -1 - - -1077 -1078 -1 - - -1222 -1223 -1 - - -2100 -2101 -1 - - -2364 -2365 -1 - - -2679 -2680 -1 - - -3197 -3198 -1 - - -3986 -3987 -1 - - -11918 -11919 -1 - - -62003 -62004 -1 - - -279865 -279866 -1 +30 +64 +2 -position -annotation +index +nullability 12 @@ -14837,32 +15186,36 @@ 1 2 -4 +1 2 3 -17 +9 - - - - - -annotation -constructedgeneric - - -12 - -939 -940 +3 +4 +2 + + +4 +5 1 -279350 -279351 +5 +6 +2 + + +9 +10 +1 + + +25 +26 1 @@ -14870,20 +15223,270 @@ -annotation -position +index +parent 12 -17 +1 +2 +1 + + +2 +3 +1 + + +3 +4 +1 + + +4 +5 +1 + + +5 +6 +1 + + +6 +7 +1 + + +7 +8 +1 + + +8 +9 +1 + + +9 +10 +1 + + +12 +13 +1 + + +14 +15 +1 + + +18 +19 +1 + + +22 +23 +1 + + +33 +34 +1 + + +48 +49 +1 + + +80 +81 +1 + + +114 +115 +1 + + + + + + +parent +nullability + + +12 + + +1 +2 +49 + + +2 +3 +56 + + +3 +4 +9 + + + + + + +parent +index + + +12 + + +1 +2 +34 + + +2 +3 +32 + + +3 +4 +15 + + +4 +5 +11 + + +5 +8 +10 + + +8 +15 +9 + + +15 18 -1 +3 + + + + + + + + +type_nullability +297491 + + +id +293770 + + +nullability +108 + + + + +id +nullability + + +12 + + +1 +2 +290049 -21 -22 +2 +3 +3721 + + + + + + +nullability +id + + +12 + + +1 +2 +23 + + +2 +4 +10 + + +4 +6 +9 + + +6 +9 +10 + + +9 +13 +10 + + +14 +30 +9 + + +30 +76 +9 + + +76 +285 +9 + + +292 +788 +9 + + +1023 +28413 +9 + + +188323 +188324 1 @@ -14894,33 +15497,33 @@ is_generic -71108 +73607 id -71108 +73607 is_constructed -301218 +339924 id -301218 +339924 type_parameters -80382 +80200 id -80382 +80200 index @@ -14928,7 +15531,7 @@ generic_id -48687 +49295 variance @@ -14946,7 +15549,7 @@ 1 2 -80382 +80200 @@ -14962,7 +15565,7 @@ 1 2 -80382 +80200 @@ -14978,7 +15581,7 @@ 1 2 -80382 +80200 @@ -15002,38 +15605,38 @@ 3 -31 -76 +33 +84 3 -99 -315 +110 +317 3 -498 -865 +489 +836 3 -1049 -1425 +1009 +1369 3 -1613 -2054 +1550 +1995 3 -2301 -2958 +2233 +2928 3 -3671 -48681 +3776 +49278 3 @@ -15058,38 +15661,38 @@ 3 -31 -76 +33 +84 3 -99 -315 +110 +317 3 -498 -865 +489 +836 3 -1049 -1425 +1009 +1369 3 -1613 -2054 +1550 +1995 3 -2301 -2958 +2233 +2928 3 -3671 -48688 +3776 +49296 3 @@ -15132,22 +15735,22 @@ 1 2 -40503 +41484 2 3 -4513 +4035 3 -22 -3663 +20 +3720 -23 +20 41 -8 +56 @@ -15163,22 +15766,22 @@ 1 2 -40503 +41484 2 3 -4513 +4035 3 -22 -3663 +20 +3720 -23 +20 41 -8 +56 @@ -15194,7 +15797,7 @@ 1 2 -48578 +49186 2 @@ -15213,18 +15816,18 @@ 12 -161 -162 +180 +181 1 -1243 -1244 +1500 +1501 1 -78971 -78972 +78502 +78503 1 @@ -15265,18 +15868,18 @@ 12 -160 -161 +186 +187 1 -226 -227 +244 +245 1 -48410 -48411 +48974 +48975 1 @@ -15287,11 +15890,11 @@ type_arguments -399681 +446484 id -109145 +118281 index @@ -15299,7 +15902,7 @@ constructed_id -301218 +339924 @@ -15313,17 +15916,17 @@ 1 2 -86914 +93801 2 3 -21432 +23468 3 18 -799 +1012 @@ -15339,32 +15942,32 @@ 1 2 -52585 +54689 2 3 -24128 +26868 3 4 -7419 +8139 4 7 -9307 +10745 7 -10 -8716 +9 +9001 -10 -8571 -6990 +9 +9658 +8839 @@ -15378,33 +15981,33 @@ 12 -5 -6 +4 +5 4 -38 -39 +37 +38 1 -176 -177 +175 +176 1 -314 -315 +313 +314 1 -452 -453 +451 +452 1 -590 -591 +589 +590 1 @@ -15413,58 +16016,58 @@ 1 -868 -869 +870 +871 1 -1013 -1014 +1017 +1018 1 -1156 -1157 +1161 +1162 1 -1951 -1952 +2044 +2045 1 -2028 -2029 +2144 +2145 1 -2192 -2193 +2297 +2298 1 -2499 -2500 +2628 +2629 1 -2952 -2953 +3171 +3172 1 -9725 -9726 +10871 +10872 1 -25413 -25414 +27900 +27901 1 -80771 -80772 +88130 +88131 1 @@ -15479,33 +16082,33 @@ 12 -5 -6 +4 +5 4 -95 -96 +94 +95 1 -234 -235 +233 +234 1 -373 -374 +372 +373 1 -512 -513 +511 +512 1 -651 -652 +650 +651 1 @@ -15514,58 +16117,58 @@ 1 -932 -933 +934 +935 1 -1077 -1078 +1081 +1082 1 -1222 -1223 +1227 +1228 1 -2100 -2101 +2216 +2217 1 -2364 -2365 +2506 +2507 1 -2683 -2684 +2884 +2885 1 -3208 -3209 +3505 +3506 1 -4032 -4033 +4555 +4556 1 -12237 -12238 +13989 +13990 1 -65932 -65933 +70996 +70997 1 -301218 -301219 +339924 +339925 1 @@ -15582,17 +16185,17 @@ 1 2 -236948 +270905 2 3 -53158 +56336 3 22 -11112 +12683 @@ -15608,17 +16211,17 @@ 1 2 -235286 +268928 2 3 -53695 +57007 3 22 -12237 +13989 @@ -15628,15 +16231,15 @@ constructed_generic -301218 +339924 constructed -301218 +339924 generic -5869 +6639 @@ -15650,7 +16253,7 @@ 1 2 -301218 +339924 @@ -15666,42 +16269,42 @@ 1 2 -2045 +2575 2 3 -1117 +1249 3 4 -526 +557 4 -5 -360 +6 +565 -5 -8 -460 +6 +11 +554 -8 -15 -483 +11 +25 +502 -15 -46 -451 +25 +213 +499 -46 -31135 -427 +214 +37705 +138 @@ -15711,15 +16314,15 @@ type_parameter_constraints -330908 +363573 id -330908 +363573 param_id -80545 +80353 @@ -15733,7 +16336,7 @@ 1 2 -330908 +363573 @@ -15749,27 +16352,27 @@ 1 2 -55069 +50203 2 3 -12393 +14018 3 5 -6822 +7399 5 -167 -6041 +14 +6191 -171 -7522 -220 +14 +9487 +2542 @@ -15815,15 +16418,15 @@ general_type_parameter_constraints -46646 +48124 id -46610 +47846 kind -4 +5 @@ -15837,12 +16440,12 @@ 1 2 -46574 +47568 2 3 -36 +278 @@ -15856,23 +16459,28 @@ 12 -2 -3 +60 +61 1 -318 -319 +186 +187 1 -3083 -3084 +324 +325 1 -43243 -43244 +4170 +4171 +1 + + +43384 +43385 1 @@ -15883,15 +16491,15 @@ specific_type_parameter_constraints -39729 +38432 id -39242 +37993 base_id -2954 +2291 @@ -15905,12 +16513,12 @@ 1 2 -38792 +37585 2 5 -450 +408 @@ -15926,42 +16534,47 @@ 1 2 -1312 +717 2 3 -349 +296 3 4 -270 +255 4 5 -223 +256 5 8 -223 +210 8 -14 -237 +12 +180 -14 -38 -223 +12 +22 +176 -38 -5247 -117 +22 +185 +172 + + +186 +5259 +29 @@ -15970,20 +16583,20 @@ -specific_type_parameter_annotation -6 +specific_type_parameter_nullability +306 id -6 +306 base_id -3 +36 -annotation -1 +nullability +5 @@ -15997,7 +16610,7 @@ 1 2 -6 +306 @@ -16005,7 +16618,7 @@ id -annotation +nullability 12 @@ -16013,7 +16626,7 @@ 1 2 -6 +306 @@ -16029,61 +16642,126 @@ 1 2 +3 + + +2 +3 +10 + + +3 +4 +11 + + +4 +5 +3 + + +8 +13 +3 + + +22 +25 +3 + + +36 +67 +3 + + + + + + +base_id +nullability + + +12 + + +1 +2 +35 + + +2 +3 +1 + + + + + + +nullability +id + + +12 + + +2 +3 +1 + + +4 +5 +1 + + +5 +6 +1 + + +6 +7 +1 + + +289 +290 +1 + + + + + + +nullability +base_id + + +12 + + +1 +2 2 -4 -5 +2 +3 1 - - - - - -base_id -annotation - - -12 - - -1 -2 -3 - - - - - - -annotation -id - - -12 - - -6 -7 -1 - - - - - - -annotation -base_id - - -12 - 3 4 1 + +30 +31 +1 + @@ -16140,11 +16818,11 @@ has_modifiers -3869176 +4409612 id -2587027 +2914166 mod_id @@ -16162,17 +16840,17 @@ 1 2 -1372230 +1527243 2 3 -1147995 +1280137 3 -5 -66802 +6 +106786 @@ -16186,93 +16864,93 @@ 12 -71 -72 +608 +609 1 -150 -151 +876 +877 1 -453 -454 +979 +980 1 -568 -569 +2568 +2569 1 -1224 -1225 +4159 +4160 1 -3007 -3008 +10471 +10472 1 -21791 -21792 +22235 +22236 1 -40903 -40904 +41832 +41833 1 -52292 -52293 +62104 +62105 1 -85916 -85917 +77024 +77025 1 -122762 -122763 +147707 +147708 1 -166812 -166813 +183303 +183304 1 -168050 -168051 +191235 +191236 1 -201700 -201701 +235884 +235885 1 -226436 -226437 +310096 +310097 1 -342644 -342645 +418191 +418192 1 -435003 -435004 +513043 +513044 1 -1999394 -1999395 +2187297 +2187298 1 @@ -16283,26 +16961,26 @@ compiler_generated -54510 +76391 id -54510 +76391 exprorstmt_name -201 +1762 parent_id -201 +1762 name -44 +221 @@ -16316,7 +16994,7 @@ 1 2 -201 +1762 @@ -16337,32 +17015,42 @@ 2 3 -18 +74 3 4 -4 +36 4 +5 +30 + + +5 6 -4 +14 6 -7 -3 +8 +18 8 13 -4 +20 -14 -38 -3 +13 +55 +17 + + +111 +176 +4 @@ -16372,19 +17060,19 @@ nested_types -57997 +59639 id -57997 +59639 declaring_type_id -21939 +22408 unbound_id -37006 +36073 @@ -16398,7 +17086,7 @@ 1 2 -57997 +59639 @@ -16414,7 +17102,7 @@ 1 2 -57997 +59639 @@ -16430,27 +17118,27 @@ 1 2 -11856 +12009 2 3 -3440 +3462 3 4 -3479 +3848 4 -7 -1715 +8 +1847 -7 +8 592 -1449 +1242 @@ -16466,27 +17154,27 @@ 1 2 -11883 +12105 2 3 -3455 +3437 3 4 -3471 +3833 4 -7 -1744 +8 +1847 -7 +8 592 -1386 +1186 @@ -16502,12 +17190,12 @@ 1 2 -35043 +33986 2 1139 -1963 +2087 @@ -16523,12 +17211,12 @@ 1 2 -35366 +34409 2 1139 -1640 +1664 @@ -16538,27 +17226,27 @@ properties -277986 +326745 id -277986 +326745 name -43605 +53824 declaring_type_id -67202 +77800 type_id -29120 +34329 unbound_id -184077 +209618 @@ -16572,7 +17260,7 @@ 1 2 -277986 +326745 @@ -16588,7 +17276,7 @@ 1 2 -277986 +326745 @@ -16604,7 +17292,7 @@ 1 2 -277986 +326745 @@ -16620,7 +17308,7 @@ 1 2 -277986 +326745 @@ -16636,32 +17324,32 @@ 1 2 -27030 +29682 2 3 -6251 +12552 3 4 -2804 +2436 4 7 -3533 +4763 7 -35 -3296 +66 +4039 -35 -21502 -691 +66 +26166 +352 @@ -16677,32 +17365,32 @@ 1 2 -27030 +29682 2 3 -6279 +12553 3 4 -2819 +2443 4 7 -3498 +4758 7 -35 -3295 +66 +4041 -35 -18336 -684 +66 +22680 +347 @@ -16718,22 +17406,22 @@ 1 2 -36738 +45461 2 3 -2855 +4275 3 -8 -3321 +55 +4037 -8 -3061 -691 +58 +3744 +51 @@ -16749,32 +17437,27 @@ 1 2 -27278 +29905 2 3 -6314 +12628 3 -4 -2818 +5 +4979 -4 -7 -3458 +5 +13 +4389 -7 -44 -3282 - - -44 -5880 -455 +13 +5665 +1923 @@ -16790,42 +17473,37 @@ 1 2 -21589 +26097 2 3 -20521 +23827 3 4 -6501 +7432 4 -5 -4298 +6 +6926 -5 -7 -4082 +6 +10 +6616 -7 -12 -5068 +10 +25 +5868 -12 -59 -5045 - - -59 +25 3766 -98 +1034 @@ -16841,37 +17519,37 @@ 1 2 -24075 +28521 2 3 -18654 +22076 3 4 -5987 +6893 4 -5 -4254 +6 +6926 -5 -7 -5482 +6 +9 +7156 -7 -11 -5654 +9 +36 +5835 -11 +36 3766 -3096 +393 @@ -16887,32 +17565,32 @@ 1 2 -24811 +29504 2 3 -22293 +25881 3 4 -7975 +8656 4 -5 -4735 +6 +7061 -5 -11 -5410 +6 +13 +5868 -11 +13 54 -1978 +830 @@ -16928,42 +17606,37 @@ 1 2 -21589 +26097 2 3 -20521 +23827 3 4 -6501 +7432 4 -5 -4298 +6 +6926 -5 -7 -4082 +6 +10 +6616 -7 -12 -5068 +10 +25 +5868 -12 -59 -5045 - - -59 +25 3766 -98 +1034 @@ -16979,32 +17652,27 @@ 1 2 -16756 +18227 2 3 -5933 +8740 3 4 -1876 +1980 4 7 -2274 +2891 7 -148 -2184 - - -148 -62273 -97 +70171 +2491 @@ -17020,22 +17688,17 @@ 1 2 -23964 +28616 2 3 -2857 +3226 3 -33 -2184 - - -33 -11367 -115 +17827 +2487 @@ -17051,27 +17714,27 @@ 1 2 -17446 +18941 2 3 -5749 +8659 3 4 -1941 +2056 4 8 -2243 +2771 8 -25633 -1741 +30299 +1902 @@ -17087,27 +17750,27 @@ 1 2 -16893 +18408 2 3 -6155 +9025 3 4 -2003 +2096 4 8 -2323 +2843 8 -32140 -1746 +41346 +1957 @@ -17123,12 +17786,12 @@ 1 2 -180296 +205640 2 -5587 -3781 +7099 +3978 @@ -17144,7 +17807,7 @@ 1 2 -184077 +209618 @@ -17160,12 +17823,12 @@ 1 2 -180296 +205640 2 -5587 -3781 +7099 +3978 @@ -17181,12 +17844,12 @@ 1 2 -180871 +200534 2 -1130 -3206 +1517 +9084 @@ -17196,15 +17859,15 @@ property_location -412445 +596956 id -274983 +317336 loc -32996 +64445 @@ -17218,27 +17881,27 @@ 1 2 -199797 +170365 2 3 -39513 +91549 3 4 -10699 +15062 4 5 -24258 +28727 5 -28 -716 +18 +11633 @@ -17254,12 +17917,12 @@ 1 2 -31248 +60908 2 -29600 -1748 +29742 +3537 @@ -17269,27 +17932,27 @@ indexers -23786 +29544 id -23786 +29544 name -7 +49 declaring_type_id -17060 +21477 type_id -4609 +6092 unbound_id -2432 +3019 @@ -17303,7 +17966,7 @@ 1 2 -23786 +29544 @@ -17319,7 +17982,7 @@ 1 2 -23786 +29544 @@ -17335,7 +17998,7 @@ 1 2 -23786 +29544 @@ -17351,7 +18014,7 @@ 1 2 -23786 +29544 @@ -17367,305 +18030,31 @@ 1 2 -3 +11 2 3 -1 - - -7 -8 -1 - - -14 -15 -1 - - -23758 -23759 -1 - - - - - - -name -declaring_type_id - - -12 - - -1 -2 -3 - - -2 -3 -1 - - -7 -8 -1 - - -8 -9 -1 - - -17043 -17044 -1 - - - - - - -name -type_id - - -12 - - -1 -2 -5 - - -8 -9 -1 - - -4599 -4600 -1 - - - - - - -name -unbound_id - - -12 - - -1 -2 -3 - - -2 -3 -1 - - -7 -8 -1 - - -14 -15 -1 - - -2406 -2407 -1 - - - - - - -declaring_type_id -id - - -12 - - -1 -2 -12885 - - -2 -3 -2695 - - -3 -5 -1477 - - -6 -7 -3 - - - - - - -declaring_type_id -name - - -12 - - -1 -2 -17057 - - -2 -3 -3 - - - - - - -declaring_type_id -type_id - - -12 - - -1 -2 -13102 - - -2 -3 -3957 - - -4 -5 -1 - - - - - - -declaring_type_id -unbound_id - - -12 - - -1 -2 -12885 - - -2 -3 -2695 - - -3 -5 -1477 - - -6 -7 -3 - - - - - - -type_id -id - - -12 - - -1 -2 -657 - - -2 -3 -995 +20 3 4 -1279 - - -4 -5 -262 +8 5 -6 -547 +10 +4 -6 -7 -386 +10 +43 +4 -7 -13 -366 - - -13 -4907 -117 - - - - - - -type_id -name - - -12 - - -1 -2 -4607 - - -2 -4 +53 +29271 2 @@ -17673,6 +18062,295 @@ +name +declaring_type_id + + +12 + + +1 +2 +11 + + +2 +3 +21 + + +3 +4 +7 + + +5 +10 +4 + + +10 +33 +4 + + +53 +21309 +2 + + + + + + +name +type_id + + +12 + + +1 +2 +37 + + +2 +3 +10 + + +14 +6068 +2 + + + + + + +name +unbound_id + + +12 + + +1 +2 +11 + + +2 +3 +21 + + +3 +4 +8 + + +5 +11 +4 + + +21 +54 +4 + + +2780 +2781 +1 + + + + + + +declaring_type_id +id + + +12 + + +1 +2 +16476 + + +2 +3 +3218 + + +3 +5 +1749 + + +5 +11 +34 + + + + + + +declaring_type_id +name + + +12 + + +1 +2 +21440 + + +2 +11 +37 + + + + + + +declaring_type_id +type_id + + +12 + + +1 +2 +16763 + + +2 +3 +4706 + + +3 +11 +8 + + + + + + +declaring_type_id +unbound_id + + +12 + + +1 +2 +16476 + + +2 +3 +3218 + + +3 +5 +1749 + + +5 +11 +34 + + + + + + +type_id +id + + +12 + + +1 +2 +869 + + +2 +3 +1573 + + +3 +4 +1581 + + +4 +5 +382 + + +5 +6 +681 + + +6 +7 +458 + + +7 +15 +460 + + +15 +5910 +88 + + + + + + +type_id +name + + +12 + + +1 +2 +6080 + + +2 +19 +12 + + + + + + type_id declaring_type_id @@ -17682,32 +18360,32 @@ 1 2 -772 +984 2 3 -900 +1477 3 4 -1764 +2243 4 5 -478 +584 5 -7 -351 +8 +497 -7 -4785 -344 +8 +5744 +307 @@ -17723,37 +18401,37 @@ 1 2 -667 +938 2 3 -1151 +1689 3 4 -1329 +1624 4 5 -193 +317 5 6 -582 +726 6 -7 -397 +8 +552 -7 -993 -290 +8 +1274 +246 @@ -17769,17 +18447,17 @@ 1 2 -2187 +2690 2 -28 -183 +20 +227 -28 -3834 -62 +20 +4903 +102 @@ -17795,7 +18473,7 @@ 1 2 -2432 +3019 @@ -17811,17 +18489,17 @@ 1 2 -2187 +2690 2 -28 -183 +20 +227 -28 -3834 -62 +20 +4903 +102 @@ -17837,12 +18515,17 @@ 1 2 -2258 +2786 2 -3011 -174 +555 +227 + + +562 +4006 +6 @@ -17852,15 +18535,15 @@ indexer_location -27388 +38478 id -23784 +29534 loc -427 +1544 @@ -17874,17 +18557,17 @@ 1 2 -21223 +24841 2 3 -1913 +3236 3 -11 -648 +18 +1457 @@ -17900,47 +18583,37 @@ 1 2 -168 +984 2 3 -47 +85 3 4 -32 +66 4 -5 -35 +6 +115 -5 -9 -34 +6 +13 +119 -9 -15 -35 +13 +57 +117 -15 -39 -33 - - -44 -283 -33 - - -283 -6385 -10 +59 +6373 +58 @@ -17950,11 +18623,11 @@ accessors -337094 +393080 id -337094 +393080 kind @@ -17962,15 +18635,15 @@ name -56178 +67062 declaring_member_id -291680 +339184 unbound_id -218777 +251384 @@ -17984,7 +18657,7 @@ 1 2 -337094 +393080 @@ -18000,7 +18673,7 @@ 1 2 -337094 +393080 @@ -18016,7 +18689,7 @@ 1 2 -337094 +393080 @@ -18032,7 +18705,7 @@ 1 2 -337094 +393080 @@ -18046,13 +18719,13 @@ 12 -45608 -45609 +54213 +54214 1 -291486 -291487 +338867 +338868 1 @@ -18067,13 +18740,13 @@ 12 -10798 -10799 +11762 +11763 1 -45380 -45381 +55300 +55301 1 @@ -18088,13 +18761,13 @@ 12 -45249 -45250 +52525 +52526 1 -291486 -291487 +338844 +338845 1 @@ -18109,13 +18782,13 @@ 12 -33261 -33262 +39797 +39798 1 -185516 -185517 +211587 +211588 1 @@ -18132,32 +18805,32 @@ 1 2 -34024 +35118 2 3 -8492 +16521 3 4 -3907 +3142 4 -7 -4784 +6 +5072 -7 -36 -4219 +6 +15 +5054 -36 -17260 -752 +15 +21474 +2155 @@ -18173,7 +18846,7 @@ 1 2 -56178 +67062 @@ -18189,32 +18862,32 @@ 1 2 -34058 +35213 2 3 -8490 +16742 3 4 -3887 +3102 4 -7 -4784 +6 +4876 -7 -37 -4237 +6 +16 +5111 -37 -17260 -722 +16 +21474 +2018 @@ -18230,32 +18903,32 @@ 1 2 -34365 +35393 2 3 -8582 +16651 3 4 -3929 +3073 4 -7 -4701 +6 +5095 -7 -58 -4217 +6 +17 +5105 -58 -3126 -384 +17 +3014 +1745 @@ -18271,17 +18944,17 @@ 1 2 -246623 +286982 2 3 -44725 +50646 3 -5 -332 +6 +1556 @@ -18297,12 +18970,12 @@ 1 2 -246625 +286999 2 3 -45055 +52185 @@ -18318,12 +18991,12 @@ 1 2 -246625 +286999 2 3 -45055 +52185 @@ -18339,17 +19012,17 @@ 1 2 -246623 +286982 2 3 -44725 +50646 3 -5 -332 +6 +1556 @@ -18365,12 +19038,12 @@ 1 2 -214272 +246685 2 -5587 -4505 +7099 +4699 @@ -18386,7 +19059,7 @@ 1 2 -218777 +251384 @@ -18402,7 +19075,7 @@ 1 2 -218777 +251384 @@ -18418,12 +19091,12 @@ 1 2 -214272 +246685 2 -5587 -4505 +7099 +4699 @@ -18433,15 +19106,15 @@ accessor_location -493716 +728766 id -337094 +393080 loc -38581 +75018 @@ -18455,27 +19128,27 @@ 1 2 -250312 +218037 2 3 -46346 +109741 3 4 -12722 +17821 4 5 -26975 +32479 5 -28 -739 +18 +15002 @@ -18491,12 +19164,12 @@ 1 2 -36538 +70907 2 -39761 -2043 +39694 +4111 @@ -18506,27 +19179,27 @@ events -6046 +7794 id -6046 +7794 name -3240 +2035 declaring_type_id -1381 +2249 type_id -2048 +1984 unbound_id -5720 +7233 @@ -18540,7 +19213,7 @@ 1 2 -6046 +7794 @@ -18556,7 +19229,7 @@ 1 2 -6046 +7794 @@ -18572,7 +19245,7 @@ 1 2 -6046 +7794 @@ -18588,7 +19261,7 @@ 1 2 -6046 +7794 @@ -18604,22 +19277,37 @@ 1 2 -2526 +676 2 3 -302 +303 3 +4 +561 + + +4 5 -248 +135 5 -163 -164 +7 +158 + + +7 +16 +157 + + +16 +173 +45 @@ -18635,22 +19323,32 @@ 1 2 -2526 +676 2 3 -302 +772 3 +4 +116 + + +4 5 -249 +199 5 -119 -163 +8 +154 + + +8 +125 +118 @@ -18666,17 +19364,22 @@ 1 2 -2933 +1496 2 +3 +268 + + +3 5 -261 +173 5 -26 -46 +27 +98 @@ -18692,22 +19395,37 @@ 1 2 -2544 +677 2 3 -298 +308 3 -6 -271 +4 +556 -6 -93 -127 +4 +5 +136 + + +5 +7 +159 + + +7 +16 +156 + + +16 +101 +43 @@ -18723,32 +19441,32 @@ 1 2 -701 +970 2 3 -241 +554 3 4 -139 +192 4 5 -79 +177 5 9 -121 +206 9 -465 -100 +127 +150 @@ -18764,145 +19482,150 @@ 1 2 -710 +1184 2 3 -272 +459 3 4 -108 +205 4 6 -120 +204 + + +6 +18 +169 + + +18 +127 +28 + + + + + + +declaring_type_id +type_id + + +12 + + +1 +2 +1282 + + +2 +3 +518 + + +3 +4 +182 + + +4 +7 +194 + + +7 +39 +73 + + + + + + +declaring_type_id +unbound_id + + +12 + + +1 +2 +970 + + +2 +3 +554 + + +3 +4 +192 + + +4 +5 +177 + + +5 +9 +206 + + +9 +127 +150 + + + + + + +type_id +id + + +12 + + +1 +2 +643 + + +2 +3 +313 + + +3 +4 +717 + + +4 +6 +109 6 13 -108 +152 13 -465 -63 - - - - - - -declaring_type_id -type_id - - -12 - - -1 -2 -809 - - -2 -3 -276 - - -3 -4 -106 - - -4 -6 -111 - - -6 -181 -79 - - - - - - -declaring_type_id -unbound_id - - -12 - - -1 -2 -701 - - -2 -3 -241 - - -3 -4 -139 - - -4 -5 -79 - - -5 -9 -121 - - -9 -465 -100 - - - - - - -type_id -id - - -12 - - -1 -2 -1222 - - -2 -3 -473 - - -3 -5 -181 - - -5 -29 -154 - - -30 1024 -18 +50 @@ -18918,53 +19641,48 @@ 1 2 -1507 +1649 2 3 -343 +204 + + +3 +402 +131 + + + + + + +type_id +declaring_type_id + + +12 + + +1 +2 +766 + + +2 +3 +1012 3 7 -154 +169 7 -402 -44 - - - - - - -type_id -declaring_type_id - - -12 - - -1 -2 -1640 - - -2 -3 -233 - - -3 -9 -156 - - -9 346 -19 +37 @@ -18980,27 +19698,32 @@ 1 2 -1224 +645 2 3 -474 +313 3 -5 -181 +4 +717 -5 -31 -155 +4 +6 +110 -31 +6 +13 +150 + + +13 1024 -14 +49 @@ -19016,12 +19739,12 @@ 1 2 -5671 +7200 2 33 -49 +33 @@ -19037,7 +19760,7 @@ 1 2 -5720 +7233 @@ -19053,12 +19776,12 @@ 1 2 -5671 +7200 2 33 -49 +33 @@ -19074,12 +19797,12 @@ 1 2 -5621 +6901 2 -26 -99 +6 +332 @@ -19089,15 +19812,15 @@ event_location -7637 +11829 id -5957 +7413 loc -906 +1034 @@ -19111,22 +19834,22 @@ 1 2 -5050 +5015 2 3 -454 +1707 3 -5 -452 +8 +567 8 -9 -1 +11 +124 @@ -19142,27 +19865,32 @@ 1 2 -668 +693 2 -4 -73 +3 +64 -4 -12 -68 +3 +6 +89 -12 -32 -69 +6 +14 +80 + + +14 +34 +78 36 -1532 -28 +2320 +30 @@ -19172,11 +19900,11 @@ event_accessors -12026 +13062 id -12026 +13062 kind @@ -19184,15 +19912,15 @@ name -6534 +4162 declaring_event_id -5924 +6326 unbound_id -11552 +12702 @@ -19206,7 +19934,7 @@ 1 2 -12026 +13062 @@ -19222,7 +19950,7 @@ 1 2 -12026 +13062 @@ -19238,7 +19966,7 @@ 1 2 -12026 +13062 @@ -19254,7 +19982,7 @@ 1 2 -12026 +13062 @@ -19268,8 +19996,8 @@ 12 -6013 -6014 +6531 +6532 2 @@ -19284,8 +20012,8 @@ 12 -3267 -3268 +2081 +2082 2 @@ -19300,8 +20028,8 @@ 12 -5924 -5925 +6326 +6327 2 @@ -19316,8 +20044,8 @@ 12 -5776 -5777 +6351 +6352 2 @@ -19334,22 +20062,32 @@ 1 2 -5098 +1424 2 3 -606 +1530 3 +4 +210 + + +4 5 -502 +448 5 -110 -328 +9 +358 + + +9 +117 +192 @@ -19365,7 +20103,7 @@ 1 2 -6534 +4162 @@ -19381,22 +20119,32 @@ 1 2 -5106 +1436 2 3 -614 +1560 3 +4 +220 + + +4 5 -496 +434 5 -105 -318 +9 +326 + + +9 +111 +186 @@ -19412,22 +20160,32 @@ 1 2 -5134 +1426 2 3 -600 +1540 3 -6 -542 +4 +200 -6 -72 -258 +4 +5 +450 + + +5 +9 +356 + + +9 +78 +190 @@ -19443,12 +20201,12 @@ 2 3 -5836 +6176 4 -7 -88 +11 +150 @@ -19464,7 +20222,7 @@ 2 3 -5924 +6326 @@ -19480,7 +20238,7 @@ 2 3 -5924 +6326 @@ -19496,12 +20254,12 @@ 2 3 -5836 +6176 4 -7 -88 +11 +150 @@ -19517,12 +20275,12 @@ 1 2 -11454 +12636 2 33 -98 +66 @@ -19538,7 +20296,7 @@ 1 2 -11552 +12702 @@ -19554,7 +20312,7 @@ 1 2 -11552 +12702 @@ -19570,12 +20328,12 @@ 1 2 -11454 +12636 2 33 -98 +66 @@ -19585,15 +20343,15 @@ event_accessor_location -15212 +19010 id -12026 +13062 loc -951 +1353 @@ -19607,17 +20365,22 @@ 1 2 -10234 +10644 2 3 -932 +1092 3 -5 -860 +6 +994 + + +6 +11 +332 @@ -19633,32 +20396,32 @@ 1 2 -92 +634 2 3 -624 +382 4 7 -74 +119 8 -27 -73 +25 +108 -28 -107 -72 +26 +221 +102 -114 -3063 -16 +262 +4639 +8 @@ -19668,11 +20431,11 @@ operators -14355 +18266 id -14355 +18266 name @@ -19684,15 +20447,15 @@ declaring_type_id -4406 +5817 type_id -1784 +2366 unbound_id -7361 +10445 @@ -19706,7 +20469,7 @@ 1 2 -14355 +18266 @@ -19722,7 +20485,7 @@ 1 2 -14355 +18266 @@ -19738,7 +20501,7 @@ 1 2 -14355 +18266 @@ -19754,7 +20517,7 @@ 1 2 -14355 +18266 @@ -19770,7 +20533,7 @@ 1 2 -14355 +18266 @@ -19786,68 +20549,68 @@ 6 7 -2 - - -8 -9 3 -11 -18 +9 +10 2 -23 -25 +19 +22 2 -30 -68 +28 +32 2 -73 -96 +43 +86 2 -151 -152 +107 +165 +2 + + +178 +209 +2 + + +212 +231 +2 + + +253 +290 +2 + + +298 +427 +2 + + +457 +1688 +2 + + +2364 +5359 +2 + + +5757 +5758 1 - -152 -153 -2 - - -153 -157 -2 - - -169 -172 -2 - - -189 -221 -2 - - -1456 -2125 -2 - - -4406 -4478 -2 - @@ -19878,71 +20641,66 @@ 6 7 -2 - - -8 -9 3 -11 -18 +9 +10 2 -23 -25 +19 +22 2 -30 -31 -1 - - -67 -68 +28 +32 2 -73 -82 +42 +84 2 -129 -130 -1 - - -136 -137 +84 +102 2 -137 -141 +163 +189 2 -143 -188 +192 +196 2 -218 -678 +229 +270 2 -1335 -2996 +278 +426 2 -3066 -3067 +456 +720 +2 + + +1349 +3839 +2 + + +4237 +4238 1 @@ -19962,60 +20720,55 @@ 2 -4 -5 -6 - - 5 6 +7 + + +9 +10 +2 + + +19 +22 +2 + + +28 +32 +2 + + +43 +85 +2 + + +85 +103 +2 + + +164 +182 +2 + + +230 +427 +2 + + +457 +722 +2 + + +1182 +1183 1 - -8 -9 -2 - - -11 -18 -2 - - -23 -25 -2 - - -30 -31 -1 - - -67 -68 -2 - - -73 -82 -2 - - -119 -144 -2 - - -186 -218 -2 - - -671 -970 -2 - @@ -20030,68 +20783,68 @@ 6 7 -2 - - -8 -9 3 -11 -18 +9 +10 2 -23 -25 +19 +22 2 -30 -68 +28 +32 2 -73 -96 +40 +83 2 -151 -152 -1 - - -152 -153 -2 - - -153 -157 +104 +162 2 169 -172 +209 2 -189 -221 +212 +228 2 -977 -1079 +250 +290 2 -1673 -1745 +298 +424 2 + +454 +948 +2 + + +1223 +2413 +2 + + +2811 +2812 +1 + @@ -20106,63 +20859,63 @@ 6 7 -2 - - -8 -9 3 -11 -24 +9 +10 2 -24 -31 +19 +29 2 -73 -96 +31 +44 2 -151 -152 +107 +165 +2 + + +178 +209 +2 + + +212 +275 +2 + + +289 +299 +2 + + +315 +427 +2 + + +457 +1688 +2 + + +2364 +5359 +2 + + +5757 +5758 1 - -152 -153 -2 - - -153 -157 -2 - - -188 -190 -2 - - -220 -237 -2 - - -1456 -2125 -2 - - -4406 -4478 -2 - @@ -20198,61 +20951,61 @@ 6 7 -2 - - -8 -9 3 -11 -24 +9 +10 2 -24 -31 +19 +29 2 -67 -74 +31 +43 2 -81 -132 +83 +102 2 -136 -137 +163 +189 2 -137 -141 +192 +197 2 -143 -188 +229 +270 2 -218 -678 +278 +426 2 -1335 -2996 +456 +720 2 -3066 -3067 +1349 +3839 +2 + + +4237 +4238 1 @@ -20272,53 +21025,48 @@ 2 -4 -5 -6 - - 5 6 -1 +7 -8 -9 +9 +10 2 -11 -24 +19 +29 2 -24 -31 +31 +44 2 -67 -74 +84 +103 2 -81 -122 +164 +183 2 -143 -187 +230 +427 2 -217 -672 +457 +722 2 -969 -970 +1182 +1183 1 @@ -20335,63 +21083,63 @@ 6 7 -2 - - -8 -9 3 -11 -24 +9 +10 2 -24 -31 +19 +29 2 -73 -96 +31 +41 2 -151 -152 +104 +162 +2 + + +169 +209 +2 + + +212 +272 +2 + + +289 +299 +2 + + +309 +424 +2 + + +454 +948 +2 + + +1223 +2413 +2 + + +2811 +2812 1 - -152 -153 -2 - - -153 -157 -2 - - -188 -190 -2 - - -220 -237 -2 - - -977 -1079 -2 - - -1673 -1745 -2 - @@ -20406,32 +21154,32 @@ 1 2 -1105 +1558 2 3 -1458 +1877 3 4 -144 +306 4 5 -1061 +1290 5 7 -383 +493 7 114 -255 +293 @@ -20447,27 +21195,27 @@ 1 2 -1241 +1727 2 3 -2380 +2878 3 4 -345 +588 4 7 -338 +490 7 24 -102 +134 @@ -20483,27 +21231,27 @@ 1 2 -1241 +1727 2 3 -2381 +2878 3 4 -344 +588 4 7 -350 +506 7 22 -90 +118 @@ -20519,22 +21267,22 @@ 1 2 -3187 +4141 2 3 -762 +1168 3 -4 -285 +5 +474 -4 +5 60 -172 +34 @@ -20550,32 +21298,32 @@ 1 2 -1105 +1558 2 3 -1458 +1877 3 4 -142 +303 4 5 -1062 +1290 5 7 -384 +494 7 114 -255 +295 @@ -20591,27 +21339,27 @@ 1 2 -1112 +1331 2 3 -359 +576 3 4 -131 +228 4 -20 -135 +18 +178 -20 -9397 -47 +18 +11857 +53 @@ -20627,22 +21375,22 @@ 1 2 -1451 +1779 2 3 -154 +307 3 -8 -150 +5 +185 -9 +5 18 -29 +95 @@ -20658,22 +21406,22 @@ 1 2 -1451 +1779 2 3 -156 +308 3 -7 -148 +5 +203 -8 +5 16 -29 +76 @@ -20689,17 +21437,17 @@ 1 2 -1520 +2031 2 3 -134 +181 3 -3499 -130 +4808 +154 @@ -20715,22 +21463,27 @@ 1 2 -1156 +1375 2 3 -344 +566 3 -5 -151 +4 +214 -5 -3838 -133 +4 +21 +182 + + +23 +5960 +29 @@ -20746,12 +21499,12 @@ 1 2 -7237 +10278 2 957 -124 +167 @@ -20767,7 +21520,7 @@ 1 2 -7361 +10445 @@ -20783,7 +21536,7 @@ 1 2 -7361 +10445 @@ -20799,12 +21552,12 @@ 1 2 -7237 +10278 2 957 -124 +167 @@ -20820,12 +21573,12 @@ 1 2 -7329 +10375 2 -380 -32 +436 +70 @@ -20835,15 +21588,15 @@ operator_location -17972 +27407 id -12398 +13504 loc -645 +2763 @@ -20857,22 +21610,27 @@ 1 2 -9338 +8747 2 3 -1751 +2266 3 4 -634 +753 4 -11 -675 +8 +911 + + +8 +18 +827 @@ -20888,37 +21646,22 @@ 1 2 -322 +2250 2 -3 -99 +4 +220 -3 -6 -47 +4 +58 +209 -6 -11 -57 - - -11 -40 -50 - - -40 -229 -58 - - -278 +58 4153 -12 +84 @@ -20928,15 +21671,15 @@ constant_value -123998 +149474 id -123998 +149448 value -24364 +25399 @@ -20950,7 +21693,12 @@ 1 2 -123998 +149422 + + +2 +3 +26 @@ -20966,27 +21714,27 @@ 1 2 -15909 +15881 2 3 -4035 +4778 3 5 -1856 +2077 5 12 -1925 +1909 12 -8469 -639 +10788 +754 @@ -20996,27 +21744,27 @@ methods -1076961 +1183684 id -1076961 +1183684 name -123752 +134084 declaring_type_id -122626 +133860 type_id -85751 +95938 unbound_id -485699 +526541 @@ -21030,7 +21778,7 @@ 1 2 -1076961 +1183684 @@ -21046,7 +21794,7 @@ 1 2 -1076961 +1183684 @@ -21062,7 +21810,7 @@ 1 2 -1076961 +1183684 @@ -21078,7 +21826,7 @@ 1 2 -1076961 +1183684 @@ -21094,27 +21842,27 @@ 1 2 -84817 +88559 2 3 -14120 +18867 3 5 -10260 +11037 5 13 -9409 +10205 13 -34427 -5146 +41109 +5416 @@ -21130,27 +21878,27 @@ 1 2 -88126 +92496 2 3 -13684 +18555 3 5 -9813 +10104 5 -18 -9310 +19 +10202 -18 -17762 -2819 +19 +21909 +2727 @@ -21166,17 +21914,17 @@ 1 2 -109390 +118086 2 -5 -10284 +4 +10444 -5 -13972 -4078 +4 +16981 +5554 @@ -21192,27 +21940,27 @@ 1 2 -85912 +89804 2 3 -14443 +19187 3 5 -10418 +11028 5 15 -9328 +10315 15 -9184 -3651 +9650 +3750 @@ -21228,42 +21976,47 @@ 1 2 -34188 +37015 2 3 -17314 +17719 3 4 -20964 +23020 4 5 -8816 +9486 5 6 -10575 +13094 6 10 -10963 +10992 10 -23 -10702 +21 +10067 -23 +21 +82 +10827 + + +82 2721 -9104 +1640 @@ -21279,42 +22032,42 @@ 1 2 -36689 +39708 2 3 -19872 +20610 3 4 -21628 +24897 4 5 -9733 +10091 5 6 -9479 +10989 6 10 -9575 +10083 10 -22 -9473 +21 +10169 -22 +21 2630 -6177 +7313 @@ -21330,32 +22083,32 @@ 1 2 -50588 +53734 2 3 -38419 +44021 3 4 -8775 +9050 4 -5 -8027 +6 +12331 -5 -9 -9887 +6 +13 +10314 -9 +13 1435 -6930 +4410 @@ -21371,27 +22124,27 @@ 1 2 -34249 +37120 2 3 -17356 +17732 3 4 -20967 +23026 4 5 -8827 +9496 5 6 -10584 +13109 6 @@ -21400,13 +22153,18 @@ 10 -23 -10686 +21 +10050 -23 +21 +82 +10745 + + +82 2634 -8948 +1573 @@ -21422,32 +22180,27 @@ 1 2 -53339 +58934 2 3 -12908 +16031 3 -4 -5962 +5 +8772 -4 -10 -6853 +5 +17 +7197 -10 -221 -6574 - - -222 -291373 -115 +17 +325334 +5004 @@ -21463,22 +22216,22 @@ 1 2 -65576 +74195 2 3 -7734 +8668 3 -7 -6549 +8 +7691 -7 -58312 -5892 +8 +61151 +5384 @@ -21494,22 +22247,22 @@ 1 2 -61912 +67793 2 3 -14166 +17642 3 6 -6543 +7213 6 -57678 -3130 +63071 +3290 @@ -21525,32 +22278,27 @@ 1 2 -53406 +58983 2 3 -13007 +16197 3 -4 -5965 +5 +8734 -4 -10 -6831 +5 +18 +7281 -10 -221 -6437 - - -221 -160307 -105 +18 +175281 +4743 @@ -21566,12 +22314,12 @@ 1 2 -465024 +504345 2 -8433 -20675 +10883 +22196 @@ -21587,7 +22335,7 @@ 1 2 -485699 +526541 @@ -21603,12 +22351,12 @@ 1 2 -467820 +507671 2 -8433 -17879 +10883 +18870 @@ -21624,12 +22372,12 @@ 1 2 -474343 +511409 2 -8438 -11356 +10889 +15132 @@ -21639,15 +22387,15 @@ method_location -1613197 +2029259 id -1073711 +1176044 loc -136410 +207281 @@ -21661,22 +22409,27 @@ 1 2 -685284 +641931 2 3 -300207 +392731 3 -5 -86944 +4 +45310 -5 -13 -1276 +4 +9 +90857 + + +9 +18 +5215 @@ -21692,12 +22445,17 @@ 1 2 -127523 +190293 2 +97 +15549 + + +97 122930 -8887 +1439 @@ -21707,23 +22465,23 @@ constructors -154830 +171824 id -154830 +171824 name -46607 +47516 declaring_type_id -104385 +112258 unbound_id -108271 +118081 @@ -21737,7 +22495,7 @@ 1 2 -154830 +171824 @@ -21753,7 +22511,7 @@ 1 2 -154830 +171824 @@ -21769,7 +22527,7 @@ 1 2 -154830 +171824 @@ -21785,27 +22543,27 @@ 1 2 -29993 +29299 2 3 -8076 +9048 3 4 -2952 +2448 4 7 -3570 +4174 7 -8393 -2016 +9204 +2547 @@ -21821,22 +22579,22 @@ 1 2 -34660 +34025 2 3 -6241 +7559 3 -5 -3617 +6 +4238 -5 -5524 -2089 +6 +6154 +1694 @@ -21852,27 +22610,27 @@ 1 2 -30316 +29766 2 3 -8174 +9080 3 4 -2879 +2367 4 -8 -3698 +7 +4051 -8 -4201 -1540 +7 +3757 +2252 @@ -21888,22 +22646,22 @@ 1 2 -83056 +87385 2 3 -11296 +13079 3 -8 -8546 +7 +8631 -8 -44 -1487 +7 +84 +3163 @@ -21919,7 +22677,7 @@ 1 2 -104385 +112258 @@ -21935,22 +22693,22 @@ 1 2 -83056 +87383 2 3 -11296 +13081 3 -8 -8546 +7 +8629 -8 -44 -1487 +7 +84 +3165 @@ -21966,12 +22724,12 @@ 1 2 -106112 +115422 2 -1790 -2159 +1848 +2659 @@ -21987,7 +22745,7 @@ 1 2 -108271 +118081 @@ -22003,12 +22761,12 @@ 1 2 -106112 +115422 2 -1790 -2159 +1848 +2659 @@ -22018,15 +22776,15 @@ constructor_location -222090 +283625 id -154828 +171819 loc -19558 +37542 @@ -22040,22 +22798,22 @@ 1 2 -112277 +109508 2 3 -24589 +35225 3 4 -11838 +14677 4 -28 -6124 +17 +12409 @@ -22071,17 +22829,17 @@ 1 2 -17208 +33267 2 -7 -1512 +6 +2946 -7 -17811 -838 +6 +17817 +1329 @@ -22091,23 +22849,23 @@ destructors -461 +569 id -461 +569 name -288 +313 declaring_type_id -461 +569 unbound_id -413 +503 @@ -22121,7 +22879,7 @@ 1 2 -461 +569 @@ -22137,7 +22895,7 @@ 1 2 -461 +569 @@ -22153,7 +22911,7 @@ 1 2 -461 +569 @@ -22169,84 +22927,84 @@ 1 2 -220 +214 2 3 -36 - - -3 -5 -23 - - -5 -25 -9 - - - - - - -name -declaring_type_id - - -12 - - -1 -2 -220 - - -2 -3 -36 - - -3 -5 -23 - - -5 -25 -9 - - - - - - -name -unbound_id - - -12 - - -1 -2 -224 - - -2 -3 -37 +61 3 6 -22 +27 6 -11 -5 +26 +11 + + + + + + +name +declaring_type_id + + +12 + + +1 +2 +214 + + +2 +3 +61 + + +3 +6 +27 + + +6 +26 +11 + + + + + + +name +unbound_id + + +12 + + +1 +2 +217 + + +2 +3 +62 + + +3 +6 +26 + + +6 +12 +8 @@ -22262,7 +23020,7 @@ 1 2 -461 +569 @@ -22278,7 +23036,7 @@ 1 2 -461 +569 @@ -22294,7 +23052,7 @@ 1 2 -461 +569 @@ -22310,12 +23068,12 @@ 1 2 -403 +491 2 22 -10 +12 @@ -22331,7 +23089,7 @@ 1 2 -413 +503 @@ -22347,12 +23105,12 @@ 1 2 -403 +491 2 22 -10 +12 @@ -22362,15 +23120,15 @@ destructor_location -842 +1270 id -461 +569 loc -168 +371 @@ -22384,27 +23142,27 @@ 1 2 -268 +247 2 3 -80 +143 3 4 -44 +53 4 5 -68 +93 -10 -11 -1 +5 +17 +33 @@ -22420,37 +23178,32 @@ 1 2 -84 +243 2 3 -20 +35 3 4 -13 +21 4 -5 -14 +6 +32 -5 -9 -14 - - -9 +6 20 -13 +28 20 75 -10 +12 @@ -22460,15 +23213,15 @@ overrides -156312 +157613 id -156312 +153631 base_id -44250 +45218 @@ -22482,7 +23235,12 @@ 1 2 -156312 +149718 + + +2 +6 +3913 @@ -22498,27 +23256,32 @@ 1 2 -24930 +24514 2 3 -9202 +9725 3 4 -3081 +3456 4 7 -3911 +4118 7 -3299 -3126 +466 +3392 + + +466 +3858 +13 @@ -22528,15 +23291,15 @@ explicitly_implements -173173 +219576 id -173173 +219576 interface_id -19919 +26939 @@ -22550,7 +23313,7 @@ 1 2 -173173 +219576 @@ -22566,42 +23329,42 @@ 1 2 -8589 +10815 2 3 -3727 +5175 3 4 -1718 +2496 4 5 -444 +901 5 6 -2452 +3149 6 -12 -1382 +11 +2183 -12 -58 -1496 +11 +43 +2025 -58 -10759 -111 +43 +11723 +195 @@ -22611,23 +23374,23 @@ local_functions -1174 +1225 id -1174 +1225 name -730 +755 return_type -166 +173 unbound_id -1172 +1223 @@ -22641,7 +23404,7 @@ 1 2 -1174 +1225 @@ -22657,7 +23420,7 @@ 1 2 -1174 +1225 @@ -22673,7 +23436,7 @@ 1 2 -1174 +1225 @@ -22689,17 +23452,17 @@ 1 2 -645 +655 2 4 -58 +68 4 102 -27 +32 @@ -22715,12 +23478,12 @@ 1 2 -722 +746 2 4 -8 +9 @@ -22736,17 +23499,17 @@ 1 2 -646 +656 2 4 -57 +67 4 102 -27 +32 @@ -22762,22 +23525,27 @@ 1 2 -121 +123 2 3 -20 +21 3 -6 -14 +5 +15 -6 -693 -11 +5 +171 +13 + + +708 +709 +1 @@ -22793,7 +23561,7 @@ 1 2 -130 +135 2 @@ -22803,12 +23571,12 @@ 3 7 -14 +15 -13 -297 -5 +9 +301 +6 @@ -22824,22 +23592,27 @@ 1 2 -121 +123 2 3 -20 +21 3 -6 -14 +5 +15 -6 -693 -11 +5 +171 +13 + + +708 +709 +1 @@ -22855,7 +23628,7 @@ 1 2 -1171 +1222 3 @@ -22876,7 +23649,7 @@ 1 2 -1172 +1223 @@ -22892,7 +23665,7 @@ 1 2 -1171 +1222 3 @@ -22907,15 +23680,15 @@ local_function_stmts -1305 +1335 fn -1305 +1335 stmt -1172 +1223 @@ -22929,7 +23702,7 @@ 1 2 -1305 +1335 @@ -22945,12 +23718,12 @@ 1 2 -1104 +1163 2 -9 -68 +4 +60 @@ -22960,11 +23733,11 @@ fields -292454 +345655 id -292454 +345655 kind @@ -22972,19 +23745,19 @@ name -103398 +119955 declaring_type_id -55991 +63411 type_id -54021 +61091 unbound_id -272257 +316899 @@ -22998,7 +23771,7 @@ 1 2 -292454 +345655 @@ -23014,7 +23787,7 @@ 1 2 -292454 +345655 @@ -23030,7 +23803,7 @@ 1 2 -292454 +345655 @@ -23046,7 +23819,7 @@ 1 2 -292454 +345655 @@ -23062,7 +23835,7 @@ 1 2 -292454 +345655 @@ -23076,13 +23849,13 @@ 12 -122762 -122763 +147707 +147708 1 -160511 -160512 +187149 +187150 1 @@ -23097,13 +23870,13 @@ 12 -40098 -40099 +49719 +49720 1 -65413 -65414 +72553 +72554 1 @@ -23118,13 +23891,13 @@ 12 -10855 -10856 +14304 +14305 1 -46872 -46873 +50951 +50952 1 @@ -23139,13 +23912,13 @@ 12 -8748 -8749 +10750 +10751 1 -46848 -46849 +52512 +52513 1 @@ -23160,13 +23933,13 @@ 12 -122638 -122639 +147035 +147036 1 -149619 -149620 +169869 +169870 1 @@ -23183,27 +23956,27 @@ 1 2 -71846 +79665 2 3 -12945 +21311 3 -4 -7951 +5 +9796 -4 -10 -8225 +5 +92 +8997 -10 -6843 -2431 +92 +6652 +186 @@ -23219,12 +23992,12 @@ 1 2 -101285 +117638 2 3 -2113 +2317 @@ -23240,27 +24013,27 @@ 1 2 -71846 +79665 2 3 -12945 +21311 3 -4 -7951 +5 +9796 -4 -10 -8225 +5 +92 +8997 -10 -6843 -2431 +92 +6652 +186 @@ -23276,22 +24049,22 @@ 1 2 -79247 +90184 2 3 -10211 +17169 3 -5 -8781 +8 +9686 -5 -4553 -5159 +8 +4099 +2916 @@ -23307,27 +24080,22 @@ 1 2 -72207 +80248 2 3 -13022 +21408 3 -4 -7894 +5 +9617 -4 -10 -7975 - - -10 -6843 -2300 +5 +6652 +8682 @@ -23343,42 +24111,42 @@ 1 2 -13938 +14274 2 3 -13645 +14991 3 4 -8248 +10294 4 5 -5544 +6512 5 6 -3469 +3957 6 8 -4613 +5374 8 -15 -4445 +14 +4901 -15 +14 4792 -2089 +3108 @@ -23394,12 +24162,12 @@ 1 2 -54255 +61567 2 3 -1736 +1844 @@ -23415,42 +24183,42 @@ 1 2 -13938 +14274 2 3 -13645 +14991 3 4 -8248 +10294 4 5 -5544 +6512 5 6 -3469 +3957 6 8 -4613 +5374 8 -15 -4445 +14 +4901 -15 +14 4792 -2089 +3108 @@ -23466,32 +24234,32 @@ 1 2 -24596 +28364 2 3 -14427 +15388 3 4 -6072 +7113 4 5 -3106 +3655 5 8 -5024 +5720 8 -184 -2766 +569 +3171 @@ -23507,42 +24275,42 @@ 1 2 -13938 +14274 2 3 -13645 +14991 3 4 -8248 +10294 4 5 -5544 +6512 5 6 -3469 +3957 6 8 -4613 +5374 8 -15 -4445 +14 +4901 -15 +14 4792 -2089 +3108 @@ -23558,32 +24326,32 @@ 1 2 -32209 +36047 2 3 -7718 +8714 3 4 -4216 +4830 4 6 -3904 +4598 6 -16 -4181 +15 +4677 -16 -31639 -1793 +15 +44112 +2225 @@ -23599,12 +24367,12 @@ 1 2 -52446 +58920 2 3 -1575 +2171 @@ -23620,27 +24388,27 @@ 1 2 -35276 +39393 2 3 -7110 +7943 3 4 -3716 +4291 4 7 -4170 +5065 7 -16842 -3749 +21402 +4399 @@ -23656,22 +24424,22 @@ 1 2 -41289 +46553 2 3 -6855 +8053 3 7 -4189 +4656 7 -11356 -1688 +13834 +1829 @@ -23687,32 +24455,32 @@ 1 2 -32287 +36177 2 3 -7753 +8726 3 4 -4195 +4784 4 6 -3885 +4580 6 -16 -4140 +15 +4634 -16 -31127 -1761 +15 +42017 +2190 @@ -23728,12 +24496,12 @@ 1 2 -270801 +314171 2 957 -1456 +2728 @@ -23749,7 +24517,12 @@ 1 2 -272257 +316894 + + +2 +3 +5 @@ -23765,7 +24538,7 @@ 1 2 -272257 +316899 @@ -23781,12 +24554,12 @@ 1 2 -270801 +314171 2 957 -1456 +2728 @@ -23802,12 +24575,12 @@ 1 2 -262887 +305378 2 957 -9370 +11521 @@ -23817,15 +24590,15 @@ field_location -471966 +680142 id -275969 +327265 loc -38796 +93985 @@ -23839,27 +24612,27 @@ 1 2 -150431 +114298 2 3 -83301 +143264 3 4 -15612 +28161 4 5 -25909 +32658 5 -14 -716 +18 +8884 @@ -23875,17 +24648,17 @@ 1 2 -33152 +83759 2 -3 -3438 +5 +7464 -3 +5 9082 -2206 +2762 @@ -23895,11 +24668,11 @@ localvars -240033 +291058 id -240033 +291058 kind @@ -23907,7 +24680,7 @@ name -34551 +45721 implicitly_typed @@ -23915,11 +24688,11 @@ type_id -14128 +18890 parent_id -240033 +291058 @@ -23933,7 +24706,7 @@ 1 2 -240033 +291058 @@ -23949,7 +24722,7 @@ 1 2 -240033 +291058 @@ -23965,7 +24738,7 @@ 1 2 -240033 +291058 @@ -23981,7 +24754,7 @@ 1 2 -240033 +291058 @@ -23997,7 +24770,7 @@ 1 2 -240033 +291058 @@ -24011,18 +24784,18 @@ 12 -11 -12 +70 +71 1 -1223 -1224 +1741 +1742 1 -238799 -238800 +289247 +289248 1 @@ -24037,18 +24810,18 @@ 12 -5 -6 +31 +32 1 -413 -414 +719 +720 1 -34260 -34261 +45123 +45124 1 @@ -24084,18 +24857,18 @@ 12 -5 -6 +29 +30 1 -32 -33 +49 +50 1 -14120 -14121 +18869 +18870 1 @@ -24110,18 +24883,18 @@ 12 -11 -12 +70 +71 1 -1223 -1224 +1741 +1742 1 -238799 -238800 +289247 +289248 1 @@ -24138,32 +24911,32 @@ 1 2 -20908 +27463 2 3 -5546 +7549 3 4 -2435 +3193 4 7 -2614 +3665 7 -62 -2595 +76 +3434 -62 -14242 -453 +76 +14308 +417 @@ -24179,12 +24952,12 @@ 1 2 -34424 +45569 2 3 -127 +152 @@ -24200,12 +24973,12 @@ 1 2 -30837 +41398 2 3 -3714 +4323 @@ -24221,17 +24994,17 @@ 1 2 -28724 +38504 2 3 -3287 +4024 3 -1256 -2540 +1437 +3193 @@ -24247,32 +25020,32 @@ 1 2 -20908 +27463 2 3 -5546 +7549 3 4 -2435 +3193 4 7 -2614 +3665 7 -62 -2595 +76 +3434 -62 -14242 -453 +76 +14308 +417 @@ -24286,13 +25059,13 @@ 12 -49660 -49661 +120891 +120892 1 -190373 -190374 +170167 +170168 1 @@ -24328,13 +25101,13 @@ 12 -11178 -11179 +23673 +23674 1 -27087 -27088 +26371 +26372 1 @@ -24349,13 +25122,13 @@ 12 -4093 -4094 +10122 +10123 1 -12464 -12465 +11399 +11400 1 @@ -24370,13 +25143,13 @@ 12 -49660 -49661 +120891 +120892 1 -190373 -190374 +170167 +170168 1 @@ -24393,36 +25166,36 @@ 1 2 -6390 +8936 2 3 -2419 +3256 3 4 -1200 +1573 4 6 -1291 +1639 6 10 -1115 +1418 10 -30 -1068 +34 +1423 -30 -52306 +34 +54940 645 @@ -24439,12 +25212,12 @@ 1 2 -14100 +18836 2 4 -28 +54 @@ -24460,27 +25233,27 @@ 1 2 -8681 +11811 2 3 -2316 +3125 3 4 -982 +1288 4 7 -1150 +1453 7 -3654 -999 +5354 +1213 @@ -24496,12 +25269,12 @@ 1 2 -11699 +16259 2 3 -2429 +2631 @@ -24517,36 +25290,36 @@ 1 2 -6390 +8936 2 3 -2419 +3256 3 4 -1200 +1573 4 6 -1291 +1639 6 10 -1115 +1418 10 -30 -1068 +34 +1423 -30 -52306 +34 +54940 645 @@ -24563,7 +25336,7 @@ 1 2 -240033 +291058 @@ -24579,7 +25352,7 @@ 1 2 -240033 +291058 @@ -24595,7 +25368,7 @@ 1 2 -240033 +291058 @@ -24611,7 +25384,7 @@ 1 2 -240033 +291058 @@ -24627,7 +25400,7 @@ 1 2 -240033 +291058 @@ -24637,15 +25410,15 @@ localvar_location -240033 +291058 id -240033 +291058 loc -233676 +278972 @@ -24659,7 +25432,7 @@ 1 2 -240033 +291058 @@ -24675,12 +25448,12 @@ 1 2 -229323 +272069 2 -9 -4353 +129 +6903 @@ -24690,19 +25463,19 @@ params -1873820 +2097984 id -1873820 +2097984 name -41364 +44551 type_id -161044 +175674 index @@ -24714,11 +25487,11 @@ parent_id -1116592 +1234259 unbound_id -877362 +987535 @@ -24732,7 +25505,7 @@ 1 2 -1873820 +2097984 @@ -24748,7 +25521,7 @@ 1 2 -1873820 +2097984 @@ -24764,7 +25537,7 @@ 1 2 -1873820 +2097984 @@ -24780,7 +25553,7 @@ 1 2 -1873820 +2097984 @@ -24796,7 +25569,7 @@ 1 2 -1873820 +2097984 @@ -24812,7 +25585,7 @@ 1 2 -1873820 +2097984 @@ -24828,47 +25601,47 @@ 1 2 -13621 +14198 2 3 -7047 +7897 3 4 -4026 +4014 4 5 -3188 +3556 5 7 -3256 +3451 7 11 -3127 +3507 11 21 -3167 +3528 21 -123 -3106 +104 +3342 -123 -129722 -826 +104 +140662 +1058 @@ -24884,22 +25657,27 @@ 1 2 -30165 +32125 2 3 -4715 +5671 3 5 -3381 +3322 5 -14591 -3103 +372 +3342 + + +376 +16189 +91 @@ -24915,22 +25693,22 @@ 1 2 -28293 +30618 2 3 -7375 +7837 3 4 -2787 +3003 4 28 -2909 +3093 @@ -24946,17 +25724,17 @@ 1 2 -38214 +41046 2 5 -3112 +3456 5 7 -38 +49 @@ -24972,47 +25750,47 @@ 1 2 -13621 +14198 2 3 -7047 +7897 3 4 -4026 +4014 4 5 -3188 +3556 5 7 -3256 +3451 7 11 -3127 +3507 11 21 -3167 +3528 21 -123 -3106 +104 +3342 -123 -129722 -826 +104 +140662 +1058 @@ -25028,47 +25806,47 @@ 1 2 -13968 +14654 2 3 -7266 +8134 3 4 -4092 +4041 4 5 -3223 +3605 5 7 -3194 +3383 7 11 -3118 +3502 11 -23 -3207 +22 +3393 -23 -539 -3103 +22 +202 +3342 -543 -67549 -193 +202 +78950 +497 @@ -25084,37 +25862,37 @@ 1 2 -91168 +95806 2 3 -17876 +20579 3 4 -8604 +9813 4 5 -10406 +12543 5 9 -12941 +14829 9 20 -12267 +13388 20 -262274 -7782 +307642 +8716 @@ -25130,22 +25908,22 @@ 1 2 -128753 +138567 2 3 -16870 +18845 3 -8 -12219 +7 +13967 -8 -6338 -3202 +7 +6231 +4295 @@ -25161,22 +25939,22 @@ 1 2 -126154 +135400 2 3 -22257 +26087 3 -8 -12236 +7 +13560 -8 +7 50 -397 +627 @@ -25192,12 +25970,12 @@ 1 2 -152216 +165275 2 6 -8828 +10399 @@ -25213,37 +25991,37 @@ 1 2 -92367 +97258 2 3 -18720 +21625 3 4 -8759 +10035 4 -6 -13993 +5 +10868 -6 -13 -14744 +5 +9 +14535 -13 -283 -12079 +9 +21 +13364 -283 -211973 -382 +21 +247760 +7989 @@ -25259,37 +26037,37 @@ 1 2 -91920 +96636 2 3 -17586 +20263 3 4 -9255 +10275 4 5 -10966 +13284 5 -9 -13759 +8 +13488 -9 -26 -12406 +8 +19 +13600 -26 -94223 -5152 +19 +105466 +8128 @@ -25318,38 +26096,38 @@ 4 -30 +31 56 4 -64 +63 109 4 124 -231 +234 4 -463 -1329 +476 +1355 4 -1755 -4383 +1804 +4752 4 -7196 -32601 +7904 +37970 4 -73082 -1116593 +83795 +1234260 4 @@ -25374,44 +26152,49 @@ 8 -4 -10 +3 +9 4 10 -19 +17 +3 + + +18 +26 4 -19 -29 +28 +42 4 -33 -53 +48 +126 4 -76 -183 +166 +532 4 -255 -752 +781 +3084 4 -1209 -4484 +4858 +17361 4 -7204 -19237 -4 +20606 +20607 +1 @@ -25440,45 +26223,40 @@ 4 -14 +15 23 -3 +4 23 -46 +51 4 -50 -80 +56 +101 4 -100 -643 +278 +841 4 -840 -1577 +1072 +1974 4 -1921 -4399 +2807 +6378 4 -5863 -49674 +12473 +122056 4 - -111424 -111425 -1 - @@ -25547,38 +26325,38 @@ 4 -30 +31 56 4 -64 +63 109 4 124 -231 +234 4 -463 -1329 +476 +1355 4 -1755 -4383 +1804 +4752 4 -7196 -32601 +7904 +37970 4 -73082 -1116593 +83795 +1234260 4 @@ -25608,38 +26386,38 @@ 4 -30 +31 56 4 -64 +63 109 4 124 -231 +234 4 -328 -741 +341 +766 4 -1019 -3147 +1065 +3474 4 -5508 -25827 +6189 +30065 4 -48569 -474892 +56290 +522599 4 @@ -25654,33 +26432,33 @@ 12 -511 -512 +922 +923 1 -8643 -8644 +6880 +6881 1 -13051 -13052 +17011 +17012 1 -29937 -29938 +28998 +28999 1 -31208 -31209 +40324 +40325 1 -1790319 -1790320 +2002611 +2002612 1 @@ -25695,33 +26473,33 @@ 12 -39 -40 +79 +80 1 -475 -476 +395 +396 1 -960 -961 +877 +878 1 -1769 -1770 +2127 +2128 1 -4676 -4677 +5406 +5407 1 -37382 -37383 +40079 +40080 1 @@ -25736,33 +26514,33 @@ 12 -125 -126 +180 +181 1 -1391 -1392 +1278 +1279 1 -1839 -1840 +2819 +2820 1 -5719 -5720 +7076 +7077 1 -10363 -10364 +11152 +11153 1 -151475 -151476 +164786 +164787 1 @@ -25818,33 +26596,33 @@ 12 -447 -448 +839 +840 1 -8643 -8644 +6880 +6881 1 -11110 -11111 +14029 +14030 1 -23417 -23418 +28998 +28999 1 -29937 -29938 +31219 +31220 1 -1093892 -1093893 +1210324 +1210325 1 @@ -25859,33 +26637,33 @@ 12 -264 -265 +463 +464 1 -5881 -5882 +4979 +4980 1 -11779 -11780 +14099 +14100 1 -18436 -18437 +17330 +17331 1 -23618 -23619 +29956 +29957 1 -817385 -817386 +920725 +920726 1 @@ -25902,22 +26680,22 @@ 1 2 -672190 +728545 2 3 -288892 +327567 3 4 -82428 +94352 4 52 -73082 +83795 @@ -25933,22 +26711,22 @@ 1 2 -672186 +728528 2 3 -288887 +327562 3 4 -82430 +94369 4 52 -73089 +83800 @@ -25964,22 +26742,22 @@ 1 2 -721470 +787670 2 3 -280220 +315961 3 5 -93921 +106814 5 41 -20981 +23814 @@ -25995,22 +26773,22 @@ 1 2 -672190 +728545 2 3 -288892 +327567 3 4 -82428 +94352 4 52 -73082 +83795 @@ -26026,12 +26804,12 @@ 1 2 -1067388 +1178256 2 5 -49204 +56003 @@ -26047,22 +26825,22 @@ 1 2 -672185 +728513 2 3 -288897 +327545 3 4 -82428 +94316 4 52 -73082 +83885 @@ -26078,12 +26856,12 @@ 1 2 -839334 +945854 2 -9488 -38028 +9523 +41681 @@ -26099,12 +26877,12 @@ 1 2 -877341 +987486 2 -12 -21 +3 +49 @@ -26120,12 +26898,12 @@ 1 2 -861642 +968168 2 -4604 -15720 +6040 +19367 @@ -26141,7 +26919,7 @@ 1 2 -877362 +987535 @@ -26157,12 +26935,12 @@ 1 2 -877361 +987518 2 3 -1 +17 @@ -26178,12 +26956,12 @@ 1 2 -839334 +945854 2 -9488 -38028 +9523 +41681 @@ -26193,15 +26971,15 @@ param_location -2407035 +2973125 id -1867344 +2084755 loc -199269 +335646 @@ -26215,22 +26993,22 @@ 1 2 -1533663 +1599701 2 3 -175244 +253142 3 5 -156584 +191770 5 -13 -1853 +17 +40142 @@ -26246,17 +27024,17 @@ 1 2 -180467 +299339 2 -7 -15302 +4 +25464 -7 -208250 -3500 +4 +207747 +10843 @@ -26266,11 +27044,11 @@ statements -1072910 +1723240 id -1072910 +1723240 kind @@ -26288,7 +27066,7 @@ 1 2 -1072910 +1723240 @@ -26302,83 +27080,83 @@ 12 -8 -18 +18 +170 2 -22 -55 +241 +245 2 -69 -77 +266 +329 2 -95 -116 +342 +449 2 -148 -150 +825 +1208 2 -179 -657 +1269 +1298 2 -1155 -1223 +1335 +1736 2 -1305 -1697 +1789 +3175 2 -1828 -2056 +4219 +4301 2 -2439 -3371 +4524 +6193 2 -5182 -5511 +8021 +8295 2 -7981 -9036 +10100 +16414 2 -10708 -34568 +53221 +63216 2 -71396 -107423 +154912 +166462 2 -213042 -262648 +253667 +470590 2 -328762 -328763 +484425 +484426 1 @@ -26389,19 +27167,19 @@ stmt_parent -915253 +1456112 stmt -915253 +1456112 index -2123 +437 parent -362670 +653326 @@ -26415,7 +27193,7 @@ 1 2 -915253 +1456112 @@ -26431,7 +27209,7 @@ 1 2 -915253 +1456112 @@ -26447,22 +27225,72 @@ 1 2 -1686 +34 -2 -15 -162 +4 +5 +36 -15 -66 -160 +6 +10 +23 -66 -269102 -115 +10 +11 +18 + + +11 +13 +37 + + +13 +19 +33 + + +19 +27 +39 + + +28 +36 +34 + + +36 +58 +35 + + +59 +102 +33 + + +103 +187 +33 + + +191 +566 +33 + + +611 +5634 +33 + + +6311 +464364 +16 @@ -26478,22 +27306,72 @@ 1 2 -1686 +34 -2 -15 -162 +4 +5 +36 -15 -66 -160 +6 +10 +23 -66 -269102 -115 +10 +11 +18 + + +11 +13 +37 + + +13 +19 +33 + + +19 +27 +39 + + +28 +36 +34 + + +36 +58 +35 + + +59 +102 +33 + + +103 +187 +33 + + +191 +566 +33 + + +611 +5634 +33 + + +6311 +464364 +16 @@ -26509,32 +27387,27 @@ 1 2 -210247 +406302 2 3 -61136 +114821 3 4 -30007 +45603 4 -6 -30325 +7 +54347 -6 -18 -27276 - - -18 -2123 -3679 +7 +437 +32253 @@ -26550,32 +27423,27 @@ 1 2 -210247 +406302 2 3 -61136 +114821 3 4 -30007 +45603 4 -6 -30325 +7 +54347 -6 -18 -27276 - - -18 -2123 -3679 +7 +437 +32253 @@ -26585,11 +27453,11 @@ stmt_parent_top_level -157657 +267128 stmt -157657 +267128 index @@ -26597,7 +27465,7 @@ parent -157653 +245404 @@ -26611,7 +27479,7 @@ 1 2 -157657 +267128 @@ -26627,7 +27495,7 @@ 1 2 -157657 +267128 @@ -26641,8 +27509,8 @@ 12 -157657 -157658 +267128 +267129 1 @@ -26657,8 +27525,8 @@ 12 -157653 -157654 +245404 +245405 1 @@ -26675,12 +27543,12 @@ 1 2 -157649 +223680 2 3 -4 +21724 @@ -26696,7 +27564,7 @@ 1 2 -157653 +245404 @@ -26706,15 +27574,15 @@ stmt_location -1072910 +1723240 id -1072910 +1723240 loc -1030702 +1626301 @@ -26728,7 +27596,7 @@ 1 2 -1072910 +1723240 @@ -26744,12 +27612,12 @@ 1 2 -1002522 +1574917 2 -12 -28180 +129 +51384 @@ -26759,15 +27627,15 @@ catch_type -2055 +4524 catch_id -2055 +4524 type_id -166 +249 kind @@ -26785,7 +27653,7 @@ 1 2 -2055 +4524 @@ -26801,7 +27669,7 @@ 1 2 -2055 +4524 @@ -26817,12 +27685,12 @@ 1 2 -60 +73 2 3 -27 +41 3 @@ -26832,27 +27700,32 @@ 4 5 -11 +28 5 -7 -15 +8 +18 -7 -13 -14 +8 +12 +22 -14 -82 -13 +12 +22 +19 -107 -389 -5 +22 +111 +19 + + +134 +766 +8 @@ -26868,7 +27741,7 @@ 1 2 -166 +249 @@ -26882,13 +27755,13 @@ 12 -317 -318 +685 +686 1 -1738 -1739 +3839 +3840 1 @@ -26908,8 +27781,8 @@ 1 -160 -161 +243 +244 1 @@ -26920,19 +27793,19 @@ expressions -4889105 +7076055 id -4889105 +7076055 kind -103 +105 type_id -48005 +64483 @@ -26946,7 +27819,7 @@ 1 2 -4889105 +7076055 @@ -26962,7 +27835,7 @@ 1 2 -4889105 +7076055 @@ -26976,69 +27849,74 @@ 12 -4 -32 -9 - - -34 -55 +8 +49 8 -64 -153 +54 +132 8 -160 -256 +145 +383 8 -257 -382 +403 +635 8 -444 -1842 +672 +1183 8 -1845 -2921 +1261 +2435 8 -3359 -4761 +2931 +4041 8 -4871 -7590 +4200 +6566 8 -8632 -17337 +7195 +12260 8 -20850 -51126 +13572 +22296 8 -58357 -331896 +24651 +40915 8 -342808 -756876 -6 +52803 +275066 +8 + + +291172 +873672 +8 + + +991740 +991741 +1 @@ -27054,57 +27932,57 @@ 1 2 -28 +33 2 -3 -6 +7 +5 -3 -5 -8 - - -5 +7 8 8 8 -16 +14 8 -20 -64 +23 +62 8 -78 -186 +64 +152 8 -215 -715 +164 +419 8 -733 -1554 +532 +1073 8 -1774 -11493 +1104 +4709 8 -12327 -14569 -5 +6810 +18882 +8 + + +18895 +20864 +3 @@ -27120,57 +27998,57 @@ 1 2 -12254 +14844 2 3 -5177 +6684 3 4 -3053 +4053 4 5 -2703 +4062 5 7 -4432 +5754 7 10 -3752 +4976 10 15 -3781 +5000 15 -25 -3779 +24 +4858 -25 -51 -3670 +24 +45 +4995 -51 -183 -3607 +45 +115 +4837 -183 -740099 -1797 +115 +911533 +4420 @@ -27186,37 +28064,42 @@ 1 2 -21735 +27769 2 3 -6947 +7925 3 4 -6168 +9070 4 5 -4210 +5626 5 -7 -4274 +6 +3807 -7 -11 -3645 +6 +8 +4690 -11 -54 -1026 +8 +13 +4982 + + +13 +56 +614 @@ -27226,19 +28109,19 @@ expr_parent -4738577 +6837747 expr -4738577 +6837747 index -7172 +8196 parent -3074959 +4501731 @@ -27252,7 +28135,7 @@ 1 2 -4738577 +6837747 @@ -27268,7 +28151,7 @@ 1 2 -4738577 +6837747 @@ -27284,27 +28167,32 @@ 1 2 -1 +1024 2 3 -3434 +1 3 4 -2717 +3434 4 -7 -601 +5 +2522 -7 -2212725 -419 +5 +10 +699 + + +10 +3276180 +516 @@ -27320,27 +28208,32 @@ 1 2 -1 +1024 2 3 -3434 +1 3 4 -2717 +3434 4 -7 -601 +5 +2522 -7 -2212725 -419 +5 +10 +699 + + +10 +3276180 +516 @@ -27356,22 +28249,22 @@ 1 2 -1908468 +2815953 2 3 -878461 +1327530 3 -5 -250958 +7 +343499 -5 -7169 -37072 +7 +8193 +14749 @@ -27387,22 +28280,22 @@ 1 2 -1908468 +2815953 2 3 -878461 +1327530 3 -5 -250958 +7 +343499 -5 -7169 -37072 +7 +8193 +14749 @@ -27412,11 +28305,11 @@ expr_parent_top_level -150528 +238308 expr -150528 +238308 index @@ -27424,7 +28317,7 @@ parent -106198 +185165 @@ -27438,7 +28331,7 @@ 1 2 -150528 +238308 @@ -27454,7 +28347,7 @@ 1 2 -150528 +238308 @@ -27468,48 +28361,48 @@ 12 -13 -14 +12 +13 1 -39 -40 +26 +27 1 -90 -91 +98 +99 1 -227 -228 +243 +244 1 -776 -777 +942 +943 1 -1641 -1642 +2399 +2400 1 -5737 -5738 +9066 +9067 1 -41969 -41970 +44849 +44850 1 -100036 -100037 +180673 +180674 1 @@ -27524,48 +28417,48 @@ 12 -13 -14 +12 +13 1 -39 -40 +26 +27 1 -90 -91 +98 +99 1 -227 -228 +243 +244 1 -776 -777 +942 +943 1 -1641 -1642 +2399 +2400 1 -5737 -5738 +8788 +8789 1 -41969 -41970 +44849 +44850 1 -100027 -100028 +175784 +175785 1 @@ -27582,17 +28475,17 @@ 1 2 -64654 +135742 2 3 -39903 +47024 3 9 -1641 +2399 @@ -27608,17 +28501,17 @@ 1 2 -64663 +140909 2 3 -39894 +41857 3 9 -1641 +2399 @@ -27628,22 +28521,22 @@ implicitly_typed_array_creation -11922 +11665 id -11922 +11665 explicitly_sized_array_creation -1067 +4292 id -1067 +4292 @@ -27692,26 +28585,26 @@ expr_compiler_generated -333735 +565505 id -333735 +565505 expr_value -975810 +1376292 id -975810 +1376292 value -148629 +170997 @@ -27725,7 +28618,7 @@ 1 2 -975810 +1376292 @@ -27741,22 +28634,22 @@ 1 2 -110088 +124844 2 3 -18409 +23274 3 7 -12465 +13927 7 -62610 -7667 +142428 +8952 @@ -27766,15 +28659,15 @@ expr_call -926537 +1301429 caller_id -926537 +1301429 target_id -106839 +157417 @@ -27788,7 +28681,7 @@ 1 2 -926537 +1301429 @@ -27804,32 +28697,32 @@ 1 2 -59013 +85870 2 3 -19203 +29491 3 4 -8209 +12178 4 7 -9384 +14128 7 -25 -8038 +27 +11933 -25 -32692 -2992 +27 +35604 +3817 @@ -27839,15 +28732,15 @@ expr_access -1851048 +2739712 accesser_id -1851048 +2739712 target_id -493998 +704804 @@ -27861,7 +28754,7 @@ 1 2 -1851048 +2739712 @@ -27877,32 +28770,37 @@ 1 2 -148659 +211418 2 3 -161012 +204592 3 4 -78460 +113092 4 5 -39494 +61793 5 -8 -38236 +7 +53915 -8 -20124 -28137 +7 +26 +52934 + + +26 +20125 +7060 @@ -27912,15 +28810,15 @@ expr_location -4889105 +7076055 id -4889105 +7076055 loc -4391516 +6141754 @@ -27934,7 +28832,7 @@ 1 2 -4889105 +7076055 @@ -27950,17 +28848,17 @@ 1 2 -3970377 +5428525 2 3 -376052 +624132 3 143 -45087 +89097 @@ -27970,15 +28868,15 @@ dynamic_member_name -976 +161 id -976 +161 name -294 +33 @@ -27992,7 +28890,7 @@ 1 2 -976 +161 @@ -28008,32 +28906,42 @@ 1 2 -155 +16 2 3 -51 +2 3 4 -30 +3 4 5 -23 +3 -5 -14 -24 +7 +8 +2 -14 -106 -11 +8 +9 +3 + + +12 +19 +3 + + +39 +40 +1 @@ -28043,22 +28951,22 @@ conditional_access -2576 +3675 id -2576 +3675 expr_argument -1169007 +1471073 id -1169007 +1471073 mode @@ -28076,7 +28984,7 @@ 1 2 -1169007 +1471073 @@ -28090,23 +28998,23 @@ 12 -97 -98 +143 +144 1 -5611 -5612 +11416 +11417 1 -10517 -10518 +17078 +17079 1 -1152782 -1152783 +1442436 +1442437 1 @@ -28117,15 +29025,15 @@ expr_argument_name -70217 +75494 id -70217 +75494 name -3869 +4229 @@ -28139,7 +29047,7 @@ 1 2 -70217 +75494 @@ -28155,47 +29063,47 @@ 1 2 -1148 +1270 2 3 -740 +838 3 4 -372 +409 4 5 -300 +331 5 7 -300 +329 7 12 -325 +348 12 -23 -302 +25 +329 -23 -88 -291 +25 +159 +318 -88 -10911 -91 +159 +10921 +57 @@ -28205,11 +29113,11 @@ xmlEncoding -112 +58 id -112 +58 encoding @@ -28227,7 +29135,7 @@ 1 2 -112 +58 @@ -28241,8 +29149,8 @@ 12 -112 -113 +58 +59 1 @@ -28601,27 +29509,27 @@ xmlElements -3426 +1226 id -3426 +1226 name -333 +207 parentid -1038 +418 idx -106 +34 fileid -112 +58 @@ -28635,7 +29543,7 @@ 1 2 -3426 +1226 @@ -28651,7 +29559,7 @@ 1 2 -3426 +1226 @@ -28667,7 +29575,7 @@ 1 2 -3426 +1226 @@ -28683,7 +29591,7 @@ 1 2 -3426 +1226 @@ -28699,42 +29607,37 @@ 1 2 -97 +78 2 3 -80 +45 3 4 -38 +23 4 5 -28 +17 5 -8 -27 +11 +16 -8 -17 -25 +11 +26 +19 -20 -53 -25 - - -62 -413 -13 +26 +138 +9 @@ -28750,7 +29653,171 @@ 1 2 -107 +86 + + +2 +3 +46 + + +3 +4 +23 + + +4 +5 +17 + + +5 +13 +18 + + +13 +41 +16 + + +51 +52 +1 + + + + + + +name +idx + + +12 + + +1 +2 +132 + + +2 +3 +38 + + +3 +5 +13 + + +5 +8 +16 + + +9 +35 +8 + + + + + + +name +fileid + + +12 + + +1 +2 +102 + + +2 +3 +47 + + +3 +4 +24 + + +4 +5 +16 + + +5 +13 +16 + + +21 +41 +2 + + + + + + +parentid +id + + +12 + + +1 +2 +222 + + +2 +3 +93 + + +3 +5 +36 + + +5 +9 +22 + + +9 +14 +33 + + +14 +35 +12 + + + + + + +parentid +name + + +12 + + +1 +2 +265 2 @@ -28759,35 +29826,20 @@ 3 -4 -44 +6 +34 -4 -5 -24 - - -5 -9 -25 - - -9 -23 -23 - - -25 -162 -23 +6 +18 +32 -name +parentid idx @@ -28796,196 +29848,32 @@ 1 2 -197 +222 2 3 -64 - - -3 -4 -26 - - -4 -6 -22 - - -6 -107 -24 - - - - - - -name -fileid - - -12 - - -1 -2 -118 - - -2 -3 -106 - - -3 -4 -50 - - -4 -6 -30 - - -6 -21 -25 - - -22 -51 -4 - - - - - - -parentid -id - - -12 - - -1 -2 -434 - - -2 -3 -298 - - -3 -4 -96 - - -4 -5 -22 - - -5 -6 -84 - - -6 -17 -78 - - -17 -107 -26 - - - - - - -parentid -name - - -12 - - -1 -2 -561 - - -2 -3 -284 +93 3 5 -76 - - -5 -8 -81 - - -8 -26 36 - - - - - -parentid -idx - - -12 - -1 -2 -434 - - -2 -3 -298 - - -3 -4 -96 - - -4 -5 +5 +9 22 -5 -6 -84 +9 +14 +33 -6 -17 -78 - - -17 -107 -26 +14 +35 +12 @@ -29001,7 +29889,7 @@ 1 2 -1038 +418 @@ -29016,13 +29904,8 @@ 1 -2 -42 - - -2 3 -6 +3 3 @@ -29030,280 +29913,46 @@ 5 -5 -6 -14 - - -6 -10 -9 - - -11 -18 -8 - - -18 -31 -8 - - -33 -97 -8 - - -104 -1039 -6 - - - - - - -idx -name - - -12 - - -1 -2 -48 - - -2 -3 -5 - - -3 -4 -21 - - -4 -8 -7 - - -8 -12 -8 - - -13 -27 -8 - - -28 -114 -8 - - -180 -181 -1 - - - - - - -idx -parentid - - -12 - - -1 -2 -42 - - -2 -3 -6 - - -3 -4 -5 - - -5 -6 -14 - - -6 -10 -9 - - -11 -18 -8 - - -18 -31 -8 - - -33 -97 -8 - - -104 -1039 -6 - - - - - - -idx -fileid - - -12 - - -1 -2 -42 - - -2 -3 -6 - - -3 -4 -19 - - -4 -8 -9 - - -9 -13 -5 - - -13 -17 -8 - - -17 -29 -8 - - -32 -92 -8 - - -112 -113 -1 - - - - - - -fileid -id - - -12 - - -1 -3 -8 - - -3 -4 -8 - - 4 5 -7 +8 5 -6 -9 - - -6 -7 -10 - - -7 9 -9 +3 9 -11 -9 +15 +3 -11 -18 -10 +18 +29 +3 -19 -27 -7 +45 +50 +3 -29 -31 -9 +53 +73 +3 -31 -49 -9 - - -51 -78 -9 - - -107 -327 -8 +103 +419 +3 -fileid +idx name @@ -29317,7 +29966,7 @@ 2 3 -27 +5 3 @@ -29326,18 +29975,186 @@ 4 +6 +2 + + +7 +11 +3 + + +11 +15 +3 + + +16 +18 +3 + + +19 +30 +3 + + +33 +73 +3 + + +121 +122 +1 + + + + + + +idx +parentid + + +12 + + +1 +3 +3 + + +3 +4 +5 + + +4 5 +8 + + +5 +9 +3 + + +9 +15 +3 + + +18 +29 +3 + + +45 +50 +3 + + +53 +73 +3 + + +103 +419 +3 + + + + + + +idx +fileid + + +12 + + +1 +3 +3 + + +3 +4 +5 + + +4 +5 +8 + + +5 +7 +2 + + +7 +8 +4 + + +8 +12 +3 + + +13 +15 +3 + + +17 +21 +3 + + +28 +59 +3 + + + + + + +fileid +id + + +12 + + +2 +3 +2 + + +3 +4 9 +4 +5 +5 + + 5 6 -8 +4 6 7 -15 +6 7 @@ -29347,27 +30164,98 @@ 8 9 -13 +6 + + +9 +10 +5 + + +10 +17 +4 + + +19 +32 +5 + + +32 +54 +5 + + +63 +238 +5 + + + + + + +fileid +name + + +12 + + +2 +3 +4 + + +3 +4 +11 + + +4 +5 +6 + + +5 +6 +4 + + +6 +7 +11 + + +7 +8 +2 + + +8 +9 +4 9 13 -8 +5 14 18 -9 +4 -18 -77 -9 +19 +32 +5 -81 -82 -1 +52 +56 +2 @@ -29381,59 +30269,49 @@ 12 -1 -2 -3 - - 2 3 -27 +4 3 4 -11 +14 4 5 -14 +8 5 6 -12 +14 6 -8 -9 +7 +3 8 -13 +10 4 13 -14 -8 +15 +4 -14 -19 -9 +15 +25 +5 -20 -33 -9 - - -37 -65 -6 +26 +48 +2 @@ -29449,58 +30327,43 @@ 1 2 -21 +16 2 3 -19 +14 3 4 -10 - - -4 -5 -6 - - -5 -7 8 -7 -8 -5 +4 +6 +3 -8 -9 -11 +6 +8 +4 9 12 -9 +5 12 -19 -9 - - -19 -33 -9 - - -37 -107 +27 5 + +31 +35 +3 + @@ -29509,23 +30372,23 @@ xmlAttrs -5138 +1785 id -5138 +1785 elementid -1923 +590 name -197 +152 value -1313 +728 idx @@ -29533,7 +30396,7 @@ fileid -107 +56 @@ -29547,7 +30410,7 @@ 1 2 -5138 +1785 @@ -29563,7 +30426,7 @@ 1 2 -5138 +1785 @@ -29579,7 +30442,7 @@ 1 2 -5138 +1785 @@ -29595,7 +30458,7 @@ 1 2 -5138 +1785 @@ -29611,7 +30474,7 @@ 1 2 -5138 +1785 @@ -29627,95 +30490,100 @@ 1 2 -546 - - -2 -3 -450 - - -3 -4 -736 - - -4 -10 -151 - - -10 -17 -40 - - - - - - -elementid -name - - -12 - - -1 -2 -546 - - -2 -3 -450 - - -3 -4 -736 - - -4 -10 -151 - - -10 -17 -40 - - - - - - -elementid -value - - -12 - - -1 -2 -549 - - -2 -3 -489 - - -3 -4 -710 - - -4 -15 175 + +2 +3 +203 + + +3 +4 +135 + + +4 +12 +41 + + +16 +17 +36 + + + + + + +elementid +name + + +12 + + +1 +2 +175 + + +2 +3 +203 + + +3 +4 +135 + + +4 +12 +41 + + +16 +17 +36 + + + + + + +elementid +value + + +12 + + +1 +2 +178 + + +2 +3 +208 + + +3 +4 +130 + + +4 +14 +43 + + +14 +15 +31 + @@ -29730,27 +30598,27 @@ 1 2 -546 +175 2 3 -450 +203 3 4 -736 +135 4 -10 -151 +12 +41 -10 +16 17 -40 +36 @@ -29766,7 +30634,7 @@ 1 2 -1923 +590 @@ -29782,46 +30650,41 @@ 1 2 -65 +62 2 3 -31 +25 3 4 -20 +15 4 -6 -13 +9 +12 -6 -13 -15 +11 +27 +12 -14 -33 -15 +27 +31 +4 36 -52 -15 +37 +14 -52 -179 -15 - - -216 -461 +54 +230 8 @@ -29838,46 +30701,41 @@ 1 2 -65 +62 2 3 -31 +25 3 4 -20 +15 4 -6 -13 +9 +12 -6 -13 -15 +11 +27 +12 -14 -33 -15 +27 +31 +4 36 -52 -15 +37 +14 -52 -179 -15 - - -216 -461 +54 +230 8 @@ -29894,32 +30752,27 @@ 1 2 -109 +98 2 3 -34 +19 3 -5 -16 +7 +14 -5 -12 -15 +7 +27 +12 -12 -42 -15 - - -43 -208 -8 +29 +139 +9 @@ -29935,22 +30788,17 @@ 1 2 -157 +128 2 3 -22 +17 3 -6 -15 - - -6 -10 -3 +7 +7 @@ -29966,27 +30814,27 @@ 1 2 -82 +72 2 3 -59 +48 3 4 -26 +11 4 -12 -16 +7 +12 -12 -48 -14 +7 +24 +9 @@ -30002,27 +30850,22 @@ 1 2 -592 +429 2 3 -421 +215 3 -4 -110 +10 +57 -4 -8 -107 - - -8 -192 -83 +10 +76 +27 @@ -30038,27 +30881,22 @@ 1 2 -603 +430 2 3 -415 +214 3 -4 -107 +10 +57 -4 -8 -106 - - -8 -174 -82 +10 +54 +27 @@ -30074,17 +30912,12 @@ 1 2 -1192 +690 2 -3 -100 - - -3 -37 -21 +28 +38 @@ -30100,12 +30933,12 @@ 1 2 -1217 +682 2 11 -96 +46 @@ -30121,22 +30954,17 @@ 1 2 -675 +486 2 3 -438 +195 3 -5 -116 - - -5 -35 -84 +21 +47 @@ -30165,48 +30993,43 @@ 1 -49 -50 +41 +42 +2 + + +42 +43 1 -80 -81 +46 +47 1 -102 -103 +63 +64 1 -104 -105 +77 +78 1 -127 -128 +212 +213 1 -191 -192 +415 +416 1 -927 -928 -1 - - -1377 -1378 -1 - - -1923 -1924 +590 +591 1 @@ -30236,48 +31059,43 @@ 1 -49 -50 +41 +42 +2 + + +42 +43 1 -80 -81 +46 +47 1 -102 -103 +63 +64 1 -104 -105 +77 +78 1 -127 -128 +212 +213 1 -191 -192 +415 +416 1 -927 -928 -1 - - -1377 -1378 -1 - - -1923 -1924 +590 +591 1 @@ -30304,7 +31122,12 @@ 4 5 -1 +2 + + +5 +6 +2 7 @@ -30312,145 +31135,8 @@ 1 -8 -9 -1 - - -11 -12 -2 - - -19 -20 -1 - - -34 -35 -1 - - -54 -55 -1 - - -57 -58 -1 - - -67 -68 -1 - - - - - - -idx -value - - -12 - - -1 -2 -3 - - -8 -9 -1 - - -26 -27 -1 - - -29 -30 -4 - - -31 -32 -2 - - -39 -40 -1 - - -66 -67 -1 - - -146 -147 -1 - - -345 -346 -1 - - -670 -671 -1 - - - - - - -idx -fileid - - -12 - - -2 -3 -5 - - -4 -5 -1 - - -5 -6 -1 - - -8 -9 -1 - - -9 -10 -1 - - -10 -11 -1 - - -11 -12 +13 +14 1 @@ -30459,23 +31145,160 @@ 1 -35 -36 +34 +35 1 -73 -74 +40 +41 1 -101 -102 +49 +50 +1 + + + + + + +idx +value + + +12 + + +1 +2 +3 + + +8 +9 1 -107 -108 +14 +15 +1 + + +16 +17 +1 + + +17 +18 +1 + + +18 +19 +1 + + +23 +24 +1 + + +25 +26 +1 + + +29 +30 +2 + + +31 +32 +1 + + +47 +48 +1 + + +211 +212 +1 + + +330 +331 +1 + + + + + + +idx +fileid + + +12 + + +2 +3 +5 + + +4 +5 +1 + + +5 +6 +1 + + +6 +7 +2 + + +7 +8 +1 + + +10 +11 +1 + + +15 +16 +1 + + +18 +19 +1 + + +28 +29 +1 + + +52 +53 +1 + + +56 +57 1 @@ -30491,63 +31314,58 @@ 1 +2 +2 + + +2 3 -9 +10 3 4 -11 +8 4 5 -11 +6 -5 +6 8 -7 +4 8 -11 -9 +10 +5 -11 +10 15 -8 +5 18 32 -9 +3 -32 -40 -8 +33 +39 +5 -40 -45 -9 +73 +115 +5 -47 -61 -9 - - -67 -118 -9 - - -174 -794 -8 +241 +338 +3 @@ -30563,62 +31381,42 @@ 1 2 -18 +17 2 3 -11 +8 3 4 -11 - - -4 -5 -9 - - -5 -8 -7 - - -8 -13 -7 - - -13 -17 8 -17 -18 -7 +4 +6 +5 -19 -26 -9 +6 +13 +5 -27 -38 -9 +16 +23 +5 -39 -72 -9 +23 +36 +4 -274 -306 -2 +41 +127 +4 @@ -30634,51 +31432,51 @@ 1 2 -5 +3 2 3 -15 +18 3 4 -25 +8 4 5 -13 +4 5 6 -8 +3 6 7 -5 +3 7 8 -14 +3 8 -11 -9 +12 +5 -11 -19 -9 +12 +18 +5 -23 -69 +18 +62 4 @@ -30694,67 +31492,52 @@ 1 +2 +2 + + +2 3 -9 +10 3 4 -12 +8 4 5 -11 +8 5 -6 -7 +7 +5 -6 -8 -8 +7 +10 +5 -9 -13 -8 - - -13 -17 -9 - - -19 +11 24 -6 +5 -24 -28 -7 - - -28 -33 -9 +27 +32 +5 33 -49 -9 +78 +5 -54 -111 -9 - - -141 -327 +95 +168 3 @@ -30771,37 +31554,37 @@ 1 2 -6 +4 2 3 -28 +24 3 4 -38 +10 4 5 -13 +3 5 6 -11 +5 6 -12 -9 +10 +5 -16 +10 17 -2 +5 @@ -30811,7 +31594,7 @@ xmlNs -20 +8 id @@ -30827,7 +31610,7 @@ fileid -19 +7 @@ -30873,12 +31656,7 @@ 4 5 -1 - - -16 -17 -1 +2 @@ -30926,12 +31704,7 @@ 4 5 -1 - - -16 -17 -1 +2 @@ -30979,12 +31752,7 @@ 4 5 -1 - - -16 -17 -1 +2 @@ -31000,7 +31768,7 @@ 1 2 -18 +6 2 @@ -31021,7 +31789,7 @@ 1 2 -18 +6 2 @@ -31042,7 +31810,7 @@ 1 2 -18 +6 2 @@ -31057,11 +31825,11 @@ xmlHasNs -982 +140 elementId -982 +140 nsId @@ -31069,7 +31837,7 @@ fileid -18 +6 @@ -31083,7 +31851,7 @@ 1 2 -982 +140 @@ -31099,7 +31867,7 @@ 1 2 -982 +140 @@ -31113,13 +31881,13 @@ 12 -470 -471 +37 +38 1 -512 -513 +103 +104 1 @@ -31139,8 +31907,8 @@ 1 -16 -17 +4 +5 1 @@ -31170,38 +31938,13 @@ 1 -25 -26 -8 - - -34 -35 +31 +32 2 -40 -41 -1 - - -43 -44 -1 - - -49 -50 -1 - - -55 -56 -1 - - -520 -521 +71 +72 1 @@ -31218,7 +31961,7 @@ 1 2 -17 +5 2 @@ -31233,23 +31976,23 @@ xmlComments -300 +152 id -300 +152 text -187 +109 parentid -120 +74 fileid -52 +37 @@ -31263,7 +32006,7 @@ 1 2 -300 +152 @@ -31279,7 +32022,7 @@ 1 2 -300 +152 @@ -31295,7 +32038,7 @@ 1 2 -300 +152 @@ -31311,285 +32054,275 @@ 1 2 -92 +79 2 3 -83 +23 3 9 -12 - - - - - - -text -parentid - - -12 - - -1 -2 -92 - - -2 -3 -83 - - -3 -9 -12 - - - - - - -text -fileid - - -12 - - -1 -2 -92 - - -2 -3 -83 - - -3 -9 -12 - - - - - - -parentid -id - - -12 - - -1 -2 -71 - - -2 -3 -15 - - -3 -4 -21 - - -4 -15 -9 - - -15 -25 -4 - - - - - - -parentid -text - - -12 - - -1 -2 -71 - - -2 -3 -15 - - -3 -4 -21 - - -4 -15 -9 - - -15 -25 -4 - - - - - - -parentid -fileid - - -12 - - -1 -2 -120 - - - - - - -fileid -id - - -12 - - -1 -2 -24 - - -2 -3 -6 - - -3 -4 -6 - - -4 -5 -5 - - -5 -10 -4 - - -14 -20 -4 - - -25 -62 -3 - - - - - - -fileid -text - - -12 - - -1 -2 -24 - - -2 -3 -6 - - -3 -4 -6 - - -4 -5 -5 - - -5 -10 -4 - - -14 -20 -4 - - -25 -62 -3 - - - - - - -fileid -parentid - - -12 - - -1 -2 -32 - - -2 -3 7 + + + + + +text +parentid + + +12 + + +1 +2 +79 + + +2 +3 +25 + + +3 +9 +5 + + + + + + +text +fileid + + +12 + + +1 +2 +79 + + +2 +3 +25 + + +3 +9 +5 + + + + + + +parentid +id + + +12 + + +1 +2 +49 + + +2 +3 +10 + 3 4 -8 +9 4 -14 +24 +6 + + + + + + +parentid +text + + +12 + + +1 +2 +49 + + +2 +3 +10 + + +3 +4 +9 + + +4 +22 +6 + + + + + + +parentid +fileid + + +12 + + +1 +2 +74 + + + + + + +fileid +id + + +12 + + +1 +2 +18 + + +2 +3 +5 + + +3 +4 +5 + + +4 +6 +2 + + +10 +11 +2 + + +14 +15 +3 + + +15 +24 +2 + + + + + + +fileid +text + + +12 + + +1 +2 +18 + + +2 +3 +5 + + +3 +4 +5 + + +4 +6 +2 + + +10 +11 +2 + + +14 +15 +3 + + +15 +22 +2 + + + + + + +fileid +parentid + + +12 + + +1 +2 +23 + + +2 +3 4 -17 -18 -1 +3 +4 +5 + + +4 +6 +2 + + +6 +8 +3 @@ -31599,19 +32332,19 @@ xmlChars -826 +238 id -826 +238 text -357 +123 parentid -826 +238 idx @@ -31623,7 +32356,7 @@ fileid -17 +10 @@ -31637,7 +32370,7 @@ 1 2 -826 +238 @@ -31653,7 +32386,7 @@ 1 2 -826 +238 @@ -31669,7 +32402,7 @@ 1 2 -826 +238 @@ -31685,7 +32418,7 @@ 1 2 -826 +238 @@ -31701,7 +32434,7 @@ 1 2 -826 +238 @@ -31717,121 +32450,111 @@ 1 2 -112 +82 2 3 -179 +26 3 -4 -17 +6 +10 -4 +6 +28 +5 + + + + + + +text +parentid + + +12 + + +1 +2 +82 + + +2 +3 +26 + + +3 +6 +10 + + +6 +28 +5 + + + + + + +text +idx + + +12 + + +1 +2 +123 + + + + + + +text +isCDATA + + +12 + + +1 +2 +123 + + + + + + +text +fileid + + +12 + + +1 +2 +89 + + +2 +3 +30 + + +3 5 -31 - - -5 -32 -18 - - - - - - -text -parentid - - -12 - - -1 -2 -112 - - -2 -3 -179 - - -3 -4 -17 - - -4 -5 -31 - - -5 -32 -18 - - - - - - -text -idx - - -12 - - -1 -2 -357 - - - - - - -text -isCDATA - - -12 - - -1 -2 -357 - - - - - - -text -fileid - - -12 - - -1 -2 -116 - - -2 -3 -220 - - -3 -9 -21 +4 @@ -31847,7 +32570,7 @@ 1 2 -826 +238 @@ -31863,7 +32586,7 @@ 1 2 -826 +238 @@ -31879,7 +32602,7 @@ 1 2 -826 +238 @@ -31895,7 +32618,7 @@ 1 2 -826 +238 @@ -31911,7 +32634,7 @@ 1 2 -826 +238 @@ -31925,8 +32648,8 @@ 12 -826 -827 +238 +239 1 @@ -31941,8 +32664,8 @@ 12 -357 -358 +123 +124 1 @@ -31957,8 +32680,8 @@ 12 -826 -827 +238 +239 1 @@ -31989,8 +32712,8 @@ 12 -17 -18 +10 +11 1 @@ -32005,13 +32728,13 @@ 12 -117 -118 +47 +48 1 -709 -710 +191 +192 1 @@ -32026,13 +32749,13 @@ 12 -74 -75 +37 +38 1 -283 -284 +86 +87 1 @@ -32047,13 +32770,13 @@ 12 -117 -118 +47 +48 1 -709 -710 +191 +192 1 @@ -32084,13 +32807,13 @@ 12 -8 -9 +6 +7 1 -17 -18 +10 +11 1 @@ -32112,41 +32835,26 @@ 2 3 +2 + + +9 +10 +2 + + +14 +15 1 -3 -4 +15 +16 1 -4 -5 -1 - - -5 -6 -1 - - -16 -17 -1 - - -21 -22 -1 - - -25 -26 -1 - - -30 -31 +36 +37 1 @@ -32155,30 +32863,10 @@ 1 -41 -42 -2 - - -63 -64 -1 - - -80 -81 -1 - - 110 111 1 - -172 -173 -2 - @@ -32198,22 +32886,12 @@ 2 3 -1 +2 -3 -4 -1 - - -4 -5 -1 - - -5 -6 -1 +8 +9 +2 11 @@ -32221,38 +32899,18 @@ 1 -12 -13 +14 +15 1 -18 -19 +15 +16 1 -20 -21 -1 - - -29 -30 -1 - - -38 -39 -2 - - -41 -42 -1 - - -57 -58 +28 +29 1 @@ -32260,11 +32918,6 @@ 74 1 - -138 -139 -2 - @@ -32284,41 +32937,26 @@ 2 3 +2 + + +9 +10 +2 + + +14 +15 1 -3 -4 +15 +16 1 -4 -5 -1 - - -5 -6 -1 - - -16 -17 -1 - - -21 -22 -1 - - -25 -26 -1 - - -30 -31 +36 +37 1 @@ -32327,30 +32965,10 @@ 1 -41 -42 -2 - - -63 -64 -1 - - -80 -81 -1 - - 110 111 1 - -172 -173 -2 - @@ -32365,7 +32983,7 @@ 1 2 -17 +10 @@ -32381,12 +32999,12 @@ 1 2 -9 +4 2 3 -8 +6 @@ -32396,15 +33014,15 @@ xmllocations -9824 +3469 xmlElement -9806 +3463 location -9824 +3469 @@ -32418,11 +33036,11 @@ 1 2 -9804 +3461 4 -17 +5 2 @@ -32439,7 +33057,7 @@ 1 2 -9824 +3469 @@ -32449,11 +33067,11 @@ commentline -348293 +526699 id -348293 +526699 kind @@ -32461,11 +33079,11 @@ text -178314 +269293 rawtext -180589 +273305 @@ -32479,7 +33097,7 @@ 1 2 -348293 +526699 @@ -32495,7 +33113,7 @@ 1 2 -348293 +526699 @@ -32511,7 +33129,7 @@ 1 2 -348293 +526699 @@ -32525,18 +33143,18 @@ 12 -2025 -2026 +10871 +10872 1 -155568 -155569 +210408 +210409 1 -190700 -190701 +305420 +305421 1 @@ -32551,18 +33169,18 @@ 12 -925 -926 +5341 +5342 1 -53848 -53849 +80159 +80160 1 -123958 -123959 +184908 +184909 1 @@ -32577,18 +33195,18 @@ 12 -1024 -1025 +5828 +5829 1 -54132 -54133 +80802 +80803 1 -125433 -125434 +186675 +186676 1 @@ -32605,17 +33223,17 @@ 1 2 -148797 +224371 2 3 -19726 +30221 3 -31960 -9791 +37016 +14701 @@ -32631,12 +33249,12 @@ 1 2 -177910 +268207 2 4 -404 +1086 @@ -32652,12 +33270,12 @@ 1 2 -176699 +266406 2 -52 -1615 +76 +2887 @@ -32673,17 +33291,17 @@ 1 2 -151083 +228701 2 3 -19835 +30180 3 -31893 -9671 +36967 +14424 @@ -32699,7 +33317,7 @@ 1 2 -180589 +273305 @@ -32715,7 +33333,7 @@ 1 2 -180589 +273305 @@ -32725,15 +33343,15 @@ commentline_location -348293 +526699 id -348293 +526699 loc -348293 +526699 @@ -32747,7 +33365,7 @@ 1 2 -348293 +526699 @@ -32763,7 +33381,7 @@ 1 2 -348293 +526699 @@ -32773,26 +33391,26 @@ commentblock -142586 +216571 id -142586 +216571 commentblock_location -142586 +216571 id -142586 +216571 loc -142586 +216571 @@ -32806,7 +33424,7 @@ 1 2 -142586 +216571 @@ -32822,7 +33440,7 @@ 1 2 -142586 +216571 @@ -32832,15 +33450,15 @@ commentblock_binding -447717 +724338 id -142583 +216569 entity -190431 +311724 bindtype @@ -32858,22 +33476,22 @@ 1 2 -51033 +60480 2 3 -24776 +40519 3 4 -63952 +109785 4 -25 -2822 +257 +5785 @@ -32889,22 +33507,22 @@ 1 2 -10757 +19145 2 3 -40830 +42539 3 4 -25115 +41305 4 5 -65881 +113580 @@ -32920,22 +33538,17 @@ 1 2 -140143 +226442 2 3 -35948 +64133 3 -68 -14284 - - -69 1882 -56 +21149 @@ -32951,22 +33564,22 @@ 1 2 -82511 +134634 2 3 -81857 +135222 3 4 -25421 +40684 4 5 -642 +1184 @@ -32980,23 +33593,23 @@ 12 -70390 -70391 +120670 +120671 1 -101775 -101776 +172840 +172841 1 -127314 -127315 +191618 +191619 1 -131807 -131808 +197330 +197331 1 @@ -33011,23 +33624,23 @@ 12 -52557 -52558 +79358 +79359 1 -70536 -70537 +122819 +122820 1 -100163 -100164 +158785 +158786 1 -101800 -101801 +170904 +170905 1 @@ -33038,19 +33651,19 @@ commentblock_child -347934 +526620 id -142586 +216571 commentline -347934 +526620 index -297 +1135 @@ -33064,27 +33677,27 @@ 1 2 -60572 +104360 2 3 -39466 +45412 3 4 -20594 +37592 4 -6 -11412 +7 +18798 -6 -298 -10542 +7 +1136 +10409 @@ -33100,27 +33713,27 @@ 1 2 -60572 +104360 2 3 -39466 +45412 3 4 -20594 +37592 4 -6 -11412 +7 +18798 -6 -298 -10542 +7 +1136 +10409 @@ -33136,7 +33749,7 @@ 1 2 -347934 +526620 @@ -33152,7 +33765,7 @@ 1 2 -347934 +526620 @@ -33168,42 +33781,37 @@ 1 2 -53 +623 2 3 -115 +73 3 4 -9 +142 4 -6 -26 +9 +56 -6 -10 -25 +9 +12 +101 -10 -40 -23 +12 +90 +86 -42 -216 -23 - - -237 -142587 -23 +91 +216572 +54 @@ -33219,42 +33827,37 @@ 1 2 -53 +623 2 3 -115 +73 3 4 -9 +142 4 -6 -26 +9 +56 -6 -10 -25 +9 +12 +101 -10 -40 -23 +12 +90 +86 -42 -216 -23 - - -237 -142587 -23 +91 +216572 +54 @@ -33264,19 +33867,19 @@ asp_elements -12090 +148 id -12090 +148 kind -9 +7 loc -12090 +148 @@ -33290,7 +33893,7 @@ 1 2 -12090 +148 @@ -33306,7 +33909,7 @@ 1 2 -12090 +148 @@ -33320,48 +33923,38 @@ 12 -14 -15 +1 +2 1 -16 -17 +3 +4 1 -44 -45 +5 +6 1 -243 -244 +22 +23 1 -244 -245 +28 +29 1 -1542 -1543 +31 +32 1 -1920 -1921 -1 - - -3522 -3523 -1 - - -4545 -4546 +58 +59 1 @@ -33376,48 +33969,38 @@ 12 -14 -15 +1 +2 1 -16 -17 +3 +4 1 -44 -45 +5 +6 1 -243 -244 +22 +23 1 -244 -245 +28 +29 1 -1542 -1543 +31 +32 1 -1920 -1921 -1 - - -3522 -3523 -1 - - -4545 -4546 +58 +59 1 @@ -33434,7 +34017,7 @@ 1 2 -12090 +148 @@ -33450,7 +34033,7 @@ 1 2 -12090 +148 @@ -33460,45 +34043,45 @@ asp_comment_server -2 +0 comment -2 +0 asp_code_inline -238 +0 code -238 +0 asp_directive_attribute -879 +6 directive -243 +3 index -7 +4 name -21 +5 value -879 +6 @@ -33512,32 +34095,12 @@ 1 2 -22 - - -2 -3 -3 - - -3 -4 -117 +2 4 5 -30 - - -5 -6 -50 - - -6 -8 -21 +1 @@ -33553,32 +34116,12 @@ 1 2 -22 - - -2 -3 -3 - - -3 -4 -117 +2 4 5 -30 - - -5 -6 -50 - - -6 -8 -21 +1 @@ -33594,32 +34137,12 @@ 1 2 -22 - - -2 -3 -3 - - -3 -4 -117 +2 4 5 -30 - - -5 -6 -50 - - -6 -8 -21 +1 @@ -33633,38 +34156,13 @@ 12 -4 -5 -1 +1 +2 +3 -21 -22 -1 - - -71 -72 -1 - - -101 -102 -1 - - -218 -219 -1 - - -221 -222 -1 - - -243 -244 +3 +4 1 @@ -33679,30 +34177,15 @@ 12 +1 +2 +3 + + 2 3 1 - -6 -7 -1 - - -7 -8 -1 - - -8 -9 -2 - - -10 -11 -2 - @@ -33715,38 +34198,13 @@ 12 -4 -5 -1 +1 +2 +3 -21 -22 -1 - - -71 -72 -1 - - -101 -102 -1 - - -218 -219 -1 - - -221 -222 -1 - - -243 -244 +3 +4 1 @@ -33763,81 +34221,11 @@ 1 2 -3 +4 2 3 -3 - - -3 -4 -1 - - -5 -6 -2 - - -9 -10 -1 - - -10 -11 -1 - - -13 -14 -1 - - -31 -32 -1 - - -63 -64 -1 - - -72 -73 -1 - - -98 -99 -1 - - -105 -106 -1 - - -106 -107 -1 - - -108 -109 -1 - - -113 -114 -1 - - -129 -130 1 @@ -33854,27 +34242,7 @@ 1 2 -9 - - -2 -3 -3 - - -3 -4 -4 - - -4 -5 -1 - - -5 -6 -4 +5 @@ -33890,81 +34258,11 @@ 1 2 -3 +4 2 3 -3 - - -3 -4 -1 - - -5 -6 -2 - - -9 -10 -1 - - -10 -11 -1 - - -13 -14 -1 - - -31 -32 -1 - - -63 -64 -1 - - -72 -73 -1 - - -98 -99 -1 - - -105 -106 -1 - - -106 -107 -1 - - -108 -109 -1 - - -113 -114 -1 - - -129 -130 1 @@ -33981,7 +34279,7 @@ 1 2 -879 +6 @@ -33997,7 +34295,7 @@ 1 2 -879 +6 @@ -34013,7 +34311,7 @@ 1 2 -879 +6 @@ -34023,15 +34321,15 @@ asp_directive_name -243 +3 directive -243 +3 name -5 +2 @@ -34045,7 +34343,7 @@ 1 2 -243 +3 @@ -34059,30 +34357,15 @@ 12 +1 +2 +1 + + 2 3 1 - -9 -10 -1 - - -21 -22 -1 - - -98 -99 -1 - - -113 -114 -1 - @@ -34091,15 +34374,15 @@ asp_element_body -9927 +117 element -9927 +117 body -1800 +73 @@ -34113,7 +34396,7 @@ 1 2 -9927 +117 @@ -34129,32 +34412,22 @@ 1 2 -815 +55 2 3 -601 +10 3 -4 -62 +6 +5 -4 -7 -159 - - -7 -55 -135 - - -57 -982 -28 +6 +11 +3 @@ -34164,23 +34437,23 @@ asp_tag_attribute -3666 +25 tag -1455 +16 index -10 +2 name -119 +10 attribute -3666 +25 @@ -34194,27 +34467,12 @@ 1 2 -321 +7 2 3 -506 - - -3 -4 -368 - - -4 -5 -153 - - -5 -11 -107 +9 @@ -34230,27 +34488,12 @@ 1 2 -321 +7 2 3 -506 - - -3 -4 -368 - - -4 -5 -153 - - -5 -11 -107 +9 @@ -34266,27 +34509,12 @@ 1 2 -321 +7 2 3 -506 - - -3 -4 -368 - - -4 -5 -153 - - -5 -11 -107 +9 @@ -34300,53 +34528,13 @@ 12 -1 -2 +9 +10 1 -4 -5 -1 - - -10 -11 -1 - - -19 -20 -1 - - -48 -49 -1 - - -107 -108 -1 - - -260 -261 -1 - - -628 -629 -1 - - -1134 -1135 -1 - - -1455 -1456 +16 +17 1 @@ -34361,217 +34549,92 @@ 12 -1 -2 -1 - - -2 -3 -1 - - -4 -5 -1 - - -8 -9 -1 - - -17 -18 -1 - - -30 -31 -1 - - -42 -43 -1 - - -43 -44 -1 - - -50 -51 -1 - - -60 -61 -1 - - - - - - -index -attribute - - -12 - - -1 -2 -1 - - -4 -5 -1 - - -10 -11 -1 - - -19 -20 -1 - - -48 -49 -1 - - -107 -108 -1 - - -260 -261 -1 - - -628 -629 -1 - - -1134 -1135 -1 - - -1455 -1456 -1 - - - - - - -name -tag - - -12 - - -1 -2 -16 - - -2 -3 -25 - - -3 -4 -8 - - -4 -5 -12 - - 5 6 -6 - - -6 -7 -9 +1 7 -11 -10 - - -11 -19 -9 - - -19 -39 -9 - - -42 -130 -9 - - -132 -980 -6 - - - - - - -name -index - - -12 - - -1 -2 -52 - - -2 -3 -31 - - -3 -4 -15 - - -4 -5 -12 - - -5 8 -9 +1 + + + + + + +index +attribute + + +12 + + +9 +10 +1 + + +16 +17 +1 + + + + + + +name +tag + + +12 + + +1 +2 +5 + + +2 +3 +1 + + +3 +4 +1 + + +4 +5 +2 + + +7 +8 +1 + + + + + + +name +index + + +12 + + +1 +2 +8 + + +2 +3 +2 @@ -34587,57 +34650,27 @@ 1 2 -16 +5 2 3 -25 +1 3 4 -8 +1 4 5 -12 - - -5 -6 -6 - - -6 -7 -9 +2 7 -11 -10 - - -11 -19 -9 - - -19 -39 -9 - - -42 -130 -9 - - -132 -980 -6 +8 +1 @@ -34653,7 +34686,7 @@ 1 2 -3666 +25 @@ -34669,7 +34702,7 @@ 1 2 -3666 +25 @@ -34685,7 +34718,7 @@ 1 2 -3666 +25 @@ -34695,15 +34728,15 @@ asp_tag_name -1920 +28 tag -1920 +28 name -110 +15 @@ -34717,7 +34750,7 @@ 1 2 -1920 +28 @@ -34733,57 +34766,27 @@ 1 2 -15 +10 2 3 -20 +2 3 4 -3 - - -4 -5 -10 +1 5 -8 -9 +6 +1 -8 -11 -9 - - -11 -14 -9 - - -14 -21 -10 - - -24 -38 -10 - - -50 -71 -9 - - -76 -130 -6 +6 +7 +1 @@ -34793,22 +34796,22 @@ asp_tag_isempty -363 +1 tag -363 +1 cil_instruction -11738854 +17762709 id -11738854 +17762709 opcode @@ -34820,7 +34823,7 @@ impl -764571 +1075749 @@ -34834,7 +34837,7 @@ 1 2 -11738854 +17762709 @@ -34850,7 +34853,7 @@ 1 2 -11738854 +17762709 @@ -34866,7 +34869,7 @@ 1 2 -11738854 +17762709 @@ -34881,67 +34884,67 @@ 1 -14 +31 16 -16 -50 +34 +103 16 -52 -113 +107 +272 16 -127 -392 +291 +761 16 -402 -805 +786 +1799 16 -882 -1781 +1819 +3232 16 -1840 -3594 +3540 +6280 16 -3656 -7680 +6599 +13336 16 -7691 -15395 +13561 +25517 16 -15628 -41250 +26360 +58843 16 -41579 -101314 +60259 +150959 16 -108039 -267456 +153188 +397706 16 -269151 -1219506 +421486 +1761440 13 @@ -34957,68 +34960,68 @@ 1 -9 +17 +17 + + +19 +53 16 -9 -28 +53 +103 16 -30 -61 +115 +193 16 -65 -116 +202 +296 16 -123 -202 +299 +415 16 -203 -304 -16 - - -304 -401 -16 - - -406 +416 524 16 -526 -686 +551 +705 16 -687 -853 +708 +857 16 -886 -1103 +867 +1037 16 -1135 -1907 +1044 +1359 16 -1974 -3722 -13 +1384 +2339 +16 + + +2493 +4004 +12 @@ -35033,68 +35036,68 @@ 1 -7 +16 16 -7 -21 -17 - - -25 -69 +16 +49 16 -72 -190 +54 +133 16 -214 -466 +148 +476 16 -489 -963 +485 +819 16 -964 -1633 +849 +1544 16 -1646 -4521 +1656 +2600 16 -4775 -9554 +2888 +7581 16 -10805 -22012 +7638 +16576 16 -23094 -44749 +16749 +28630 16 -48809 -119795 +29955 +66775 16 -131667 -534809 -12 +72210 +156030 +16 + + +176525 +758792 +13 @@ -35134,48 +35137,48 @@ 6 -8 +9 248 -8 -9 -336 - - 9 -11 -376 +13 +472 -11 -16 -461 +13 +23 +493 -17 -26 -467 +23 +39 +435 -26 -72 -420 +40 +80 +424 -72 -315 +80 +317 +422 + + +317 +1566 419 -315 -4330 +1569 +92206 419 -4367 -764572 -229 +94672 +1075750 +43 @@ -35206,52 +35209,52 @@ 4 5 -282 +281 5 6 -473 +449 6 -8 -473 - - -8 9 -329 +482 9 -11 -389 +12 +435 -11 -14 -423 +12 +17 +474 -14 -22 -452 +17 +26 +453 -22 -49 -420 +26 +45 +428 -49 -93 -421 +45 +79 +424 -93 -169 -358 +79 +136 +422 + + +136 +175 +172 @@ -35291,48 +35294,48 @@ 6 -8 +9 248 -8 -9 -336 - - 9 -11 -376 +13 +472 -11 -16 -461 +13 +23 +493 -17 -26 -467 +23 +39 +435 -26 -72 -420 +40 +80 +424 -72 -315 +80 +317 +422 + + +317 +1566 419 -315 -4330 +1569 +92206 419 -4367 -764572 -229 +94672 +1075750 +43 @@ -35348,52 +35351,52 @@ 1 2 -20708 +27075 2 3 -239575 +283722 3 4 -95590 +178631 4 5 -54260 +76302 5 7 -62698 +91491 7 10 -62426 +93903 10 15 -62313 +83467 15 26 -60287 +84045 26 53 -58090 +82354 53 5580 -48624 +74759 @@ -35409,57 +35412,57 @@ 1 2 -20708 +27075 2 3 -239654 +284008 3 4 -98321 +190917 4 5 -64878 +92479 5 6 -49135 +60711 6 7 -34933 +48353 7 9 -63779 +90931 9 -12 -58221 +13 +98470 -12 -18 -60506 +13 +20 +84245 -18 -32 -58247 +20 +35 +80775 -32 +35 77 -16189 +17785 @@ -35475,52 +35478,52 @@ 1 2 -20708 +27075 2 3 -239575 +283722 3 4 -95590 +178631 4 5 -54260 +76302 5 7 -62698 +91491 7 10 -62426 +93903 10 15 -62313 +83467 15 26 -60287 +84045 26 53 -58090 +82354 53 5580 -48624 +74759 @@ -35530,15 +35533,15 @@ cil_jump -959958 +1461279 instruction -959958 +1461279 target -753795 +1171286 @@ -35552,7 +35555,7 @@ 1 2 -959958 +1461279 @@ -35568,17 +35571,17 @@ 1 2 -646657 +1023904 2 3 -69975 +95406 3 256 -37163 +51976 @@ -35588,15 +35591,15 @@ cil_access -4229231 +6097515 instruction -4229231 +6097515 target -1029648 +1342781 @@ -35610,7 +35613,7 @@ 1 2 -4229231 +6097515 @@ -35626,37 +35629,37 @@ 1 2 -376838 +400912 2 3 -298666 +452358 3 4 -118675 +149467 4 5 -72560 +105242 5 8 -84020 +116951 8 -125 -77235 +30 +100903 -125 -34817 -1654 +30 +47894 +16948 @@ -35666,15 +35669,15 @@ cil_value -368821 +556330 instruction -368821 +556330 value -61708 +86382 @@ -35688,7 +35691,7 @@ 1 2 -368821 +556330 @@ -35704,32 +35707,32 @@ 1 2 -27735 +37538 2 3 -19017 +26864 3 4 -4145 +6509 4 -7 -5590 +6 +6181 -7 -57 -4629 +6 +18 +6520 -57 -93559 -592 +18 +153323 +2770 @@ -35739,11 +35742,11 @@ cil_switch -128085 +154637 instruction -8423 +11344 index @@ -35751,7 +35754,7 @@ target -46102 +65029 @@ -35770,52 +35773,47 @@ 3 4 -2198 +2846 4 5 -1324 +1845 5 6 -1027 +1459 6 7 -534 +727 7 -8 -473 +9 +1045 -8 -11 -749 +9 +12 +879 -11 -15 -656 +12 +18 +952 -15 -27 -684 +18 +32 +885 -27 -154 -722 - - -154 +32 412 -34 +684 @@ -35831,47 +35829,47 @@ 1 2 -89 +58 2 3 -948 +1036 3 4 -2671 +3463 4 5 -1769 +2605 5 6 -773 +1040 6 7 -509 +700 7 10 -691 +996 10 -17 -670 +16 +862 -17 +16 256 -303 +584 @@ -35916,37 +35914,37 @@ 27 -32 +34 35 -33 -353 +35 +355 32 -354 -370 +356 +376 31 -370 -418 +376 +434 31 -418 -547 +434 +626 31 -554 -6204 +640 +8477 31 -8401 -8424 +11322 +11345 3 @@ -35992,37 +35990,37 @@ 27 -32 +34 35 -33 -353 +35 +355 32 -354 -370 +356 +376 31 -370 -418 +376 +434 31 -418 -538 +434 +617 31 -546 -6052 +632 +8262 31 -8212 -8304 +11061 +11172 3 @@ -36039,12 +36037,12 @@ 1 2 -45517 +64116 2 12 -585 +913 @@ -36060,17 +36058,17 @@ 1 2 -39139 +56028 2 4 -3821 +5079 4 247 -3142 +3922 @@ -36122,15 +36120,15 @@ cil_type_location -152210 +212853 id -89583 +118810 loc -1126 +1701 @@ -36144,22 +36142,27 @@ 1 2 -44965 +52293 2 3 -32740 +50361 3 4 -5869 +6744 4 -10 -6009 +6 +9035 + + +6 +16 +377 @@ -36175,48 +36178,58 @@ 1 2 -432 +464 2 -5 -88 +3 +27 -5 -11 +3 +4 +170 + + +4 +9 +150 + + +9 +14 +130 + + +14 +23 +144 + + +23 +37 +133 + + +37 +66 +128 + + +66 +137 +129 + + +138 +416 +128 + + +434 +11741 98 - -11 -19 -86 - - -19 -33 -85 - - -33 -71 -86 - - -72 -144 -85 - - -144 -447 -85 - - -447 -3291 -81 - @@ -36225,15 +36238,15 @@ cil_method_location -1165492 +1622426 id -726017 +939518 loc -691 +1234 @@ -36247,22 +36260,27 @@ 1 2 -418176 +474433 2 3 -221887 +340605 3 4 -41809 +49527 4 -10 -44145 +6 +71871 + + +6 +16 +3082 @@ -36277,74 +36295,74 @@ 1 -14 -53 - - -14 -32 -55 - - -32 -61 -52 - - -61 -100 -53 - - -100 -154 -53 - - -155 -213 -52 - - -217 -292 -54 - - -295 -415 -52 - - -424 -615 -52 - - -619 -1106 -52 - - -1127 -2065 -52 - - -2113 -4064 -52 - - -4078 -25628 -52 - - -28337 -33613 +2 7 + +2 +3 +130 + + +3 +17 +94 + + +17 +44 +95 + + +44 +78 +95 + + +78 +121 +96 + + +122 +179 +93 + + +180 +247 +94 + + +248 +360 +93 + + +362 +520 +94 + + +520 +887 +93 + + +887 +1666 +93 + + +1683 +5309 +93 + + +5436 +59205 +64 + @@ -36353,15 +36371,15 @@ cil_type -343192 +310746 id -343192 +310746 name -53588 +69904 kind @@ -36369,11 +36387,11 @@ parent -91545 +54196 sourceDecl -197636 +189848 @@ -36387,7 +36405,7 @@ 1 2 -343192 +310746 @@ -36403,7 +36421,7 @@ 1 2 -343192 +310746 @@ -36419,7 +36437,7 @@ 1 2 -343192 +310746 @@ -36435,7 +36453,7 @@ 1 2 -343192 +310746 @@ -36451,27 +36469,22 @@ 1 2 -37936 +41025 2 3 -7739 +18965 3 -4 -2848 +5 +5619 -4 -9 -4115 - - -9 -73139 -950 +5 +33435 +4295 @@ -36487,7 +36500,7 @@ 1 2 -53588 +69904 @@ -36503,17 +36516,17 @@ 1 2 -46572 +60865 2 3 -4953 +6391 3 -73139 -2063 +33435 +2648 @@ -36529,22 +36542,22 @@ 1 2 -39647 +42609 2 3 -7512 +19051 3 -5 -4604 +6 +6151 -5 -73139 -1825 +6 +33435 +2093 @@ -36558,23 +36571,23 @@ 12 -440 -441 +638 +639 1 -8222 -8223 +6961 +6962 1 -98272 -98273 +53658 +53659 1 -236158 -236159 +249380 +249381 1 @@ -36594,18 +36607,18 @@ 1 -350 -351 +447 +448 1 -1788 -1789 +2112 +2113 1 -51410 -51411 +67305 +67306 1 @@ -36625,18 +36638,18 @@ 1 -139 -140 +200 +201 1 -19206 -19207 +21759 +21760 1 -73138 -73139 +33434 +33435 1 @@ -36651,23 +36664,23 @@ 12 -440 -441 +638 +639 1 -7605 -7606 +6112 +6113 1 -91319 -91320 +53658 +53659 1 -98272 -98273 +129440 +129441 1 @@ -36684,22 +36697,22 @@ 1 2 -69148 +36999 2 3 -15292 +8838 3 -70 -6868 +6 +4361 -70 -54255 -237 +6 +39242 +3998 @@ -36715,17 +36728,22 @@ 1 2 -69364 +37293 2 3 -15415 +8985 3 -2161 -6766 +6 +4275 + + +6 +2536 +3643 @@ -36741,12 +36759,12 @@ 1 2 -90607 +52999 2 4 -938 +1197 @@ -36762,17 +36780,22 @@ 1 2 -69323 +37238 2 3 -15415 +8978 3 -9130 -6807 +6 +4253 + + +6 +8395 +3727 @@ -36788,12 +36811,12 @@ 1 2 -191008 +181710 2 -11648 -6628 +5085 +8138 @@ -36809,7 +36832,7 @@ 1 2 -197636 +189848 @@ -36825,7 +36848,7 @@ 1 2 -197636 +189848 @@ -36841,12 +36864,12 @@ 1 2 -195187 +186968 2 491 -2449 +2880 @@ -36856,15 +36879,15 @@ cil_pointer_type -440 +638 id -440 +638 pointee -440 +638 @@ -36878,7 +36901,7 @@ 1 2 -440 +638 @@ -36894,7 +36917,7 @@ 1 2 -440 +638 @@ -36904,15 +36927,15 @@ cil_array_type -8222 +6961 id -8222 +6961 element_type -8198 +6928 rank @@ -36930,7 +36953,7 @@ 1 2 -8222 +6961 @@ -36946,7 +36969,7 @@ 1 2 -8222 +6961 @@ -36962,12 +36985,12 @@ 1 2 -8176 +6898 2 4 -22 +30 @@ -36983,12 +37006,12 @@ 1 2 -8176 +6898 2 4 -22 +30 @@ -37002,18 +37025,18 @@ 12 -4 -5 +8 +9 1 -26 -27 +31 +32 1 -8192 -8193 +6922 +6923 1 @@ -37028,18 +37051,18 @@ 12 -4 -5 +8 +9 1 -26 -27 +31 +32 1 -8192 -8193 +6922 +6923 1 @@ -37050,23 +37073,23 @@ cil_method -982868 +1164177 id -982868 +1164177 name -161199 +196167 parent -136179 +166239 return_type -109834 +90658 @@ -37080,7 +37103,7 @@ 1 2 -982868 +1164177 @@ -37096,7 +37119,7 @@ 1 2 -982868 +1164177 @@ -37112,7 +37135,7 @@ 1 2 -982868 +1164177 @@ -37128,32 +37151,32 @@ 1 2 -84543 +91451 2 3 -36569 +46810 3 4 -10379 +18752 4 6 -12506 +15548 6 -16 -12221 +13 +15554 -16 -109404 -4981 +13 +131917 +8052 @@ -37169,32 +37192,32 @@ 1 2 -89508 +96431 2 3 -35748 +46661 3 4 -9567 +17952 4 6 -11701 +14538 6 -23 -12183 +15 +14970 -23 -87224 -2492 +15 +103428 +5615 @@ -37210,22 +37233,17 @@ 1 2 -133751 +162793 2 3 -15357 +19275 3 -6995 -12090 - - -7095 -7096 -1 +7390 +14099 @@ -37241,42 +37259,47 @@ 1 2 -40455 +46618 2 3 -26404 +31338 3 4 -16912 +20194 4 5 -10810 +14379 5 7 -11129 +14505 7 10 -10666 +13582 10 -18 -10760 +17 +12893 -18 -13475 -9043 +17 +197 +12468 + + +197 +6088 +262 @@ -37292,42 +37315,47 @@ 1 2 -42239 +48881 2 3 -27319 +32472 3 4 -17627 +20981 4 5 -11309 +14854 5 -7 -12205 +6 +8121 -7 -11 -11242 +6 +8 +12842 -11 -26 -10224 +8 +13 +13194 -26 +13 +43 +12517 + + +43 3766 -4014 +2377 @@ -37343,37 +37371,37 @@ 1 2 -54109 +63599 2 3 -33724 +40693 3 4 -17338 +22116 4 5 -8609 +11345 5 7 -11498 +14610 7 -27 -10243 +20 +12473 -27 -7169 -658 +20 +3066 +1403 @@ -37389,27 +37417,32 @@ 1 2 -75434 +49584 2 3 -15073 +17237 3 -5 -8716 +4 +7858 -5 -20 -8307 +4 +7 +7467 -20 -322198 -2304 +7 +31 +6851 + + +31 +402825 +1661 @@ -37425,22 +37458,27 @@ 1 2 -83942 +61071 2 3 -13387 +15140 3 -7 -8631 +5 +7349 -7 -43617 -3874 +5 +60 +6802 + + +60 +53362 +296 @@ -37456,22 +37494,27 @@ 1 2 -81013 +55043 2 3 -14595 +16656 3 -6 -9185 +4 +7537 -6 -101084 -5041 +4 +8 +7186 + + +8 +123712 +4236 @@ -37481,15 +37524,15 @@ cil_method_source_declaration -891568 +1075014 method -891568 +1075014 source -785482 +976107 @@ -37503,7 +37546,7 @@ 1 2 -891568 +1075014 @@ -37519,17 +37562,12 @@ 1 2 -709384 +933523 2 -3 -65448 - - -3 -306 -10650 +565 +42584 @@ -37539,19 +37577,19 @@ cil_method_implementation -1040241 +1351440 id -1040241 +1351440 method -647453 +788234 location -659 +1200 @@ -37565,7 +37603,7 @@ 1 2 -1040241 +1351440 @@ -37581,7 +37619,7 @@ 1 2 -1040241 +1351440 @@ -37597,22 +37635,27 @@ 1 2 -369448 +419069 2 3 -203313 +258887 3 4 -36064 +43514 4 -10 -38628 +6 +63854 + + +6 +16 +2910 @@ -37628,22 +37671,27 @@ 1 2 -369448 +419089 2 3 -203313 +258867 3 4 -36064 +43514 4 -10 -38628 +6 +63854 + + +6 +16 +2910 @@ -37658,73 +37706,73 @@ 1 -12 -50 +2 +13 -12 -31 -52 +2 +3 +131 -31 -54 -51 +3 +17 +93 -54 -87 -50 +18 +42 +90 -89 -143 -50 +42 +73 +91 -143 -204 -51 +73 +109 +90 -208 -270 -51 +109 +172 +90 -270 -371 -50 +174 +225 +91 -376 -540 -51 +225 +328 +90 -550 -1119 -51 +329 +450 +90 -1120 -2075 -50 +451 +834 +90 -2100 -4503 -50 +840 +1640 +90 -4651 -32572 -50 +1642 +4858 +90 -32984 +5076 33031 -2 +61 @@ -37739,73 +37787,73 @@ 1 -12 -50 +2 +13 -12 -31 -52 +2 +3 +131 -31 -54 -51 +3 +17 +93 -54 -87 -50 +18 +42 +90 -89 -143 -50 +42 +73 +91 -143 -204 -51 +73 +109 +90 -208 -270 -51 +109 +172 +90 -270 -371 -50 +174 +225 +91 -376 -540 -51 +225 +328 +90 -550 -1119 -51 +329 +450 +90 -1120 -2075 -50 +451 +834 +90 -2100 -4503 -50 +840 +1640 +90 -4651 -32572 -50 +1642 +4858 +90 -32984 +5076 33031 -2 +61 @@ -37815,15 +37863,15 @@ cil_implements -46066 +77303 id -43911 +74672 decl -11125 +32636 @@ -37837,12 +37885,12 @@ 1 2 -42414 +72729 2 5 -1497 +1943 @@ -37858,22 +37906,22 @@ 1 2 -7900 +27601 2 3 -1673 +2530 3 -6 -904 +85 +2450 -6 +86 2300 -648 +55 @@ -37883,23 +37931,23 @@ cil_field -373454 +459120 id -373454 +459120 parent -63864 +78098 name -141811 +163877 field_type -55057 +66957 @@ -37913,7 +37961,7 @@ 1 2 -373454 +459120 @@ -37929,7 +37977,7 @@ 1 2 -373454 +459120 @@ -37945,7 +37993,7 @@ 1 2 -373454 +459120 @@ -37961,47 +38009,47 @@ 1 2 -16008 +18671 2 3 -13743 +16155 3 4 -7634 +9581 4 5 -6078 +7771 5 6 -4068 +5300 6 8 -5334 +6837 8 12 -5499 +6885 12 -34 -4814 +33 +5931 -34 +33 4792 -686 +967 @@ -38017,47 +38065,47 @@ 1 2 -16008 +18671 2 3 -13743 +16155 3 4 -7634 +9581 4 5 -6078 +7771 5 6 -4068 +5300 6 8 -5334 +6837 8 12 -5499 +6885 12 -34 -4814 +33 +5931 -34 +33 4792 -686 +967 @@ -38073,37 +38121,37 @@ 1 2 -19045 +22570 2 3 -22202 +28213 3 4 -7167 +8776 4 5 -4134 +5004 5 7 -4819 +5963 7 13 -4989 +5897 13 -172 -1508 +569 +1675 @@ -38119,22 +38167,22 @@ 1 2 -96617 +105592 2 3 -24916 +32731 3 5 -11640 +13968 5 -7385 -8638 +10637 +11586 @@ -38150,22 +38198,22 @@ 1 2 -96617 +105592 2 3 -24916 +32731 3 5 -11640 +13968 5 -7385 -8638 +10637 +11586 @@ -38181,22 +38229,22 @@ 1 2 -111626 +125367 2 3 -18303 +23735 3 -12 -10801 +10 +12597 -12 -4061 -1081 +10 +4427 +2178 @@ -38212,32 +38260,37 @@ 1 2 -27378 +32077 2 3 -12337 +15156 3 4 -3618 +4604 4 -6 -4812 +5 +4144 -6 -13 -4248 +5 +9 +5779 -13 -49751 -2664 +9 +160 +5023 + + +161 +63271 +174 @@ -38253,22 +38306,22 @@ 1 2 -34264 +41593 2 3 -12721 +15722 3 5 -4135 +5025 5 -21009 -3937 +27862 +4617 @@ -38284,27 +38337,32 @@ 1 2 -36493 +43053 2 3 -6728 +8271 3 4 -3371 +4356 4 7 -4516 +6059 7 -23165 -3949 +89 +5022 + + +90 +25355 +196 @@ -38314,15 +38372,15 @@ cil_parameter -1904597 +2241281 id -1904597 +2241281 method -921545 +1091095 index @@ -38330,7 +38388,7 @@ param_type -233580 +227415 @@ -38344,7 +38402,7 @@ 1 2 -1904597 +2241281 @@ -38360,7 +38418,7 @@ 1 2 -1904597 +2241281 @@ -38376,7 +38434,7 @@ 1 2 -1904597 +2241281 @@ -38392,27 +38450,27 @@ 1 2 -373799 +457244 2 3 -323581 +371754 3 4 -133559 +150896 4 7 -74604 +92314 7 53 -16002 +18887 @@ -38428,27 +38486,27 @@ 1 2 -373799 +457244 2 3 -323581 +371754 3 4 -133559 +150896 4 7 -74604 +92314 7 53 -16002 +18887 @@ -38464,27 +38522,27 @@ 1 2 -397141 +478813 2 3 -328789 +381801 3 4 -125672 +146612 4 -11 -69153 +10 +82574 -11 +10 41 -790 +1295 @@ -38508,58 +38566,58 @@ 11 -12 -13 +10 +11 3 -15 -16 +13 +14 3 -16 -28 +14 +30 4 -36 -58 +38 +62 4 -64 -98 +68 +105 4 -114 -197 +123 +217 4 -241 -572 +265 +641 4 -786 -2257 +877 +2572 4 -3431 -16003 +3932 +18888 4 -27777 -224166 +33136 +262098 4 -547746 -921546 +633851 +1091096 2 @@ -38584,58 +38642,58 @@ 11 -12 -13 +10 +11 3 -15 -16 +13 +14 3 -16 -28 +14 +30 4 -36 -58 +38 +62 4 -64 -98 +68 +105 4 -114 -197 +123 +217 4 -241 -572 +265 +641 4 -786 -2257 +877 +2572 4 -3431 -16003 +3932 +18888 4 -27777 -224166 +33136 +262098 4 -547746 -921546 +633851 +1091096 2 @@ -38660,53 +38718,53 @@ 2 -9 -10 +7 +8 5 -13 -21 +11 +19 4 -21 -31 +19 +30 4 -31 -39 +30 +38 4 -51 -67 +50 +71 4 -83 -176 +90 +194 4 -233 -501 +256 +552 4 -666 -1923 +744 +2266 4 -2805 -10797 +3354 +12987 4 -36393 -175126 +35950 +179767 3 @@ -38723,37 +38781,42 @@ 1 2 -98696 +67478 2 3 -47541 +53745 3 4 -20497 +22719 4 -6 -21504 +5 +15430 -6 -10 -19815 +5 +7 +20114 -10 -27 -17540 +7 +11 +19073 -27 -99475 -7987 +11 +24 +17383 + + +24 +127666 +11473 @@ -38769,37 +38832,42 @@ 1 2 -103646 +68946 2 3 -45853 +53404 3 4 -18465 +22603 4 -6 -21100 +5 +15197 -6 -10 -19543 +5 +7 +20025 -10 -28 -17569 +7 +11 +18906 -28 -80024 -7404 +11 +24 +17145 + + +24 +101271 +11189 @@ -38815,22 +38883,22 @@ 1 2 -170930 +161360 2 3 -42071 +44632 3 -6 -18729 +5 +17711 -6 +5 51 -1850 +3712 @@ -38840,37 +38908,37 @@ cil_parameter_in -23105 +55741 id -23105 +55741 cil_parameter_out -31233 +39090 id -31233 +39090 cil_setter -30179 +44695 prop -30179 +44695 method -30179 +44695 @@ -38884,7 +38952,7 @@ 1 2 -30179 +44695 @@ -38900,7 +38968,7 @@ 1 2 -30179 +44695 @@ -38910,15 +38978,15 @@ cil_getter -165951 +232516 prop -165951 +232516 method -165951 +232516 @@ -38932,7 +39000,7 @@ 1 2 -165951 +232516 @@ -38948,7 +39016,7 @@ 1 2 -165951 +232516 @@ -38958,15 +39026,15 @@ cil_adder -3719 +6369 event -3719 +6369 method -3719 +6369 @@ -38980,7 +39048,7 @@ 1 2 -3719 +6369 @@ -38996,7 +39064,7 @@ 1 2 -3719 +6369 @@ -39006,15 +39074,15 @@ cil_remover -3719 +6369 event -3719 +6369 method -3719 +6369 @@ -39028,7 +39096,7 @@ 1 2 -3719 +6369 @@ -39044,7 +39112,7 @@ 1 2 -3719 +6369 @@ -39102,23 +39170,23 @@ cil_property -166215 +232996 id -166215 +232996 parent -32452 +45688 name -46487 +60871 property_type -17696 +23848 @@ -39132,7 +39200,7 @@ 1 2 -166215 +232996 @@ -39148,7 +39216,7 @@ 1 2 -166215 +232996 @@ -39164,7 +39232,7 @@ 1 2 -166215 +232996 @@ -39180,42 +39248,42 @@ 1 2 -10930 +13054 2 3 -6385 +11267 3 4 -4050 +5670 4 5 -2722 +3802 5 -7 -2979 +6 +2462 -7 -11 -2655 +6 +8 +3199 -11 -39 -2439 +8 +14 +3555 -39 +14 3766 -292 +2679 @@ -39231,42 +39299,42 @@ 1 2 -10954 +15338 2 3 -6401 +9095 3 4 -4029 +5624 4 5 -2725 +3819 5 -7 -2999 +6 +2437 -7 -11 -2625 +6 +8 +3322 -11 -40 -2447 +8 +14 +3455 -40 +14 3766 -272 +2598 @@ -39282,32 +39350,32 @@ 1 2 -13163 +16716 2 3 -7694 +12911 3 4 -4314 +5999 4 5 -2403 +3365 5 8 -2921 +4175 8 50 -1957 +2522 @@ -39323,27 +39391,27 @@ 1 2 -27082 +31484 2 3 -10143 +16819 3 4 -2363 +2816 4 7 -3703 +5360 7 -2519 -3196 +5089 +4392 @@ -39359,27 +39427,27 @@ 1 2 -27082 +31484 2 3 -10143 +16827 3 4 -2363 +2821 4 7 -3704 +5354 7 -2519 -3195 +3124 +4385 @@ -39395,22 +39463,17 @@ 1 2 -39411 +51984 2 3 -3424 +4636 3 -17 -3493 - - -17 -1131 -159 +1437 +4251 @@ -39426,32 +39489,32 @@ 1 2 -10530 +12810 2 3 -2911 +5226 3 4 -1198 +1491 4 7 -1425 +2148 7 -40 -1336 +39 +1797 -40 -32241 -296 +39 +49263 +376 @@ -39467,27 +39530,32 @@ 1 2 -11216 +13648 2 3 -2687 +5033 3 4 -1142 +1436 4 -8 -1460 +7 +1894 -8 -10207 -1191 +7 +149 +1789 + + +152 +13924 +48 @@ -39503,22 +39571,22 @@ 1 2 -13415 +18376 2 3 -2299 +2969 3 -7 -1412 +8 +1886 -7 -13568 -570 +8 +21084 +617 @@ -39528,23 +39596,23 @@ cil_event -3719 +6340 id -3719 +6340 parent -1117 +2205 name -1471 +2130 event_type -1015 +1978 @@ -39558,7 +39626,7 @@ 1 2 -3719 +6340 @@ -39574,7 +39642,7 @@ 1 2 -3719 +6340 @@ -39590,7 +39658,7 @@ 1 2 -3719 +6340 @@ -39606,32 +39674,32 @@ 1 2 -565 +1143 2 3 -227 +438 3 4 -100 +212 4 -6 -97 +5 +115 -6 -14 -85 +5 +8 +168 -14 +8 127 -43 +129 @@ -39647,32 +39715,32 @@ 1 2 -565 +1143 2 3 -227 +438 3 4 -100 +212 4 -6 -97 +5 +115 -6 -14 -85 +5 +8 +168 -14 +8 127 -43 +129 @@ -39688,27 +39756,27 @@ 1 2 -702 +1402 2 3 -194 +372 3 4 -87 +198 4 -7 -90 +8 +176 -7 +8 39 -44 +57 @@ -39724,32 +39792,32 @@ 1 2 -816 +749 2 3 -268 +792 3 4 -130 +112 4 5 -117 +209 5 -15 -114 +9 +173 -15 -77 -26 +9 +88 +95 @@ -39765,32 +39833,32 @@ 1 2 -816 +749 2 3 -268 +792 3 4 -130 +112 4 5 -117 +209 5 -15 -114 +9 +173 -15 -77 -26 +9 +88 +95 @@ -39806,22 +39874,22 @@ 1 2 -1198 +1642 2 3 -103 +224 3 -4 -126 +5 +181 -4 -18 -44 +5 +25 +83 @@ -39837,27 +39905,27 @@ 1 2 -543 +647 2 3 -263 +984 3 4 -52 +58 4 6 -80 +148 6 1055 -77 +141 @@ -39873,27 +39941,22 @@ 1 2 -659 +784 2 3 -203 +999 3 -4 -53 - - -4 7 -78 +165 7 349 -22 +30 @@ -39909,17 +39972,17 @@ 1 2 -800 +1626 2 3 -139 +220 3 433 -76 +132 @@ -39929,15 +39992,15 @@ cil_local_variable -624672 +989637 id -624672 +989637 impl -195943 +292892 index @@ -39945,7 +40008,7 @@ var_type -55931 +69258 @@ -39959,7 +40022,7 @@ 1 2 -624672 +989637 @@ -39975,7 +40038,7 @@ 1 2 -624672 +989637 @@ -39991,7 +40054,7 @@ 1 2 -624672 +989637 @@ -40007,37 +40070,37 @@ 1 2 -90782 +132499 2 3 -33013 +49613 3 4 -20310 +30061 4 5 -12895 +19183 5 7 -16152 +24373 7 12 -15274 +23871 12 286 -7517 +13292 @@ -40053,37 +40116,37 @@ 1 2 -90782 +132499 2 3 -33013 +49613 3 4 -20310 +30061 4 5 -12895 +19183 5 7 -16152 +24373 7 12 -15274 +23871 12 286 -7517 +13292 @@ -40099,32 +40162,32 @@ 1 2 -98633 +147882 2 3 -40155 +63290 3 4 -20365 +30966 4 5 -12225 +17823 5 8 -16632 +23050 8 62 -7933 +9881 @@ -40145,38 +40208,53 @@ 2 3 -144 - - -3 -5 26 -5 -12 +4 +5 +88 + + +6 +7 +4 + + +8 +9 +26 + + +10 +16 +24 + + +17 +33 +23 + + +34 +97 22 -14 -46 +100 +415 22 -48 -173 +435 +2748 22 -181 -1532 +3102 +292893 22 - -1743 -195944 -21 - @@ -40196,38 +40274,53 @@ 2 3 -144 - - -3 -5 26 -5 -12 +4 +5 +88 + + +6 +7 +4 + + +8 +9 +26 + + +10 +16 +24 + + +17 +33 +23 + + +34 +97 22 -14 -46 +100 +415 22 -48 -173 +435 +2748 22 -181 -1532 +3102 +292893 22 - -1743 -195944 -21 - @@ -40242,47 +40335,52 @@ 1 2 -85 +12 2 3 -66 +85 3 4 -15 +49 4 -6 +7 25 -6 -17 +7 +10 23 -17 -38 +10 +28 22 -41 -293 +28 +79 22 -305 -6526 +81 +459 22 -8789 -32764 -5 +503 +13334 +22 + + +16802 +40620 +3 @@ -40298,37 +40396,37 @@ 1 2 -25298 +28957 2 3 -13407 +17276 3 4 -3534 +4168 4 6 -4383 +6351 6 -11 -4499 +10 +5195 -11 -72 -4201 +10 +33 +5228 -72 -121017 -609 +33 +279245 +2083 @@ -40344,32 +40442,37 @@ 1 2 -27445 +31734 2 3 -12868 +16810 3 4 -3534 +4152 4 6 -3993 +5775 6 12 -4215 +5561 12 -55100 -3876 +1221 +5195 + + +1227 +109010 +31 @@ -40385,27 +40488,27 @@ 1 2 -33173 +40009 2 3 -10821 +13804 3 4 -4081 +5323 4 7 -4716 +6061 7 -277 -3140 +279 +4061 @@ -40415,19 +40518,19 @@ cil_handler -38721 +54069 id -38721 +54069 impl -27322 +38434 index -19 +26 kind @@ -40435,15 +40538,15 @@ try_start -37216 +51487 try_end -37715 +52378 handler_start -38721 +54069 @@ -40457,7 +40560,7 @@ 1 2 -38721 +54069 @@ -40473,7 +40576,7 @@ 1 2 -38721 +54069 @@ -40489,7 +40592,7 @@ 1 2 -38721 +54069 @@ -40505,7 +40608,7 @@ 1 2 -38721 +54069 @@ -40521,7 +40624,7 @@ 1 2 -38721 +54069 @@ -40537,7 +40640,7 @@ 1 2 -38721 +54069 @@ -40553,22 +40656,22 @@ 1 2 -20370 +28919 2 3 -4581 +6239 3 6 -2137 +2953 6 -20 -234 +27 +323 @@ -40584,22 +40687,22 @@ 1 2 -20370 +28919 2 3 -4581 +6239 3 6 -2137 +2953 6 -20 -234 +27 +323 @@ -40615,17 +40718,17 @@ 1 2 -24183 +34351 2 3 -2974 +3890 3 4 -165 +193 @@ -40641,17 +40744,17 @@ 1 2 -20998 +30073 2 3 -4347 +5801 3 20 -1977 +2560 @@ -40667,22 +40770,17 @@ 1 2 -20729 +29584 2 3 -4509 +6080 3 -9 -2050 - - -9 20 -34 +2770 @@ -40698,22 +40796,22 @@ 1 2 -20370 +28919 2 3 -4581 +6239 3 6 -2137 +2953 6 -20 -234 +27 +323 @@ -40727,208 +40825,148 @@ 12 -1 -2 -2 - - -2 -3 -2 - - -3 -4 -1 - - -4 -5 -1 - - -10 -11 -1 - - -20 -21 -1 - - -27 -28 -1 - - -30 -31 -1 - - -42 -43 -1 - - -81 -82 -1 - - -135 -136 -1 - - -234 -235 -1 - - -467 -468 -1 - - -1017 -1018 -1 - - -2371 -2372 -1 - - -6952 -6953 -1 - - -27322 -27323 -1 - - - - - - -index -impl - - -12 - - -1 -2 -2 - - -2 -3 -2 - - -3 -4 -1 - - -4 -5 -1 - - -10 -11 -1 - - -20 -21 -1 - - -27 -28 -1 - - -30 -31 -1 - - -42 -43 -1 - - -81 -82 -1 - - -135 -136 -1 - - -234 -235 -1 - - -467 -468 -1 - - -1017 -1018 -1 - - -2371 -2372 -1 - - -6952 -6953 -1 - - -27322 -27323 -1 - - - - - - -index -kind - - -12 - - -1 -2 -2 - - 2 3 7 +4 +5 +2 + + +5 +6 +2 + + +6 +8 +2 + + +13 +25 +2 + + +31 +43 +2 + + +60 +112 +2 + + +184 +324 +2 + + +620 +1392 +2 + + +3276 +9516 +2 + + +38434 +38435 +1 + + + + + + +index +impl + + +12 + + +2 +3 +7 + + +4 +5 +2 + + +5 +6 +2 + + +6 +8 +2 + + +13 +25 +2 + + +31 +43 +2 + + +60 +112 +2 + + +184 +324 +2 + + +620 +1392 +2 + + +3276 +9516 +2 + + +38434 +38435 +1 + + + + + + +index +kind + + +12 + + +1 +2 +7 + + +2 +3 +9 + + 3 4 5 @@ -40950,88 +40988,58 @@ 12 -1 -2 -2 - - 2 3 -2 - - -3 -4 -1 +7 4 5 -1 +2 -10 -11 -1 +5 +6 +2 -20 -21 -1 +6 +8 +2 -27 -28 -1 +13 +25 +2 -30 -31 -1 - - -42 +31 43 -1 +2 -81 -82 -1 +60 +112 +2 -135 -136 -1 +184 +324 +2 -234 -235 -1 +620 +1392 +2 -467 -468 -1 +3276 +9516 +2 -1017 -1018 -1 - - -2371 -2372 -1 - - -6952 -6953 -1 - - -27322 -27323 +38434 +38435 1 @@ -41046,88 +41054,58 @@ 12 -1 -2 -2 - - 2 3 -2 - - -3 -4 -1 +7 4 5 -1 +2 -10 -11 -1 +5 +6 +2 -20 -21 -1 +6 +8 +2 -27 -28 -1 +13 +25 +2 -30 -31 -1 - - -42 +31 43 -1 +2 -81 -82 -1 +60 +112 +2 -135 -136 -1 +184 +324 +2 -234 -235 -1 +620 +1392 +2 -467 -468 -1 +3276 +9516 +2 -1017 -1018 -1 - - -2371 -2372 -1 - - -6952 -6953 -1 - - -27322 -27323 +38434 +38435 1 @@ -41142,88 +41120,58 @@ 12 -1 -2 -2 - - 2 3 -2 - - -3 -4 -1 +7 4 5 -1 +2 -10 -11 -1 +5 +6 +2 -20 -21 -1 +6 +8 +2 -27 -28 -1 +13 +25 +2 -30 -31 -1 - - -42 +31 43 -1 +2 -81 -82 -1 +60 +112 +2 -135 -136 -1 +184 +324 +2 -234 -235 -1 +620 +1392 +2 -467 -468 -1 +3276 +9516 +2 -1017 -1018 -1 - - -2371 -2372 -1 - - -6952 -6953 -1 - - -27322 -27323 +38434 +38435 1 @@ -41238,23 +41186,23 @@ 12 -742 -743 +901 +902 1 -799 -800 +931 +932 1 -10888 -10889 +16252 +16253 1 -26292 -26293 +35985 +35986 1 @@ -41269,23 +41217,23 @@ 12 -698 -699 +849 +850 1 -799 -800 +931 +932 1 -9008 -9009 +13194 +13195 1 -20121 -20122 +27736 +27737 1 @@ -41310,15 +41258,15 @@ 1 -17 -18 -1 - - 19 20 1 + +26 +27 +1 + @@ -41331,23 +41279,23 @@ 12 -730 -731 +888 +889 1 -799 -800 +931 +932 1 -9963 -9964 +14647 +14648 1 -26282 -26283 +35975 +35976 1 @@ -41362,23 +41310,23 @@ 12 -730 -731 +888 +889 1 -799 -800 +931 +932 1 -9978 -9979 +14662 +14663 1 -26292 -26293 +35985 +35986 1 @@ -41393,23 +41341,23 @@ 12 -742 -743 +901 +902 1 -799 -800 +931 +932 1 -10888 -10889 +16252 +16253 1 -26292 -26293 +35985 +35986 1 @@ -41426,12 +41374,12 @@ 1 2 -36056 +49479 2 10 -1160 +2008 @@ -41447,7 +41395,7 @@ 1 2 -37216 +51487 @@ -41463,12 +41411,12 @@ 1 2 -36056 +49479 2 10 -1160 +2008 @@ -41484,12 +41432,12 @@ 1 2 -36674 +50549 2 4 -542 +938 @@ -41505,12 +41453,12 @@ 1 2 -36727 +50606 2 4 -489 +881 @@ -41526,12 +41474,12 @@ 1 2 -36056 +49479 2 10 -1160 +2008 @@ -41547,12 +41495,12 @@ 1 2 -36999 +51177 2 9 -716 +1201 @@ -41568,7 +41516,7 @@ 1 2 -37715 +52378 @@ -41584,12 +41532,12 @@ 1 2 -36999 +51177 2 9 -716 +1201 @@ -41605,12 +41553,12 @@ 1 2 -37631 +52290 2 3 -84 +88 @@ -41626,7 +41574,7 @@ 1 2 -37715 +52378 @@ -41642,12 +41590,12 @@ 1 2 -36999 +51177 2 9 -716 +1201 @@ -41663,7 +41611,7 @@ 1 2 -38721 +54069 @@ -41679,7 +41627,7 @@ 1 2 -38721 +54069 @@ -41695,7 +41643,7 @@ 1 2 -38721 +54069 @@ -41711,7 +41659,7 @@ 1 2 -38721 +54069 @@ -41727,7 +41675,7 @@ 1 2 -38721 +54069 @@ -41743,7 +41691,7 @@ 1 2 -38721 +54069 @@ -41753,15 +41701,15 @@ cil_handler_filter -742 +901 id -742 +901 filter_start -742 +901 @@ -41775,7 +41723,7 @@ 1 2 -742 +901 @@ -41791,7 +41739,7 @@ 1 2 -742 +901 @@ -41801,15 +41749,15 @@ cil_handler_type -10888 +16252 id -10888 +16252 catch_type -300 +441 @@ -41823,7 +41771,7 @@ 1 2 -10888 +16252 @@ -41839,47 +41787,52 @@ 1 2 -80 +102 2 3 -55 +78 3 4 -23 +32 4 5 -28 +43 5 8 -24 +36 8 12 -23 +40 12 -22 -25 +20 +34 -22 -56 -23 +20 +40 +35 -58 -3349 -19 +42 +268 +34 + + +299 +3353 +7 @@ -41889,11 +41842,11 @@ cil_method_stack_size -1040241 +1351440 method -1040241 +1351440 size @@ -41911,7 +41864,7 @@ 1 2 -1040241 +1351440 @@ -41942,37 +41895,42 @@ 10 12 -4 +2 12 -18 +13 +3 + + +15 +38 4 -33 -78 +58 +146 4 -134 -816 +166 +910 4 -831 -3809 +1406 +8644 4 -6693 -22107 +16282 +39542 4 -25517 -830206 -4 +74163 +1041568 +3 @@ -41982,169 +41940,169 @@ cil_public -681979 +883908 id -681979 +883908 cil_private -405970 +508804 id -405970 +508804 cil_protected -663333 +856299 id -663333 +856299 cil_internal -42022 +51635 id -42022 +51635 cil_static -422704 +459542 id -422704 +459542 cil_sealed -131092 +184039 id -131092 +184039 cil_virtual -276040 +375108 id -276040 +375108 cil_abstract -76553 +118976 id -76553 +118976 cil_class -89583 +103799 id -89583 +103799 cil_interface -8115 +15011 id -8115 +15011 cil_security -3903 +3935 id -3903 +3935 cil_requiresecobject -48 +72 id -48 +72 cil_specialname -310527 +415808 id -310527 +415808 cil_newslot -166898 +243446 id -166898 +243446 cil_base_class -85560 +108603 id -85560 +108603 base -7154 +8840 @@ -42158,7 +42116,7 @@ 1 2 -85560 +108603 @@ -42174,32 +42132,32 @@ 1 2 -3312 +4177 2 3 -1950 +2267 3 4 -634 +795 4 6 -564 +714 6 -24 -539 +20 +668 -24 -36427 -155 +20 +45958 +219 @@ -42209,15 +42167,15 @@ cil_base_interface -40265 +52127 id -19132 +25870 base -10540 +16466 @@ -42231,32 +42189,32 @@ 1 2 -11711 +16164 2 3 -2772 +3920 3 4 -1643 +2150 4 5 -466 +687 5 -6 -1645 +7 +2240 -6 -47 -895 +7 +49 +709 @@ -42272,22 +42230,22 @@ 1 2 -7652 +12890 2 3 -1307 +1648 3 -5 -835 +7 +1293 -5 +7 2300 -746 +635 @@ -42297,11 +42255,11 @@ cil_type_parameter -98272 +53658 unbound -73138 +33434 index @@ -42309,7 +42267,7 @@ param -98272 +53658 @@ -42323,17 +42281,17 @@ 1 2 -57933 +24838 2 3 -12999 +6183 3 41 -2206 +2413 @@ -42349,17 +42307,17 @@ 1 2 -57933 +24838 2 3 -12999 +6183 3 41 -2206 +2413 @@ -42373,48 +42331,48 @@ 12 -6 -7 +4 +5 16 -8 -11 +6 +9 3 -30 -71 +34 +87 3 -92 -169 +113 +205 3 -219 -322 +263 +382 3 -373 -489 +441 +579 3 -547 -737 +650 +887 3 -847 -1242 +1023 +1514 3 -2206 -73139 +2413 +33435 3 @@ -42429,48 +42387,48 @@ 12 -6 -7 +4 +5 16 -8 -11 +6 +9 3 -30 -71 +34 +87 3 -92 -169 +113 +205 3 -219 -322 +263 +382 3 -373 -489 +441 +579 3 -547 -737 +650 +887 3 -847 -1242 +1023 +1514 3 -2206 -73139 +2413 +33435 3 @@ -42487,7 +42445,7 @@ 1 2 -98272 +53658 @@ -42503,7 +42461,7 @@ 1 2 -98272 +53658 @@ -42513,11 +42471,11 @@ cil_type_argument -285765 +242724 bound -212638 +171459 index @@ -42525,7 +42483,7 @@ t -94872 +75242 @@ -42539,17 +42497,17 @@ 1 2 -156670 +120680 2 3 -49401 +43115 3 41 -6567 +7664 @@ -42565,17 +42523,17 @@ 1 2 -158825 +122719 2 3 -48373 +42236 3 41 -5440 +6504 @@ -42604,33 +42562,33 @@ 3 -16 -61 +15 +60 3 -91 -154 +90 +153 3 187 -268 +272 3 -308 -1324 +314 +1646 3 -1585 -2884 +1986 +3608 3 -6567 -212639 +7664 +171460 3 @@ -42675,23 +42633,23 @@ 3 -134 -195 +135 +200 3 -226 -914 +233 +1139 3 -921 -1510 +1143 +1878 3 -3492 -80006 +4004 +58848 3 @@ -42708,27 +42666,32 @@ 1 2 -44926 +32891 2 3 -30329 +20500 3 4 -8671 +9967 4 -8 -7431 +6 +5945 -8 -9142 -3515 +6 +43 +5650 + + +43 +7168 +289 @@ -42744,17 +42707,17 @@ 1 2 -78890 +60909 2 3 -14957 +13109 3 18 -1025 +1224 @@ -42855,19 +42818,19 @@ cil_attribute -140634 +248346 attributeid -140634 +248346 element -71402 +94117 constructor -750 +1217 @@ -42881,7 +42844,7 @@ 1 2 -140634 +248346 @@ -42897,7 +42860,7 @@ 1 2 -140634 +248346 @@ -42913,27 +42876,32 @@ 1 2 -33119 +35112 2 3 -26720 +33216 3 4 -3637 +3905 4 -6 -5549 +5 +8237 -6 -41 -2377 +5 +7 +7190 + + +7 +49 +6457 @@ -42949,22 +42917,22 @@ 1 2 -51190 +58737 2 3 -14687 +19785 3 -7 -5397 +4 +9074 -7 -11 -128 +4 +18 +6521 @@ -42980,67 +42948,67 @@ 1 2 -82 +97 2 3 -94 +130 3 4 -28 +38 4 5 -44 +143 5 +6 +47 + + +6 7 -69 +100 7 -11 -65 +10 +95 -11 -19 -59 +10 +15 +99 -19 -35 -60 +15 +29 +97 -35 -61 -59 +29 +57 +96 -61 +57 129 -58 +93 129 -307 -57 +399 +92 -312 -1450 -57 - - -1518 -19521 -18 +404 +23319 +90 @@ -43056,57 +43024,57 @@ 1 2 -120 +152 2 3 -116 +308 3 +4 +56 + + +4 5 -61 +72 5 7 -61 +94 7 -11 -66 +12 +102 -11 -20 -58 +12 +25 +102 -20 -35 -66 +25 +48 +94 -35 -69 -57 +48 +116 +93 -69 -153 -57 +117 +489 +92 -165 -539 -57 - - -586 -15827 -31 +491 +15830 +52 @@ -43116,19 +43084,19 @@ cil_attribute_named_argument -2830 +5911 attribute_id -2462 +5474 param -46 +49 value -459 +543 @@ -43142,17 +43110,12 @@ 1 2 -2142 +5093 2 -3 -276 - - -3 5 -44 +381 @@ -43168,17 +43131,12 @@ 1 2 -2185 +5137 2 -3 -250 - - -3 4 -27 +337 @@ -43194,7 +43152,7 @@ 1 2 -4 +5 2 @@ -43209,52 +43167,52 @@ 4 5 -5 +4 5 -6 -2 - - -6 7 -5 +4 -9 +7 +10 +4 + + +10 12 +3 + + +16 +27 4 -15 -20 -4 - - -25 +27 35 4 36 -58 +91 4 -77 -230 +98 +169 4 -237 -476 +171 +285 4 -482 -483 -1 +286 +2537 +4 @@ -43275,20 +43233,25 @@ 2 3 -7 +8 3 5 -4 +2 5 -7 +8 4 -11 +9 +12 +4 + + +13 26 4 @@ -43298,8 +43261,8 @@ 4 -198 -199 +248 +249 1 @@ -43316,37 +43279,37 @@ 1 2 -126 +152 2 3 -167 +196 3 4 -18 +15 4 5 -62 +60 5 -10 -35 +7 +44 -10 -35 -35 +7 +17 +42 -38 -264 -16 +18 +1137 +34 @@ -43362,12 +43325,12 @@ 1 2 -403 +482 2 3 -33 +38 3 @@ -43382,19 +43345,19 @@ cil_attribute_positional_argument -49501 +206816 attribute_id -46841 +73198 index -6 +11 value -7954 +23645 @@ -43408,12 +43371,17 @@ 1 2 -44365 +55372 2 7 -2476 +4994 + + +11 +12 +12832 @@ -43429,12 +43397,17 @@ 1 2 -44378 +55391 2 -7 -2463 +11 +6295 + + +11 +12 +11512 @@ -43448,33 +43421,38 @@ 12 -4 -5 +12832 +12833 +5 + + +12836 +12837 1 -52 -53 +12914 +12915 1 -55 -56 +12917 +12918 1 -73 -74 +12965 +12966 1 -2476 -2477 +17826 +17827 1 -46841 -46842 +73198 +73199 1 @@ -43489,33 +43467,38 @@ 12 -3 -4 +115 +116 1 -5 -6 +256 +257 +5 + + +257 +258 1 -8 -9 +259 +260 1 -15 -16 +3306 +3307 1 -124 -125 +6197 +6198 1 -7849 -7850 +14427 +14428 1 @@ -43532,32 +43515,32 @@ 1 2 -3974 +4049 2 3 -1480 +14560 3 4 -1101 +1037 4 5 -628 +1972 5 -18 -598 +321 +1774 -18 -7750 -173 +322 +8073 +253 @@ -43573,12 +43556,12 @@ 1 2 -7914 +23039 2 -6 -40 +12 +606 @@ -43588,19 +43571,19 @@ metadata_handle -3939398 +5188835 entity -2510549 +3004043 location -1229 +1703 handle -62737 +117188 @@ -43614,22 +43597,27 @@ 1 2 -1505031 +1502534 2 3 -730243 +1109759 3 4 -134024 +156365 4 -104 -141251 +6 +226414 + + +6 +16 +8971 @@ -43645,22 +43633,22 @@ 1 2 -1698902 +2108097 2 3 -598520 +607938 3 -5 -211853 +4 +139145 -5 -20 -1274 +4 +13 +148863 @@ -43674,59 +43662,59 @@ 12 -1 -2 -22 - - 2 3 -432 +464 -3 -75 -93 +4 +13 +141 -75 -192 -93 +14 +93 +128 -192 -424 -93 +93 +213 +128 -424 -706 -93 +213 +418 +130 -718 -1306 -93 +418 +666 +128 -1309 -2401 -93 +666 +1113 +128 -2445 -6196 -93 +1115 +1811 +128 -6271 -34416 -93 +1825 +4029 +128 -35288 -94585 -31 +4055 +15302 +128 + + +15445 +110459 +72 @@ -43742,52 +43730,57 @@ 1 2 -454 +464 2 -40 -93 +7 +140 -40 -108 -94 +7 +48 +129 -110 -226 -94 +48 +114 +129 -229 -417 -93 +114 +225 +130 -417 -729 -94 +225 +360 +129 -735 -1474 -93 +360 +579 +128 -1477 -3811 -93 +583 +1033 +128 -3943 -22304 -93 +1037 +2272 +128 -22464 -55159 -28 +2297 +8607 +129 + + +8727 +110459 +69 @@ -43802,68 +43795,53 @@ 1 -5 -5311 +2 +355 -5 -8 -5381 +2 +3 +52480 -8 -12 -5363 +3 +7 +9134 -12 -17 -5497 +7 +15 +9762 -17 -24 -5744 +15 +28 +9288 -24 -29 -4967 +28 +42 +8952 -29 -41 -4790 +42 +65 +8905 -41 -53 -4973 +65 +105 +8954 -53 -71 -4708 +105 +652 +8790 -71 -83 -4805 - - -83 -127 -4725 - - -127 -295 -4715 - - -295 -1334 -1758 +652 +1533 +568 @@ -43878,73 +43856,48 @@ 1 -3 -3109 - - -3 4 -5069 +4254 4 -7 -4563 +5 +55970 -7 -8 -4073 - - -8 +5 11 -5180 +8999 11 -14 -4626 +18 +9170 -14 -17 -4785 +18 +26 +9007 -17 -24 -4978 +26 +40 +9508 -24 -32 -5382 +40 +61 +8955 -32 -43 -4868 +61 +185 +8830 -43 -52 -4881 - - -52 -81 -4785 - - -81 -195 -4719 - - -195 -1230 -1719 +185 +1704 +2495 diff --git a/csharp/ql/test/library-tests/csharp7/LocalVariables.expected b/csharp/ql/test/library-tests/csharp7/LocalVariables.expected index 33514e8f6a3..06f61a52f91 100644 --- a/csharp/ql/test/library-tests/csharp7/LocalVariables.expected +++ b/csharp/ql/test/library-tests/csharp7/LocalVariables.expected @@ -33,8 +33,8 @@ | CSharp7.cs:119:13:119:15 | m11 | int | | CSharp7.cs:122:16:122:18 | m12 | string | | CSharp7.cs:123:16:123:18 | m13 | string | -| CSharp7.cs:135:19:135:20 | f4 | Func | -| CSharp7.cs:139:24:139:25 | f5 | Func | +| CSharp7.cs:135:19:135:20 | f4 | Func | +| CSharp7.cs:139:24:139:25 | f5 | Func | | CSharp7.cs:151:16:151:16 | a | Action | | CSharp7.cs:176:16:176:18 | src | string | | CSharp7.cs:181:13:181:17 | sink1 | string | @@ -42,7 +42,7 @@ | CSharp7.cs:183:13:183:17 | sink3 | string | | CSharp7.cs:191:13:191:14 | v1 | int | | CSharp7.cs:192:17:192:18 | r1 | int | -| CSharp7.cs:193:13:193:17 | array | int[] | +| CSharp7.cs:193:13:193:17 | array | Int32[] | | CSharp7.cs:196:17:196:18 | r2 | int | | CSharp7.cs:197:17:197:18 | r3 | int | | CSharp7.cs:199:17:199:18 | r4 | int | @@ -58,8 +58,8 @@ | CSharp7.cs:261:22:261:23 | i3 | int | | CSharp7.cs:264:25:264:26 | s2 | string | | CSharp7.cs:270:22:270:23 | v2 | object | -| CSharp7.cs:283:13:283:16 | dict | Dictionary | -| CSharp7.cs:284:13:284:16 | list | IEnumerable<(int, string)> | +| CSharp7.cs:283:13:283:16 | dict | Dictionary | +| CSharp7.cs:284:13:284:16 | list | IEnumerable<(Int32,String)> | | CSharp7.cs:286:23:286:23 | a | int | | CSharp7.cs:286:33:286:33 | b | string | | CSharp7.cs:288:23:288:23 | a | int | diff --git a/csharp/ql/test/library-tests/csharp7/TupleTypes.expected b/csharp/ql/test/library-tests/csharp7/TupleTypes.expected index 8c50282dd03..7168e2b833f 100644 --- a/csharp/ql/test/library-tests/csharp7/TupleTypes.expected +++ b/csharp/ql/test/library-tests/csharp7/TupleTypes.expected @@ -1,49 +1,49 @@ -| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:77:10:77:14 | a | -| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:77:36:77:36 | Item1 | -| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:78:24:78:24 | b | -| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:77:17:77:30 | Item2 | -| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:77:39:77:39 | z | -| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:78:27:78:32 | Item2 | -| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 0 | CSharp7.cs:98:19:98:19 | Item1 | -| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 1 | CSharp7.cs:98:22:98:42 | Item2 | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:214:6:214:8 | Item1 | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:224:10:224:14 | x | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:225:10:225:10 | Item1 | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:214:11:214:16 | Item2 | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:224:17:224:17 | Item2 | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:225:13:225:17 | y | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:64:6:64:8 | Item1 | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:71:10:71:14 | x | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:77:18:77:22 | b | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:78:28:78:28 | c | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:112:15:112:16 | m4 | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:114:19:114:24 | m8 | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:64:11:64:13 | Item2 | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:71:17:71:21 | y | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:77:25:77:29 | c | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:78:31:78:31 | a | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:112:19:112:20 | m5 | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:114:27:114:32 | m9 | -| (Int32,Int32,Int32) | (int, int, int) | ValueTuple | 3 | 0 | CSharp7.cs:75:10:75:10 | x | -| (Int32,Int32,Int32) | (int, int, int) | ValueTuple | 3 | 1 | CSharp7.cs:75:13:75:13 | y | -| (Int32,Int32,Int32) | (int, int, int) | ValueTuple | 3 | 2 | CSharp7.cs:75:16:75:22 | Item3 | -| (Int32,String) | (int, string) | ValueTuple | 2 | 0 | CSharp7.cs:284:41:284:48 | Key | -| (Int32,String) | (int, string) | ValueTuple | 2 | 0 | CSharp7.cs:286:19:286:23 | a | -| (Int32,String) | (int, string) | ValueTuple | 2 | 1 | CSharp7.cs:284:51:284:60 | Value | -| (Int32,String) | (int, string) | ValueTuple | 2 | 1 | CSharp7.cs:286:26:286:33 | b | -| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:109:10:109:15 | m1 | -| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:112:10:112:11 | m3 | -| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:114:10:114:15 | m7 | -| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:109:18:109:23 | m2 | -| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:112:14:112:21 | Item2 | -| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:114:18:114:33 | Item2 | -| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:79:14:79:14 | i | -| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:79:23:79:24 | Item1 | -| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:84:17:84:17 | a | -| (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:79:17:79:17 | j | -| (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:79:27:79:27 | x | -| (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:84:23:84:23 | Item2 | -| (String,String) | (string, string) | ValueTuple | 2 | 0 | CSharp7.cs:89:19:89:27 | Item1 | -| (String,String) | (string, string) | ValueTuple | 2 | 0 | CSharp7.cs:90:10:90:15 | t2 | -| (String,String) | (string, string) | ValueTuple | 2 | 1 | CSharp7.cs:89:30:89:33 | Item2 | -| (String,String) | (string, string) | ValueTuple | 2 | 1 | CSharp7.cs:90:18:90:23 | t3 | +| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:77:10:77:14 | a | +| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:77:36:77:36 | Item1 | +| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:78:24:78:24 | b | +| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:77:17:77:30 | Item2 | +| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:77:39:77:39 | z | +| (Int32,(Int32,Int32)) | (int, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:78:27:78:32 | Item2 | +| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 0 | CSharp7.cs:98:19:98:19 | Item1 | +| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 1 | CSharp7.cs:98:22:98:42 | Item2 | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:214:6:214:8 | Item1 | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:224:10:224:14 | x | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:225:10:225:10 | Item1 | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:214:11:214:16 | Item2 | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:224:17:224:17 | Item2 | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:225:13:225:17 | y | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:64:6:64:8 | Item1 | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:71:10:71:14 | x | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:77:18:77:22 | b | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:78:28:78:28 | c | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:112:15:112:16 | m4 | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:114:19:114:24 | m8 | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:64:11:64:13 | Item2 | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:71:17:71:21 | y | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:77:25:77:29 | c | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:78:31:78:31 | a | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:112:19:112:20 | m5 | +| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:114:27:114:32 | m9 | +| (Int32,Int32,Int32) | (int, int, int) | ValueTuple | 3 | 0 | CSharp7.cs:75:10:75:10 | x | +| (Int32,Int32,Int32) | (int, int, int) | ValueTuple | 3 | 1 | CSharp7.cs:75:13:75:13 | y | +| (Int32,Int32,Int32) | (int, int, int) | ValueTuple | 3 | 2 | CSharp7.cs:75:16:75:22 | Item3 | +| (Int32,String) | (int, string) | ValueTuple | 2 | 0 | CSharp7.cs:284:41:284:48 | Key | +| (Int32,String) | (int, string) | ValueTuple | 2 | 0 | CSharp7.cs:286:19:286:23 | a | +| (Int32,String) | (int, string) | ValueTuple | 2 | 1 | CSharp7.cs:284:51:284:60 | Value | +| (Int32,String) | (int, string) | ValueTuple | 2 | 1 | CSharp7.cs:286:26:286:33 | b | +| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:109:10:109:15 | m1 | +| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:112:10:112:11 | m3 | +| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 0 | CSharp7.cs:114:10:114:15 | m7 | +| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:109:18:109:23 | m2 | +| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:112:14:112:21 | Item2 | +| (String,(Int32,Int32)) | (string, (int, int)) | ValueTuple | 2 | 1 | CSharp7.cs:114:18:114:33 | Item2 | +| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:79:14:79:14 | i | +| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:79:23:79:24 | Item1 | +| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:84:17:84:17 | a | +| (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:79:17:79:17 | j | +| (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:79:27:79:27 | x | +| (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:84:23:84:23 | Item2 | +| (String,String) | (string, string) | ValueTuple | 2 | 0 | CSharp7.cs:89:19:89:27 | Item1 | +| (String,String) | (string, string) | ValueTuple | 2 | 0 | CSharp7.cs:90:10:90:15 | t2 | +| (String,String) | (string, string) | ValueTuple | 2 | 1 | CSharp7.cs:89:30:89:33 | Item2 | +| (String,String) | (string, string) | ValueTuple | 2 | 1 | CSharp7.cs:90:18:90:23 | t3 | diff --git a/csharp/ql/test/library-tests/csharp8/NullCoalescingAssignment.expected b/csharp/ql/test/library-tests/csharp8/NullCoalescingAssignment.expected index 04ae7641c05..d388d2fdb7c 100644 --- a/csharp/ql/test/library-tests/csharp8/NullCoalescingAssignment.expected +++ b/csharp/ql/test/library-tests/csharp8/NullCoalescingAssignment.expected @@ -1,5 +1,5 @@ nullcoalescing | NullCoalescingAssignment.cs:8:9:8:18 | ... ?? ... | -| NullableRefTypes.cs:88:17:88:25 | ... ?? ... | +| NullableRefTypes.cs:94:17:94:25 | ... ?? ... | assignments | NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... | NullCoalescingAssignment.cs:8:9:8:18 | ... = ... | diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.cs b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.cs index 21847241a06..0d1a12ccfee 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.cs +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.cs @@ -55,6 +55,12 @@ class MyClass { } + class Generic2 + where T1: MyClass + where T2: Generic, MyClass> + { + } + // Nullable type arguments Generic items2; diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected index b310a0f52d5..915992329e3 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected @@ -1,150 +1,150 @@ suppressNullableWarnings -| NullableRefTypes.cs:79:20:79:21 | ...! | NullableRefTypes.cs:79:20:79:20 | access to local variable x | -| NullableRefTypes.cs:80:13:80:14 | ...! | NullableRefTypes.cs:80:13:80:13 | access to local variable x | -| NullableRefTypes.cs:80:13:80:15 | ...! | NullableRefTypes.cs:80:13:80:14 | ...! | -| NullableRefTypes.cs:82:13:82:14 | ...! | NullableRefTypes.cs:82:13:82:13 | access to local variable x | -| NullableRefTypes.cs:107:36:107:44 | ...! | NullableRefTypes.cs:107:36:107:43 | access to field Property | +| NullableRefTypes.cs:85:20:85:21 | ...! | NullableRefTypes.cs:85:20:85:20 | access to local variable x | +| NullableRefTypes.cs:86:13:86:14 | ...! | NullableRefTypes.cs:86:13:86:13 | access to local variable x | +| NullableRefTypes.cs:86:13:86:15 | ...! | NullableRefTypes.cs:86:13:86:14 | ...! | +| NullableRefTypes.cs:88:13:88:14 | ...! | NullableRefTypes.cs:88:13:88:13 | access to local variable x | +| NullableRefTypes.cs:113:36:113:44 | ...! | NullableRefTypes.cs:113:36:113:43 | access to field Property | nullableDataFlow -| NullableRefTypes.cs:78:17:78:28 | SSA def(x) | NullableRefTypes.cs:79:20:79:20 | access to local variable x | -| NullableRefTypes.cs:78:21:78:28 | "source" | NullableRefTypes.cs:78:17:78:28 | SSA def(x) | -| NullableRefTypes.cs:79:20:79:20 | access to local variable x | NullableRefTypes.cs:79:20:79:21 | ...! | -| NullableRefTypes.cs:79:20:79:20 | access to local variable x | NullableRefTypes.cs:80:13:80:13 | access to local variable x | -| NullableRefTypes.cs:80:13:80:13 | access to local variable x | NullableRefTypes.cs:80:13:80:14 | ...! | -| NullableRefTypes.cs:80:13:80:14 | ...! | NullableRefTypes.cs:80:13:80:15 | ...! | -| NullableRefTypes.cs:81:9:81:16 | SSA def(x) | NullableRefTypes.cs:82:13:82:13 | access to local variable x | -| NullableRefTypes.cs:81:13:81:16 | null | NullableRefTypes.cs:81:9:81:16 | SSA def(x) | -| NullableRefTypes.cs:82:13:82:13 | access to local variable x | NullableRefTypes.cs:82:13:82:14 | ...! | +| NullableRefTypes.cs:84:17:84:28 | SSA def(x) | NullableRefTypes.cs:85:20:85:20 | access to local variable x | +| NullableRefTypes.cs:84:21:84:28 | "source" | NullableRefTypes.cs:84:17:84:28 | SSA def(x) | +| NullableRefTypes.cs:85:20:85:20 | access to local variable x | NullableRefTypes.cs:85:20:85:21 | ...! | +| NullableRefTypes.cs:85:20:85:20 | access to local variable x | NullableRefTypes.cs:86:13:86:13 | access to local variable x | +| NullableRefTypes.cs:86:13:86:13 | access to local variable x | NullableRefTypes.cs:86:13:86:14 | ...! | +| NullableRefTypes.cs:86:13:86:14 | ...! | NullableRefTypes.cs:86:13:86:15 | ...! | +| NullableRefTypes.cs:87:9:87:16 | SSA def(x) | NullableRefTypes.cs:88:13:88:13 | access to local variable x | +| NullableRefTypes.cs:87:13:87:16 | null | NullableRefTypes.cs:87:9:87:16 | SSA def(x) | +| NullableRefTypes.cs:88:13:88:13 | access to local variable x | NullableRefTypes.cs:88:13:88:14 | ...! | nullableControlFlow -| NullableRefTypes.cs:76:10:76:40 | enter TestSuppressNullableWarningExpr | NullableRefTypes.cs:77:5:83:5 | {...} | successor | -| NullableRefTypes.cs:77:5:83:5 | {...} | NullableRefTypes.cs:78:9:78:29 | ... ...; | successor | -| NullableRefTypes.cs:78:9:78:29 | ... ...; | NullableRefTypes.cs:78:21:78:28 | "source" | successor | -| NullableRefTypes.cs:78:17:78:28 | String x = ... | NullableRefTypes.cs:79:9:79:22 | ... ...; | successor | -| NullableRefTypes.cs:78:21:78:28 | "source" | NullableRefTypes.cs:78:17:78:28 | String x = ... | successor | -| NullableRefTypes.cs:79:9:79:22 | ... ...; | NullableRefTypes.cs:79:20:79:20 | access to local variable x | successor | -| NullableRefTypes.cs:79:16:79:21 | String y = ... | NullableRefTypes.cs:80:9:80:16 | ...; | successor | -| NullableRefTypes.cs:79:20:79:20 | access to local variable x | NullableRefTypes.cs:79:20:79:21 | ...! | successor | -| NullableRefTypes.cs:79:20:79:21 | ...! | NullableRefTypes.cs:79:16:79:21 | String y = ... | successor | -| NullableRefTypes.cs:80:9:80:15 | ... = ... | NullableRefTypes.cs:81:9:81:17 | ...; | successor | -| NullableRefTypes.cs:80:9:80:16 | ...; | NullableRefTypes.cs:80:13:80:13 | access to local variable x | successor | -| NullableRefTypes.cs:80:13:80:13 | access to local variable x | NullableRefTypes.cs:80:13:80:14 | ...! | successor | -| NullableRefTypes.cs:80:13:80:14 | ...! | NullableRefTypes.cs:80:13:80:15 | ...! | successor | -| NullableRefTypes.cs:80:13:80:15 | ...! | NullableRefTypes.cs:80:9:80:15 | ... = ... | successor | -| NullableRefTypes.cs:81:9:81:16 | ... = ... | NullableRefTypes.cs:82:9:82:15 | ...; | successor | -| NullableRefTypes.cs:81:9:81:17 | ...; | NullableRefTypes.cs:81:13:81:16 | null | successor | -| NullableRefTypes.cs:81:13:81:16 | null | NullableRefTypes.cs:81:9:81:16 | ... = ... | successor | -| NullableRefTypes.cs:82:9:82:14 | ... = ... | NullableRefTypes.cs:76:10:76:40 | exit TestSuppressNullableWarningExpr | successor | -| NullableRefTypes.cs:82:9:82:15 | ...; | NullableRefTypes.cs:82:13:82:13 | access to local variable x | successor | -| NullableRefTypes.cs:82:13:82:13 | access to local variable x | NullableRefTypes.cs:82:13:82:14 | ...! | successor | -| NullableRefTypes.cs:82:13:82:14 | ...! | NullableRefTypes.cs:82:9:82:14 | ... = ... | successor | +| NullableRefTypes.cs:82:10:82:40 | enter TestSuppressNullableWarningExpr | NullableRefTypes.cs:83:5:89:5 | {...} | successor | +| NullableRefTypes.cs:83:5:89:5 | {...} | NullableRefTypes.cs:84:9:84:29 | ... ...; | successor | +| NullableRefTypes.cs:84:9:84:29 | ... ...; | NullableRefTypes.cs:84:21:84:28 | "source" | successor | +| NullableRefTypes.cs:84:17:84:28 | String x = ... | NullableRefTypes.cs:85:9:85:22 | ... ...; | successor | +| NullableRefTypes.cs:84:21:84:28 | "source" | NullableRefTypes.cs:84:17:84:28 | String x = ... | successor | +| NullableRefTypes.cs:85:9:85:22 | ... ...; | NullableRefTypes.cs:85:20:85:20 | access to local variable x | successor | +| NullableRefTypes.cs:85:16:85:21 | String y = ... | NullableRefTypes.cs:86:9:86:16 | ...; | successor | +| NullableRefTypes.cs:85:20:85:20 | access to local variable x | NullableRefTypes.cs:85:20:85:21 | ...! | successor | +| NullableRefTypes.cs:85:20:85:21 | ...! | NullableRefTypes.cs:85:16:85:21 | String y = ... | successor | +| NullableRefTypes.cs:86:9:86:15 | ... = ... | NullableRefTypes.cs:87:9:87:17 | ...; | successor | +| NullableRefTypes.cs:86:9:86:16 | ...; | NullableRefTypes.cs:86:13:86:13 | access to local variable x | successor | +| NullableRefTypes.cs:86:13:86:13 | access to local variable x | NullableRefTypes.cs:86:13:86:14 | ...! | successor | +| NullableRefTypes.cs:86:13:86:14 | ...! | NullableRefTypes.cs:86:13:86:15 | ...! | successor | +| NullableRefTypes.cs:86:13:86:15 | ...! | NullableRefTypes.cs:86:9:86:15 | ... = ... | successor | +| NullableRefTypes.cs:87:9:87:16 | ... = ... | NullableRefTypes.cs:88:9:88:15 | ...; | successor | +| NullableRefTypes.cs:87:9:87:17 | ...; | NullableRefTypes.cs:87:13:87:16 | null | successor | +| NullableRefTypes.cs:87:13:87:16 | null | NullableRefTypes.cs:87:9:87:16 | ... = ... | successor | +| NullableRefTypes.cs:88:9:88:14 | ... = ... | NullableRefTypes.cs:82:10:82:40 | exit TestSuppressNullableWarningExpr | successor | +| NullableRefTypes.cs:88:9:88:15 | ...; | NullableRefTypes.cs:88:13:88:13 | access to local variable x | successor | +| NullableRefTypes.cs:88:13:88:13 | access to local variable x | NullableRefTypes.cs:88:13:88:14 | ...! | successor | +| NullableRefTypes.cs:88:13:88:14 | ...! | NullableRefTypes.cs:88:9:88:14 | ... = ... | successor | nonNullExpressions -| NullableRefTypes.cs:78:21:78:28 | "source" | -| NullableRefTypes.cs:79:20:79:20 | access to local variable x | -| NullableRefTypes.cs:79:20:79:21 | ...! | -| NullableRefTypes.cs:80:9:80:15 | ... = ... | -| NullableRefTypes.cs:80:13:80:13 | access to local variable x | -| NullableRefTypes.cs:80:13:80:14 | ...! | -| NullableRefTypes.cs:80:13:80:15 | ...! | -| NullableRefTypes.cs:82:9:82:14 | ... = ... | -| NullableRefTypes.cs:82:13:82:14 | ...! | +| NullableRefTypes.cs:84:21:84:28 | "source" | +| NullableRefTypes.cs:85:20:85:20 | access to local variable x | +| NullableRefTypes.cs:85:20:85:21 | ...! | +| NullableRefTypes.cs:86:9:86:15 | ... = ... | +| NullableRefTypes.cs:86:13:86:13 | access to local variable x | +| NullableRefTypes.cs:86:13:86:14 | ...! | +| NullableRefTypes.cs:86:13:86:15 | ...! | +| NullableRefTypes.cs:88:9:88:14 | ... = ... | +| NullableRefTypes.cs:88:13:88:14 | ...! | assignableTypes -| NullableRefTypes.cs:9:14:9:14 | A | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:10:13:10:13 | B | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:13:14:13:14 | C | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:14:13:14:13 | D | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:17:14:17:17 | Item | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:18:13:18:16 | Item | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:19:13:19:16 | Item | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:19:27:19:27 | i | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:19:27:19:27 | i | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:22:16:22:17 | G1 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | -| NullableRefTypes.cs:23:17:23:18 | G2 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | -| NullableRefTypes.cs:24:16:24:17 | G3 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | -| NullableRefTypes.cs:25:18:25:18 | H | NullableRefTypes.cs:6:7:6:13 | MyClass?[][]! | -| NullableRefTypes.cs:26:38:26:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass![]?[]! | -| NullableRefTypes.cs:27:38:27:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass?[][]! | -| NullableRefTypes.cs:32:20:32:20 | a | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:32:31:32:31 | b | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:37:17:37:17 | a | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:38:18:38:18 | b | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:39:21:39:21 | c | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | -| NullableRefTypes.cs:40:22:40:22 | d | NullableRefTypes.cs:6:7:6:13 | ref MyClass? | -| NullableRefTypes.cs:47:35:47:35 | x | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:47:35:47:35 | x | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:47:35:47:35 | x | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:48:16:48:16 | P | NullableRefTypes.cs:47:23:47:25 | Del? | -| NullableRefTypes.cs:48:16:48:16 | value | NullableRefTypes.cs:47:23:47:25 | Del? | -| NullableRefTypes.cs:48:16:48:16 | value | NullableRefTypes.cs:47:23:47:25 | Del? | -| NullableRefTypes.cs:51:19:51:19 | t | NullableRefTypes.cs:6:7:6:13 | MyClass | -| NullableRefTypes.cs:51:19:51:19 | t | NullableRefTypes.cs:51:14:51:14 | T! | -| NullableRefTypes.cs:59:54:59:59 | items2 | NullableRefTypes.cs:54:11:54:33 | Generic! | -| NullableRefTypes.cs:61:25:61:25 | x | NullableRefTypes.cs:6:7:6:13 | MyClass | -| NullableRefTypes.cs:61:25:61:25 | x | NullableRefTypes.cs:61:20:61:20 | T! | -| NullableRefTypes.cs:67:18:67:18 | x | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:97:42:97:42 | r | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | -| NullableRefTypes.cs:98:42:98:42 | r | NullableRefTypes.cs:6:7:6:13 | ref MyClass? | -| NullableRefTypes.cs:99:51:99:51 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass? | -| NullableRefTypes.cs:100:50:100:50 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass! | -| NullableRefTypes.cs:101:49:101:49 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass! | -| NullableRefTypes.cs:102:50:102:50 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass? | -| NullableRefTypes.cs:104:34:104:35 | p1 | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | -| NullableRefTypes.cs:104:51:104:52 | p2 | NullableRefTypes.cs:6:7:6:13 | out MyClass? | -| NullableRefTypes.cs:106:14:106:21 | Property | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:107:17:107:27 | RefProperty | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | -| NullableRefTypes.cs:112:15:112:15 | a | NullableRefTypes.cs:159:8:159:15 | MyStruct? | -| NullableRefTypes.cs:113:17:113:17 | b | NullableRefTypes.cs:159:8:159:15 | MyStruct![]? | -| NullableRefTypes.cs:114:17:114:17 | c | NullableRefTypes.cs:159:8:159:15 | MyStruct?[]! | -| NullableRefTypes.cs:115:18:115:18 | d | NullableRefTypes.cs:159:8:159:15 | MyStruct?[]? | -| NullableRefTypes.cs:117:14:117:14 | e | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:118:16:118:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | -| NullableRefTypes.cs:119:16:119:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass![]? | -| NullableRefTypes.cs:120:17:120:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | -| NullableRefTypes.cs:122:23:122:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass![,,]?[,][]! | -| NullableRefTypes.cs:123:22:123:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass![,,][,][]! | -| NullableRefTypes.cs:124:27:124:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass![,,,][][,][,,]! | -| NullableRefTypes.cs:125:29:125:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,]! | -| NullableRefTypes.cs:132:15:132:15 | a | NullableRefTypes.cs:159:8:159:15 | MyStruct? | -| NullableRefTypes.cs:133:17:133:17 | b | NullableRefTypes.cs:159:8:159:15 | MyStruct![]? | -| NullableRefTypes.cs:134:17:134:17 | c | NullableRefTypes.cs:159:8:159:15 | MyStruct?[] | -| NullableRefTypes.cs:135:18:135:18 | d | NullableRefTypes.cs:159:8:159:15 | MyStruct?[]? | -| NullableRefTypes.cs:137:14:137:14 | e | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:138:16:138:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass?[] | -| NullableRefTypes.cs:139:16:139:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass[]? | -| NullableRefTypes.cs:140:17:140:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | -| NullableRefTypes.cs:142:23:142:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass[,,]?[,][] | -| NullableRefTypes.cs:143:22:143:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass[,,][,][] | -| NullableRefTypes.cs:144:27:144:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass[,,,][][,][,,] | -| NullableRefTypes.cs:145:29:145:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,] | -| NullableRefTypes.cs:150:13:150:14 | f1 | NullableRefTypes.cs:6:7:6:13 | MyClass | -| NullableRefTypes.cs:151:13:151:13 | P | NullableRefTypes.cs:6:7:6:13 | MyClass | -| NullableRefTypes.cs:152:24:152:24 | p | NullableRefTypes.cs:6:7:6:13 | MyClass | -| NullableRefTypes.cs:154:17:154:17 | a | NullableRefTypes.cs:6:7:6:13 | MyClass | +| NullableRefTypes.cs:9:14:9:14 | A | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:10:13:10:13 | B | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:13:14:13:14 | C | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:14:13:14:13 | D | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:17:14:17:17 | Item | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:18:13:18:16 | Item | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:19:13:19:16 | Item | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:19:27:19:27 | i | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:19:27:19:27 | i | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:22:16:22:17 | G1 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | ! | +| NullableRefTypes.cs:23:17:23:18 | G2 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | ? | +| NullableRefTypes.cs:24:16:24:17 | G3 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | ! | +| NullableRefTypes.cs:25:18:25:18 | H | NullableRefTypes.cs:6:7:6:13 | MyClass?[][]! | <!>! | +| NullableRefTypes.cs:26:38:26:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass![]?[]! | <?>! | +| NullableRefTypes.cs:27:38:27:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass?[][]! | <!>! | +| NullableRefTypes.cs:32:20:32:20 | a | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:32:31:32:31 | b | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:37:17:37:17 | a | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:38:18:38:18 | b | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:39:21:39:21 | c | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | ! | +| NullableRefTypes.cs:40:22:40:22 | d | NullableRefTypes.cs:6:7:6:13 | ref MyClass? | ? | +| NullableRefTypes.cs:47:35:47:35 | x | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:47:35:47:35 | x | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:47:35:47:35 | x | NullableRefTypes.cs:6:7:6:13 | MyClass! | ! | +| NullableRefTypes.cs:48:16:48:16 | P | NullableRefTypes.cs:47:23:47:25 | Del? | ? | +| NullableRefTypes.cs:48:16:48:16 | value | NullableRefTypes.cs:47:23:47:25 | Del? | ? | +| NullableRefTypes.cs:48:16:48:16 | value | NullableRefTypes.cs:47:23:47:25 | Del? | ? | +| NullableRefTypes.cs:51:19:51:19 | t | NullableRefTypes.cs:6:7:6:13 | MyClass | _ | +| NullableRefTypes.cs:51:19:51:19 | t | NullableRefTypes.cs:51:14:51:14 | T! | ! | +| NullableRefTypes.cs:65:54:65:59 | items2 | NullableRefTypes.cs:54:11:54:33 | Generic! | ! | +| NullableRefTypes.cs:67:25:67:25 | x | NullableRefTypes.cs:6:7:6:13 | MyClass | _ | +| NullableRefTypes.cs:67:25:67:25 | x | NullableRefTypes.cs:67:20:67:20 | T! | ! | +| NullableRefTypes.cs:73:18:73:18 | x | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:103:42:103:42 | r | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | ! | +| NullableRefTypes.cs:104:42:104:42 | r | NullableRefTypes.cs:6:7:6:13 | ref MyClass? | ? | +| NullableRefTypes.cs:105:51:105:51 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass? | ? | +| NullableRefTypes.cs:106:50:106:50 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass! | ! | +| NullableRefTypes.cs:107:49:107:49 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass! | ! | +| NullableRefTypes.cs:108:50:108:50 | r | NullableRefTypes.cs:6:7:6:13 | readonly MyClass? | ? | +| NullableRefTypes.cs:110:34:110:35 | p1 | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | ! | +| NullableRefTypes.cs:110:51:110:52 | p2 | NullableRefTypes.cs:6:7:6:13 | out MyClass? | ? | +| NullableRefTypes.cs:112:14:112:21 | Property | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:113:17:113:27 | RefProperty | NullableRefTypes.cs:6:7:6:13 | ref MyClass! | ! | +| NullableRefTypes.cs:118:15:118:15 | a | NullableRefTypes.cs:165:8:165:15 | MyStruct? | <_>? | +| NullableRefTypes.cs:119:17:119:17 | b | NullableRefTypes.cs:165:8:165:15 | MyStruct![]? | ? | +| NullableRefTypes.cs:120:17:120:17 | c | NullableRefTypes.cs:165:8:165:15 | MyStruct?[]! | <<_>?>! | +| NullableRefTypes.cs:121:18:121:18 | d | NullableRefTypes.cs:165:8:165:15 | MyStruct?[]? | <<_>?>? | +| NullableRefTypes.cs:123:14:123:14 | e | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:124:16:124:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | ! | +| NullableRefTypes.cs:125:16:125:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass![]? | ? | +| NullableRefTypes.cs:126:17:126:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | ? | +| NullableRefTypes.cs:128:23:128:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass![,,]?[,][]! | <<?>!>! | +| NullableRefTypes.cs:129:22:129:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass![,,][,][]! | ! | +| NullableRefTypes.cs:130:27:130:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass![,,,][][,][,,]! | ! | +| NullableRefTypes.cs:131:29:131:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,]! | <<<!>!>?>! | +| NullableRefTypes.cs:138:15:138:15 | a | NullableRefTypes.cs:165:8:165:15 | MyStruct? | <_>? | +| NullableRefTypes.cs:139:17:139:17 | b | NullableRefTypes.cs:165:8:165:15 | MyStruct[]? | <_>? | +| NullableRefTypes.cs:140:17:140:17 | c | NullableRefTypes.cs:165:8:165:15 | MyStruct?[] | <<_>?>_ | +| NullableRefTypes.cs:141:18:141:18 | d | NullableRefTypes.cs:165:8:165:15 | MyStruct?[]? | <<_>?>? | +| NullableRefTypes.cs:143:14:143:14 | e | NullableRefTypes.cs:6:7:6:13 | MyClass? | ? | +| NullableRefTypes.cs:144:16:144:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass?[] | _ | +| NullableRefTypes.cs:145:16:145:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass[]? | <_>? | +| NullableRefTypes.cs:146:17:146:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | ? | +| NullableRefTypes.cs:148:23:148:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass[,,]?[,][] | <<<_>?>_>_ | +| NullableRefTypes.cs:149:22:149:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass[,,][,][] | _ | +| NullableRefTypes.cs:150:27:150:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass[,,,][][,][,,] | _ | +| NullableRefTypes.cs:151:29:151:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,] | <<<_>_>?>_ | +| NullableRefTypes.cs:156:13:156:14 | f1 | NullableRefTypes.cs:6:7:6:13 | MyClass | _ | +| NullableRefTypes.cs:157:13:157:13 | P | NullableRefTypes.cs:6:7:6:13 | MyClass | _ | +| NullableRefTypes.cs:158:24:158:24 | p | NullableRefTypes.cs:6:7:6:13 | MyClass | _ | +| NullableRefTypes.cs:160:17:160:17 | a | NullableRefTypes.cs:6:7:6:13 | MyClass | _ | arrayElements -| NullableRefTypes.cs:22:16:22:17 | G1 | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:23:17:23:18 | G2 | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:24:16:24:17 | G3 | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:25:18:25:18 | H | NullableRefTypes.cs:6:7:6:13 | MyClass[][] | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | -| NullableRefTypes.cs:26:38:26:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass[][] | NullableRefTypes.cs:6:7:6:13 | MyClass![]? | -| NullableRefTypes.cs:27:38:27:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass[][] | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | -| NullableRefTypes.cs:113:17:113:17 | b | NullableRefTypes.cs:159:8:159:15 | MyStruct[] | NullableRefTypes.cs:159:8:159:15 | MyStruct! | -| NullableRefTypes.cs:114:17:114:17 | c | NullableRefTypes.cs:159:8:159:15 | Nullable | NullableRefTypes.cs:159:8:159:15 | MyStruct? | -| NullableRefTypes.cs:115:18:115:18 | d | NullableRefTypes.cs:159:8:159:15 | Nullable | NullableRefTypes.cs:159:8:159:15 | MyStruct? | -| NullableRefTypes.cs:118:16:118:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:119:16:119:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass! | -| NullableRefTypes.cs:120:17:120:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:122:23:122:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass[,,][][,] | NullableRefTypes.cs:6:7:6:13 | MyClass![,,]?[]! | -| NullableRefTypes.cs:123:22:123:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass[][,][,,] | NullableRefTypes.cs:6:7:6:13 | MyClass![,][]! | -| NullableRefTypes.cs:124:27:124:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass[,,][,][][,,,] | NullableRefTypes.cs:6:7:6:13 | MyClass![][,][,,]! | -| NullableRefTypes.cs:125:29:125:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass[,][][,,,][,,] | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]? | -| NullableRefTypes.cs:133:17:133:17 | b | NullableRefTypes.cs:159:8:159:15 | MyStruct[] | NullableRefTypes.cs:159:8:159:15 | MyStruct! | -| NullableRefTypes.cs:134:17:134:17 | c | NullableRefTypes.cs:159:8:159:15 | Nullable | NullableRefTypes.cs:159:8:159:15 | MyStruct? | -| NullableRefTypes.cs:135:18:135:18 | d | NullableRefTypes.cs:159:8:159:15 | Nullable | NullableRefTypes.cs:159:8:159:15 | MyStruct? | -| NullableRefTypes.cs:138:16:138:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:139:16:139:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass | -| NullableRefTypes.cs:140:17:140:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | -| NullableRefTypes.cs:142:23:142:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass[,,][][,] | NullableRefTypes.cs:6:7:6:13 | MyClass[,,]?[] | -| NullableRefTypes.cs:143:22:143:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass[][,][,,] | NullableRefTypes.cs:6:7:6:13 | MyClass[,][] | -| NullableRefTypes.cs:144:27:144:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass[,,][,][][,,,] | NullableRefTypes.cs:6:7:6:13 | MyClass[][,][,,] | -| NullableRefTypes.cs:145:29:145:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass[,][][,,,][,,] | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]? | +| NullableRefTypes.cs:22:16:22:17 | G1 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | NullableRefTypes.cs:6:7:6:13 | MyClass? | +| NullableRefTypes.cs:23:17:23:18 | G2 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | NullableRefTypes.cs:6:7:6:13 | MyClass? | +| NullableRefTypes.cs:24:16:24:17 | G3 | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | NullableRefTypes.cs:6:7:6:13 | MyClass? | +| NullableRefTypes.cs:25:18:25:18 | H | NullableRefTypes.cs:6:7:6:13 | MyClass?[][]! | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | +| NullableRefTypes.cs:26:38:26:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass![]?[]! | NullableRefTypes.cs:6:7:6:13 | MyClass![]? | +| NullableRefTypes.cs:27:38:27:38 | x | NullableRefTypes.cs:6:7:6:13 | MyClass?[][]! | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | +| NullableRefTypes.cs:119:17:119:17 | b | NullableRefTypes.cs:165:8:165:15 | MyStruct![]? | NullableRefTypes.cs:165:8:165:15 | MyStruct! | +| NullableRefTypes.cs:120:17:120:17 | c | NullableRefTypes.cs:165:8:165:15 | MyStruct?[]! | NullableRefTypes.cs:165:8:165:15 | MyStruct? | +| NullableRefTypes.cs:121:18:121:18 | d | NullableRefTypes.cs:165:8:165:15 | MyStruct?[]? | NullableRefTypes.cs:165:8:165:15 | MyStruct? | +| NullableRefTypes.cs:124:16:124:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass?[]! | NullableRefTypes.cs:6:7:6:13 | MyClass? | +| NullableRefTypes.cs:125:16:125:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass![]? | NullableRefTypes.cs:6:7:6:13 | MyClass! | +| NullableRefTypes.cs:126:17:126:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | NullableRefTypes.cs:6:7:6:13 | MyClass? | +| NullableRefTypes.cs:128:23:128:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass![,,]?[,][]! | NullableRefTypes.cs:6:7:6:13 | MyClass![,,]?[]! | +| NullableRefTypes.cs:129:22:129:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass![,,][,][]! | NullableRefTypes.cs:6:7:6:13 | MyClass![,][]! | +| NullableRefTypes.cs:130:27:130:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass![,,,][][,][,,]! | NullableRefTypes.cs:6:7:6:13 | MyClass![][,][,,]! | +| NullableRefTypes.cs:131:29:131:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,]! | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]? | +| NullableRefTypes.cs:139:17:139:17 | b | NullableRefTypes.cs:165:8:165:15 | MyStruct[]? | NullableRefTypes.cs:165:8:165:15 | MyStruct | +| NullableRefTypes.cs:140:17:140:17 | c | NullableRefTypes.cs:165:8:165:15 | MyStruct?[] | NullableRefTypes.cs:165:8:165:15 | MyStruct? | +| NullableRefTypes.cs:141:18:141:18 | d | NullableRefTypes.cs:165:8:165:15 | MyStruct?[]? | NullableRefTypes.cs:165:8:165:15 | MyStruct? | +| NullableRefTypes.cs:144:16:144:16 | f | NullableRefTypes.cs:6:7:6:13 | MyClass?[] | NullableRefTypes.cs:6:7:6:13 | MyClass? | +| NullableRefTypes.cs:145:16:145:16 | g | NullableRefTypes.cs:6:7:6:13 | MyClass[]? | NullableRefTypes.cs:6:7:6:13 | MyClass | +| NullableRefTypes.cs:146:17:146:17 | h | NullableRefTypes.cs:6:7:6:13 | MyClass?[]? | NullableRefTypes.cs:6:7:6:13 | MyClass? | +| NullableRefTypes.cs:148:23:148:23 | i | NullableRefTypes.cs:6:7:6:13 | MyClass[,,]?[,][] | NullableRefTypes.cs:6:7:6:13 | MyClass[,,]?[] | +| NullableRefTypes.cs:149:22:149:22 | j | NullableRefTypes.cs:6:7:6:13 | MyClass[,,][,][] | NullableRefTypes.cs:6:7:6:13 | MyClass[,][] | +| NullableRefTypes.cs:150:27:150:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass[,,,][][,][,,] | NullableRefTypes.cs:6:7:6:13 | MyClass[][,][,,] | +| NullableRefTypes.cs:151:29:151:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,] | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]? | returnTypes | NullableRefTypes.cs:6:7:6:13 | MyClass | Void | | NullableRefTypes.cs:13:19:13:22 | get_C | MyClass? | @@ -168,40 +168,61 @@ returnTypes | NullableRefTypes.cs:47:23:47:25 | Invoke | MyClass? | | NullableRefTypes.cs:48:16:48:16 | add_P | Void | | NullableRefTypes.cs:48:16:48:16 | remove_P | Void | +| NullableRefTypes.cs:51:12:51:15 | Q | object | | NullableRefTypes.cs:51:12:51:15 | Q | object! | | NullableRefTypes.cs:51:12:51:15 | Q | object! | | NullableRefTypes.cs:54:11:54:33 | Generic | Void | -| NullableRefTypes.cs:61:10:61:21 | GenericFn | Void! | -| NullableRefTypes.cs:61:10:61:21 | GenericFn | Void! | -| NullableRefTypes.cs:65:14:65:18 | CallF | MyStruct! | -| NullableRefTypes.cs:74:7:74:22 | NullableRefTypes | Void | -| NullableRefTypes.cs:76:10:76:40 | TestSuppressNullableWarningExpr | Void! | -| NullableRefTypes.cs:85:10:85:34 | FunctionInNullableContext | Void! | -| NullableRefTypes.cs:94:7:94:14 | RefTypes | Void | -| NullableRefTypes.cs:97:18:97:28 | ReturnsRef1 | ref MyClass? | -| NullableRefTypes.cs:98:17:98:27 | ReturnsRef2 | ref MyClass! | -| NullableRefTypes.cs:99:27:99:37 | ReturnsRef3 | readonly MyClass? | -| NullableRefTypes.cs:100:27:100:37 | ReturnsRef4 | readonly MyClass? | -| NullableRefTypes.cs:101:26:101:36 | ReturnsRef5 | readonly MyClass! | -| NullableRefTypes.cs:102:26:102:36 | ReturnsRef6 | readonly MyClass! | -| NullableRefTypes.cs:104:10:104:20 | Parameters1 | Void! | -| NullableRefTypes.cs:107:32:107:44 | get_RefProperty | MyClass! | -| NullableRefTypes.cs:110:7:110:23 | ToStringWithTypes | Void | -| NullableRefTypes.cs:130:7:130:24 | ToStringWithTypes2 | Void | -| NullableRefTypes.cs:148:7:148:25 | DisabledNullability | Void | -| NullableRefTypes.cs:151:18:151:30 | get_P | MyClass | -| NullableRefTypes.cs:152:13:152:14 | Fn | MyClass | -| NullableRefTypes.cs:159:8:159:15 | MyStruct | Void | -typeArguments +| NullableRefTypes.cs:58:11:58:26 | Generic2 | Void | +| NullableRefTypes.cs:67:10:67:21 | GenericFn | Void | +| NullableRefTypes.cs:67:10:67:21 | GenericFn | Void! | +| NullableRefTypes.cs:67:10:67:21 | GenericFn | Void! | +| NullableRefTypes.cs:71:14:71:18 | CallF | MyStruct! | +| NullableRefTypes.cs:80:7:80:22 | NullableRefTypes | Void | +| NullableRefTypes.cs:82:10:82:40 | TestSuppressNullableWarningExpr | Void! | +| NullableRefTypes.cs:91:10:91:34 | FunctionInNullableContext | Void! | +| NullableRefTypes.cs:100:7:100:14 | RefTypes | Void | +| NullableRefTypes.cs:103:18:103:28 | ReturnsRef1 | ref MyClass? | +| NullableRefTypes.cs:104:17:104:27 | ReturnsRef2 | ref MyClass! | +| NullableRefTypes.cs:105:27:105:37 | ReturnsRef3 | readonly MyClass? | +| NullableRefTypes.cs:106:27:106:37 | ReturnsRef4 | readonly MyClass? | +| NullableRefTypes.cs:107:26:107:36 | ReturnsRef5 | readonly MyClass! | +| NullableRefTypes.cs:108:26:108:36 | ReturnsRef6 | readonly MyClass! | +| NullableRefTypes.cs:110:10:110:20 | Parameters1 | Void! | +| NullableRefTypes.cs:113:32:113:44 | get_RefProperty | MyClass! | +| NullableRefTypes.cs:116:7:116:23 | ToStringWithTypes | Void | +| NullableRefTypes.cs:136:7:136:24 | ToStringWithTypes2 | Void | +| NullableRefTypes.cs:154:7:154:25 | DisabledNullability | Void | +| NullableRefTypes.cs:157:18:157:30 | get_P | MyClass | +| NullableRefTypes.cs:158:13:158:14 | Fn | MyClass | +| NullableRefTypes.cs:165:8:165:15 | MyStruct | Void | +methodTypeArguments | NullableRefTypes.cs:51:12:51:15 | Q | 0 | MyClass | -| NullableRefTypes.cs:54:11:54:33 | Generic | 0 | MyClass? | -| NullableRefTypes.cs:54:11:54:33 | Generic | 1 | MyClass! | -| NullableRefTypes.cs:54:11:54:33 | Generic | 2 | IDisposable! | -| NullableRefTypes.cs:54:11:54:33 | Generic | 3 | MyClass! | -| NullableRefTypes.cs:61:10:61:21 | GenericFn | 0 | MyClass | +| NullableRefTypes.cs:51:12:51:15 | Q | 0 | MyClass! | +| NullableRefTypes.cs:67:10:67:21 | GenericFn | 0 | MyClass | +| NullableRefTypes.cs:67:10:67:21 | GenericFn | 0 | MyClass! | +constructedTypes +| NullableRefTypes.cs:54:11:54:33 | Generic | 0 | MyClass | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic | 1 | MyClass | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic | 2 | IDisposable | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic | 3 | MyClass | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic! | 0 | MyClass? | ! | +| NullableRefTypes.cs:54:11:54:33 | Generic! | 1 | MyClass! | ! | +| NullableRefTypes.cs:54:11:54:33 | Generic! | 2 | IDisposable! | ! | +| NullableRefTypes.cs:54:11:54:33 | Generic! | 3 | MyClass! | ! | +| NullableRefTypes.cs:54:11:54:33 | Generic, MyClass> | 0 | string | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic, MyClass> | 1 | T1 | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic, MyClass> | 2 | IEnumerable | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic, MyClass> | 3 | MyClass | _ | +| NullableRefTypes.cs:54:11:54:33 | Generic!, MyClass!>! | 0 | string? | !,!>! | +| NullableRefTypes.cs:54:11:54:33 | Generic!, MyClass!>! | 1 | T1? | !,!>! | +| NullableRefTypes.cs:54:11:54:33 | Generic!, MyClass!>! | 2 | IEnumerable! | !,!>! | +| NullableRefTypes.cs:54:11:54:33 | Generic!, MyClass!>! | 3 | MyClass! | !,!>! | nullableTypeParameters | NullableRefTypes.cs:54:19:54:20 | T1 | annotatedTypeConstraints | NullableRefTypes.cs:51:14:51:14 | T | NullableRefTypes.cs:6:7:6:13 | MyClass? | | NullableRefTypes.cs:54:23:54:24 | T2 | NullableRefTypes.cs:6:7:6:13 | MyClass? | | NullableRefTypes.cs:54:31:54:32 | T4 | NullableRefTypes.cs:6:7:6:13 | MyClass! | +| NullableRefTypes.cs:58:20:58:21 | T1 | NullableRefTypes.cs:6:7:6:13 | MyClass! | +| NullableRefTypes.cs:58:24:58:25 | T2 | NullableRefTypes.cs:54:11:54:33 | Generic!, MyClass!>! | +typeNotAnnotated diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql index f9bda91b349..c37e180d1ec 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql @@ -21,17 +21,18 @@ query predicate nonNullExpressions(NonNullExpr e) { e.getEnclosingCallable().getName() = "TestSuppressNullableWarningExpr" } -query predicate assignableTypes(Assignable a, AnnotatedType t) { +query predicate assignableTypes(Assignable a, AnnotatedType t, string n) { a.getFile().getBaseName() = "NullableRefTypes.cs" and t.getLocation() instanceof SourceLocation and a.getLocation() instanceof SourceLocation and - t = a.getAnnotatedType() + t = a.getAnnotatedType() and + n = t.getAnnotations().getNullability().toString() } -query predicate arrayElements(Variable v, ArrayType array, AnnotatedType elementType) { +query predicate arrayElements(Variable v, AnnotatedArrayType array, AnnotatedType elementType) { v.getFile().getBaseName() = "NullableRefTypes.cs" and - array = v.getType() and - elementType = array.getAnnotatedElementType() + array = v.getAnnotatedType() and + elementType = array.getElementType() } query predicate returnTypes(Callable c, string t) { @@ -39,20 +40,25 @@ query predicate returnTypes(Callable c, string t) { t = c.getAnnotatedReturnType().toString() } -query predicate typeArguments(ConstructedGeneric generic, int arg, string argument) { - ( - generic = any(Variable v | v.fromSource()).getType() - or - generic = any(MethodCall mc).getTarget() - ) and +query predicate methodTypeArguments(ConstructedGeneric generic, int arg, string argument) { + generic = any(MethodCall mc).getTarget() and argument = generic.getAnnotatedTypeArgument(arg).toString() } +query predicate constructedTypes(AnnotatedConstructedType at, int i, string arg, string nullability) { + arg = at.getTypeArgument(i).toString() and + at.getLocation().getFile().getBaseName() = "NullableRefTypes.cs" and + nullability = at.getAnnotations().getNullability().toString() +} + query predicate nullableTypeParameters(TypeParameter p) { - p.getConstraints().hasNullableRefTypeConstraint() + p.getConstraints().hasNullableRefTypeConstraint() and + p.getLocation().getFile().getBaseName() = "NullableRefTypes.cs" } query predicate annotatedTypeConstraints(TypeParameter p, AnnotatedType t) { t = p.getConstraints().getAnAnnotatedTypeConstraint() and t.getLocation() instanceof SourceLocation } + +query predicate typeNotAnnotated(Type type) { not exists(AnnotatedType at | at.getType() = type) } diff --git a/csharp/ql/test/library-tests/dataflow/library/LibraryTypeDataFlow.expected b/csharp/ql/test/library-tests/dataflow/library/LibraryTypeDataFlow.expected index 12ae9dff58a..be9d872af1f 100644 --- a/csharp/ql/test/library-tests/dataflow/library/LibraryTypeDataFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/library/LibraryTypeDataFlow.expected @@ -178,7 +178,7 @@ | System.Collections.Specialized.OrderedDictionary.get_Values() | qualifier -> return | false | | System.Collections.Specialized.StringCollection.Add(object) | argument 0 -> qualifier | false | | System.Collections.Specialized.StringCollection.Add(string) | argument 0 -> qualifier | false | -| System.Collections.Specialized.StringCollection.AddRange(string[]) | argument 0 -> qualifier | false | +| System.Collections.Specialized.StringCollection.AddRange(String[]) | argument 0 -> qualifier | false | | System.Collections.Specialized.StringCollection.GetEnumerator() | qualifier -> return | false | | System.Collections.Specialized.StringCollection.Insert(int, object) | argument 1 -> qualifier | false | | System.Collections.Specialized.StringCollection.Insert(int, string) | argument 1 -> qualifier | false | @@ -221,17 +221,17 @@ | System.Convert.ChangeType(object, Type, IFormatProvider) | argument 0 -> return | false | | System.Convert.ChangeType(object, TypeCode) | argument 0 -> return | false | | System.Convert.ChangeType(object, TypeCode, IFormatProvider) | argument 0 -> return | false | -| System.Convert.FromBase64CharArray(char[], int, int) | argument 0 -> return | false | +| System.Convert.FromBase64CharArray(Char[], int, int) | argument 0 -> return | false | | System.Convert.FromBase64String(string) | argument 0 -> return | false | | System.Convert.GetTypeCode(object) | argument 0 -> return | false | | System.Convert.IsDBNull(object) | argument 0 -> return | false | -| System.Convert.ToBase64CharArray(byte[], int, int, char[], int) | argument 0 -> return | false | -| System.Convert.ToBase64CharArray(byte[], int, int, char[], int, Base64FormattingOptions) | argument 0 -> return | false | -| System.Convert.ToBase64String(ReadOnlySpan, Base64FormattingOptions) | argument 0 -> return | false | -| System.Convert.ToBase64String(byte[]) | argument 0 -> return | false | -| System.Convert.ToBase64String(byte[], Base64FormattingOptions) | argument 0 -> return | false | -| System.Convert.ToBase64String(byte[], int, int) | argument 0 -> return | false | -| System.Convert.ToBase64String(byte[], int, int, Base64FormattingOptions) | argument 0 -> return | false | +| System.Convert.ToBase64CharArray(Byte[], int, int, Char[], int) | argument 0 -> return | false | +| System.Convert.ToBase64CharArray(Byte[], int, int, Char[], int, Base64FormattingOptions) | argument 0 -> return | false | +| System.Convert.ToBase64String(Byte[]) | argument 0 -> return | false | +| System.Convert.ToBase64String(Byte[], Base64FormattingOptions) | argument 0 -> return | false | +| System.Convert.ToBase64String(Byte[], int, int) | argument 0 -> return | false | +| System.Convert.ToBase64String(Byte[], int, int, Base64FormattingOptions) | argument 0 -> return | false | +| System.Convert.ToBase64String(ReadOnlySpan, Base64FormattingOptions) | argument 0 -> return | false | | System.Convert.ToBoolean(DateTime) | argument 0 -> return | false | | System.Convert.ToBoolean(bool) | argument 0 -> return | false | | System.Convert.ToBoolean(byte) | argument 0 -> return | false | @@ -528,58 +528,58 @@ | System.Convert.ToUInt64(uint) | argument 0 -> return | false | | System.Convert.ToUInt64(ulong) | argument 0 -> return | false | | System.Convert.ToUInt64(ushort) | argument 0 -> return | false | -| System.Convert.TryFromBase64Chars(ReadOnlySpan, Span, out int) | argument 0 -> return | false | -| System.Convert.TryFromBase64String(string, Span, out int) | argument 0 -> return | false | -| System.Convert.TryToBase64Chars(ReadOnlySpan, Span, out int, Base64FormattingOptions) | argument 0 -> return | false | -| System.Dynamic.ExpandoObject.Add(KeyValuePair) | argument 0 -> qualifier | false | +| System.Convert.TryFromBase64Chars(ReadOnlySpan, Span, out int) | argument 0 -> return | false | +| System.Convert.TryFromBase64String(string, Span, out int) | argument 0 -> return | false | +| System.Convert.TryToBase64Chars(ReadOnlySpan, Span, out int, Base64FormattingOptions) | argument 0 -> return | false | +| System.Dynamic.ExpandoObject.Add(KeyValuePair) | argument 0 -> qualifier | false | | System.Dynamic.ExpandoObject.Add(string, object) | argument 1 -> qualifier | false | | System.Dynamic.ExpandoObject.GetEnumerator() | qualifier -> return | false | | System.ICloneable.Clone() | qualifier -> return | false | -| System.IO.BufferedStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.IO.BufferedStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.IO.BufferedStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.IO.BufferedStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | | System.IO.BufferedStream.CopyTo(Stream, int) | qualifier -> argument 0 | false | | System.IO.BufferedStream.CopyToAsync(Stream, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.BufferedStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.BufferedStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.BufferedStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.BufferedStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | -| System.IO.Compression.DeflateStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.IO.Compression.DeflateStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.IO.BufferedStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.BufferedStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.BufferedStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.BufferedStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.Compression.DeflateStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.IO.Compression.DeflateStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | | System.IO.Compression.DeflateStream.CopyToAsync(Stream, int, CancellationToken) | qualifier -> argument 0 | false | | System.IO.Compression.DeflateStream.DeflateStream(Stream, CompressionLevel) | argument 0 -> return | false | | System.IO.Compression.DeflateStream.DeflateStream(Stream, CompressionLevel, bool) | argument 0 -> return | false | | System.IO.Compression.DeflateStream.DeflateStream(Stream, CompressionMode) | argument 0 -> return | false | | System.IO.Compression.DeflateStream.DeflateStream(Stream, CompressionMode, bool) | argument 0 -> return | false | -| System.IO.Compression.DeflateStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.Compression.DeflateStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.Compression.DeflateStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.Compression.DeflateStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | -| System.IO.Compression.GZipStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.IO.Compression.GZipStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.IO.Compression.DeflateStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.Compression.DeflateStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.Compression.DeflateStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.Compression.DeflateStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.Compression.GZipStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.IO.Compression.GZipStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | | System.IO.Compression.GZipStream.CopyTo(Stream, int) | qualifier -> argument 0 | false | | System.IO.Compression.GZipStream.CopyToAsync(Stream, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.Compression.GZipStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.Compression.GZipStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.Compression.GZipStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.Compression.GZipStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | -| System.IO.FileStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.IO.FileStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | -| System.IO.FileStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.FileStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.FileStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.FileStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.Compression.GZipStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.Compression.GZipStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.Compression.GZipStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.Compression.GZipStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.FileStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.IO.FileStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.IO.FileStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.FileStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.FileStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.FileStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | | System.IO.MemoryStream.CopyTo(Stream, int) | qualifier -> argument 0 | false | | System.IO.MemoryStream.CopyToAsync(Stream, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.MemoryStream.MemoryStream(byte[]) | argument 0 -> return | false | -| System.IO.MemoryStream.MemoryStream(byte[], bool) | argument 0 -> return | false | -| System.IO.MemoryStream.MemoryStream(byte[], int, int) | argument 0 -> return | false | -| System.IO.MemoryStream.MemoryStream(byte[], int, int, bool) | argument 0 -> return | false | -| System.IO.MemoryStream.MemoryStream(byte[], int, int, bool, bool) | argument 0 -> return | false | -| System.IO.MemoryStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.MemoryStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.MemoryStream.MemoryStream(Byte[]) | argument 0 -> return | false | +| System.IO.MemoryStream.MemoryStream(Byte[], bool) | argument 0 -> return | false | +| System.IO.MemoryStream.MemoryStream(Byte[], int, int) | argument 0 -> return | false | +| System.IO.MemoryStream.MemoryStream(Byte[], int, int, bool) | argument 0 -> return | false | +| System.IO.MemoryStream.MemoryStream(Byte[], int, int, bool, bool) | argument 0 -> return | false | +| System.IO.MemoryStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.MemoryStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | | System.IO.MemoryStream.ToArray() | qualifier -> return | false | -| System.IO.MemoryStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.MemoryStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.MemoryStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.MemoryStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | | System.IO.Path.Combine(string, string) | argument 0 -> return | false | | System.IO.Path.Combine(string, string) | argument 1 -> return | false | | System.IO.Path.Combine(string, string, string) | argument 0 -> return | false | @@ -589,69 +589,69 @@ | System.IO.Path.Combine(string, string, string, string) | argument 1 -> return | false | | System.IO.Path.Combine(string, string, string, string) | argument 2 -> return | false | | System.IO.Path.Combine(string, string, string, string) | argument 3 -> return | false | -| System.IO.Path.GetDirectoryName(ReadOnlySpan) | argument 0 -> return | false | +| System.IO.Path.GetDirectoryName(ReadOnlySpan) | argument 0 -> return | false | | System.IO.Path.GetDirectoryName(string) | argument 0 -> return | false | -| System.IO.Path.GetExtension(ReadOnlySpan) | argument 0 -> return | false | +| System.IO.Path.GetExtension(ReadOnlySpan) | argument 0 -> return | false | | System.IO.Path.GetExtension(string) | argument 0 -> return | false | -| System.IO.Path.GetFileName(ReadOnlySpan) | argument 0 -> return | false | +| System.IO.Path.GetFileName(ReadOnlySpan) | argument 0 -> return | false | | System.IO.Path.GetFileName(string) | argument 0 -> return | false | -| System.IO.Path.GetFileNameWithoutExtension(ReadOnlySpan) | argument 0 -> return | false | +| System.IO.Path.GetFileNameWithoutExtension(ReadOnlySpan) | argument 0 -> return | false | | System.IO.Path.GetFileNameWithoutExtension(string) | argument 0 -> return | false | | System.IO.Path.GetFullPath(string) | argument 0 -> return | false | | System.IO.Path.GetFullPath(string, string) | argument 0 -> return | false | -| System.IO.Path.GetPathRoot(ReadOnlySpan) | argument 0 -> return | false | +| System.IO.Path.GetPathRoot(ReadOnlySpan) | argument 0 -> return | false | | System.IO.Path.GetPathRoot(string) | argument 0 -> return | false | | System.IO.Path.GetRelativePath(string, string) | argument 1 -> return | false | -| System.IO.Pipes.PipeStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.IO.Pipes.PipeStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | -| System.IO.Pipes.PipeStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.Pipes.PipeStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.Pipes.PipeStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.Pipes.PipeStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | -| System.IO.Stream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.IO.Stream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.IO.Pipes.PipeStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.IO.Pipes.PipeStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.IO.Pipes.PipeStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.Pipes.PipeStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.Pipes.PipeStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.Pipes.PipeStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.Stream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.IO.Stream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | | System.IO.Stream.CopyTo(Stream) | qualifier -> argument 0 | false | | System.IO.Stream.CopyTo(Stream, int) | qualifier -> argument 0 | false | | System.IO.Stream.CopyToAsync(Stream) | qualifier -> argument 0 | false | | System.IO.Stream.CopyToAsync(Stream, CancellationToken) | qualifier -> argument 0 | false | | System.IO.Stream.CopyToAsync(Stream, int) | qualifier -> argument 0 | false | | System.IO.Stream.CopyToAsync(Stream, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.Stream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.Stream.ReadAsync(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.Stream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.Stream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.Stream.WriteAsync(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.Stream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.Stream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.Stream.ReadAsync(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.Stream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.Stream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.Stream.WriteAsync(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.Stream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | | System.IO.StringReader.Read() | qualifier -> return | false | -| System.IO.StringReader.Read(Span) | qualifier -> return | false | -| System.IO.StringReader.Read(char[], int, int) | qualifier -> return | false | -| System.IO.StringReader.ReadAsync(Memory, CancellationToken) | qualifier -> return | false | -| System.IO.StringReader.ReadAsync(char[], int, int) | qualifier -> return | false | -| System.IO.StringReader.ReadBlock(Span) | qualifier -> return | false | -| System.IO.StringReader.ReadBlockAsync(Memory, CancellationToken) | qualifier -> return | false | -| System.IO.StringReader.ReadBlockAsync(char[], int, int) | qualifier -> return | false | +| System.IO.StringReader.Read(Char[], int, int) | qualifier -> return | false | +| System.IO.StringReader.Read(Span) | qualifier -> return | false | +| System.IO.StringReader.ReadAsync(Char[], int, int) | qualifier -> return | false | +| System.IO.StringReader.ReadAsync(Memory, CancellationToken) | qualifier -> return | false | +| System.IO.StringReader.ReadBlock(Span) | qualifier -> return | false | +| System.IO.StringReader.ReadBlockAsync(Char[], int, int) | qualifier -> return | false | +| System.IO.StringReader.ReadBlockAsync(Memory, CancellationToken) | qualifier -> return | false | | System.IO.StringReader.ReadLine() | qualifier -> return | false | | System.IO.StringReader.ReadLineAsync() | qualifier -> return | false | | System.IO.StringReader.ReadToEnd() | qualifier -> return | false | | System.IO.StringReader.ReadToEndAsync() | qualifier -> return | false | | System.IO.StringReader.StringReader(string) | argument 0 -> return | false | | System.IO.TextReader.Read() | qualifier -> return | false | -| System.IO.TextReader.Read(Span) | qualifier -> return | false | -| System.IO.TextReader.Read(char[], int, int) | qualifier -> return | false | -| System.IO.TextReader.ReadAsync(Memory, CancellationToken) | qualifier -> return | false | -| System.IO.TextReader.ReadAsync(char[], int, int) | qualifier -> return | false | -| System.IO.TextReader.ReadBlock(Span) | qualifier -> return | false | -| System.IO.TextReader.ReadBlock(char[], int, int) | qualifier -> return | false | -| System.IO.TextReader.ReadBlockAsync(Memory, CancellationToken) | qualifier -> return | false | -| System.IO.TextReader.ReadBlockAsync(char[], int, int) | qualifier -> return | false | +| System.IO.TextReader.Read(Char[], int, int) | qualifier -> return | false | +| System.IO.TextReader.Read(Span) | qualifier -> return | false | +| System.IO.TextReader.ReadAsync(Char[], int, int) | qualifier -> return | false | +| System.IO.TextReader.ReadAsync(Memory, CancellationToken) | qualifier -> return | false | +| System.IO.TextReader.ReadBlock(Char[], int, int) | qualifier -> return | false | +| System.IO.TextReader.ReadBlock(Span) | qualifier -> return | false | +| System.IO.TextReader.ReadBlockAsync(Char[], int, int) | qualifier -> return | false | +| System.IO.TextReader.ReadBlockAsync(Memory, CancellationToken) | qualifier -> return | false | | System.IO.TextReader.ReadLine() | qualifier -> return | false | | System.IO.TextReader.ReadLineAsync() | qualifier -> return | false | | System.IO.TextReader.ReadToEnd() | qualifier -> return | false | | System.IO.TextReader.ReadToEndAsync() | qualifier -> return | false | -| System.IO.UnmanagedMemoryStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.IO.UnmanagedMemoryStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.IO.UnmanagedMemoryStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.IO.UnmanagedMemoryStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.IO.UnmanagedMemoryStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.IO.UnmanagedMemoryStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.IO.UnmanagedMemoryStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.IO.UnmanagedMemoryStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | | System.Int32.Parse(string) | argument 0 -> return | false | | System.Int32.Parse(string, IFormatProvider) | argument 0 -> return | false | | System.Int32.Parse(string, NumberStyles) | argument 0 -> return | false | @@ -673,23 +673,23 @@ | System.Linq.Enumerable.Aggregate(IEnumerable, TAccumulate, Func) | output from argument 2 -> return | false | | System.Linq.Enumerable.Aggregate(IEnumerable, Func) | argument 0 -> parameter 1 of argument 1 | false | | System.Linq.Enumerable.Aggregate(IEnumerable, Func) | output from argument 1 -> return | false | -| System.Linq.Enumerable.All(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Any(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.All(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Any(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.AsEnumerable(IEnumerable) | argument 0 -> return | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Average(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.Cast(IEnumerable) | argument 0 -> return | false | | System.Linq.Enumerable.Concat(IEnumerable, IEnumerable) | argument 0 -> return | false | | System.Linq.Enumerable.Concat(IEnumerable, IEnumerable) | argument 1 -> return | false | -| System.Linq.Enumerable.Count(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Count(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.DefaultIfEmpty(IEnumerable) | argument 0 -> return | false | | System.Linq.Enumerable.DefaultIfEmpty(IEnumerable, TSource) | argument 0 -> return | false | | System.Linq.Enumerable.DefaultIfEmpty(IEnumerable, TSource) | argument 1 -> return | false | @@ -700,11 +700,11 @@ | System.Linq.Enumerable.Except(IEnumerable, IEnumerable) | argument 0 -> return | false | | System.Linq.Enumerable.Except(IEnumerable, IEnumerable, IEqualityComparer) | argument 0 -> return | false | | System.Linq.Enumerable.First(IEnumerable) | argument 0 -> return | false | -| System.Linq.Enumerable.First(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.First(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.First(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.First(IEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.FirstOrDefault(IEnumerable) | argument 0 -> return | false | -| System.Linq.Enumerable.FirstOrDefault(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.FirstOrDefault(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.FirstOrDefault(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.FirstOrDefault(IEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.GroupBy(IEnumerable, Func, Func, Func, TResult>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.GroupBy(IEnumerable, Func, Func, Func, TResult>) | argument 0 -> parameter 0 of argument 2 | false | | System.Linq.Enumerable.GroupBy(IEnumerable, Func, Func, Func, TResult>) | output from argument 1 -> parameter 0 of argument 3 | false | @@ -753,34 +753,34 @@ | System.Linq.Enumerable.Join(IEnumerable, IEnumerable, Func, Func, Func, IEqualityComparer) | argument 1 -> parameter 1 of argument 4 | false | | System.Linq.Enumerable.Join(IEnumerable, IEnumerable, Func, Func, Func, IEqualityComparer) | output from argument 4 -> return | false | | System.Linq.Enumerable.Last(IEnumerable) | argument 0 -> return | false | -| System.Linq.Enumerable.Last(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Last(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.Last(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Last(IEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.LastOrDefault(IEnumerable) | argument 0 -> return | false | -| System.Linq.Enumerable.LastOrDefault(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.LastOrDefault(IEnumerable, Func) | argument 0 -> return | false | -| System.Linq.Enumerable.LongCount(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.LastOrDefault(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.LastOrDefault(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.LongCount(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Max(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Min(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.OfType(IEnumerable) | argument 0 -> return | false | | System.Linq.Enumerable.OrderBy(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.OrderBy(IEnumerable, Func) | argument 0 -> return | false | @@ -791,48 +791,48 @@ | System.Linq.Enumerable.OrderByDescending(IEnumerable, Func, IComparer) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.OrderByDescending(IEnumerable, Func, IComparer) | argument 0 -> return | false | | System.Linq.Enumerable.Reverse(IEnumerable) | argument 0 -> return | false | +| System.Linq.Enumerable.Select(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Select(IEnumerable, Func) | output from argument 1 -> return | false | | System.Linq.Enumerable.Select(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.Select(IEnumerable, Func) | output from argument 1 -> return | false | -| System.Linq.Enumerable.Select(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Select(IEnumerable, Func) | output from argument 1 -> return | false | | System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | argument 0 -> parameter 0 of argument 2 | false | | System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | output from argument 1 -> parameter 1 of argument 2 | false | | System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | output from argument 2 -> return | false | -| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | output from argument 1 -> parameter 1 of argument 2 | false | -| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | output from argument 2 -> return | false | +| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | output from argument 1 -> parameter 1 of argument 2 | false | +| System.Linq.Enumerable.SelectMany(IEnumerable, Func>, Func) | output from argument 2 -> return | false | | System.Linq.Enumerable.SelectMany(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.SelectMany(IEnumerable, Func>) | output from argument 1 -> return | false | -| System.Linq.Enumerable.SelectMany(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.SelectMany(IEnumerable, Func>) | output from argument 1 -> return | false | +| System.Linq.Enumerable.SelectMany(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.SelectMany(IEnumerable, Func>) | output from argument 1 -> return | false | | System.Linq.Enumerable.Single(IEnumerable) | argument 0 -> return | false | -| System.Linq.Enumerable.Single(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Single(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.Single(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Single(IEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.SingleOrDefault(IEnumerable) | argument 0 -> return | false | -| System.Linq.Enumerable.SingleOrDefault(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.SingleOrDefault(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.SingleOrDefault(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.SingleOrDefault(IEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.Skip(IEnumerable, int) | argument 0 -> return | false | -| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> return | false | -| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> return | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.SkipWhile(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Sum(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.Take(IEnumerable, int) | argument 0 -> return | false | -| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> return | false | -| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.TakeWhile(IEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.ThenBy(IOrderedEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Enumerable.ThenBy(IOrderedEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.ThenBy(IOrderedEnumerable, Func, IComparer) | argument 0 -> parameter 0 of argument 1 | false | @@ -867,10 +867,10 @@ | System.Linq.Enumerable.Union(IEnumerable, IEnumerable) | argument 1 -> return | false | | System.Linq.Enumerable.Union(IEnumerable, IEnumerable, IEqualityComparer) | argument 0 -> return | false | | System.Linq.Enumerable.Union(IEnumerable, IEnumerable, IEqualityComparer) | argument 1 -> return | false | -| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> return | false | -| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> return | false | +| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Enumerable.Where(IEnumerable, Func) | argument 0 -> return | false | | System.Linq.Enumerable.Zip(IEnumerable, IEnumerable, Func) | argument 0 -> parameter 0 of argument 2 | false | | System.Linq.Enumerable.Zip(IEnumerable, IEnumerable, Func) | argument 1 -> parameter 1 of argument 2 | false | | System.Linq.Enumerable.Zip(IEnumerable, IEnumerable, Func) | output from argument 2 -> return | false | @@ -889,25 +889,25 @@ | System.Linq.ParallelEnumerable.Aggregate(ParallelQuery, TAccumulate, Func) | output from argument 2 -> return | false | | System.Linq.ParallelEnumerable.Aggregate(ParallelQuery, Func) | argument 0 -> parameter 1 of argument 1 | false | | System.Linq.ParallelEnumerable.Aggregate(ParallelQuery, Func) | output from argument 1 -> return | false | -| System.Linq.ParallelEnumerable.All(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Any(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.All(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Any(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.AsEnumerable(ParallelQuery) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Average(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.Cast(ParallelQuery) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Concat(ParallelQuery, IEnumerable) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Concat(ParallelQuery, IEnumerable) | argument 1 -> return | false | | System.Linq.ParallelEnumerable.Concat(ParallelQuery, ParallelQuery) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Concat(ParallelQuery, ParallelQuery) | argument 1 -> return | false | -| System.Linq.ParallelEnumerable.Count(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Count(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.DefaultIfEmpty(ParallelQuery) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.DefaultIfEmpty(ParallelQuery, TSource) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.DefaultIfEmpty(ParallelQuery, TSource) | argument 1 -> return | false | @@ -920,11 +920,11 @@ | System.Linq.ParallelEnumerable.Except(ParallelQuery, ParallelQuery) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Except(ParallelQuery, ParallelQuery, IEqualityComparer) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.First(ParallelQuery) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.First(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.First(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.First(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.First(ParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.FirstOrDefault(ParallelQuery) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.FirstOrDefault(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.FirstOrDefault(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.FirstOrDefault(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.FirstOrDefault(ParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.GroupBy(ParallelQuery, Func, Func, Func, TResult>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.GroupBy(ParallelQuery, Func, Func, Func, TResult>) | argument 0 -> parameter 0 of argument 2 | false | | System.Linq.ParallelEnumerable.GroupBy(ParallelQuery, Func, Func, Func, TResult>) | output from argument 1 -> parameter 0 of argument 3 | false | @@ -997,34 +997,34 @@ | System.Linq.ParallelEnumerable.Join(ParallelQuery, ParallelQuery, Func, Func, Func, IEqualityComparer) | argument 1 -> parameter 1 of argument 4 | false | | System.Linq.ParallelEnumerable.Join(ParallelQuery, ParallelQuery, Func, Func, Func, IEqualityComparer) | output from argument 4 -> return | false | | System.Linq.ParallelEnumerable.Last(ParallelQuery) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.Last(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Last(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.Last(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Last(ParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.LastOrDefault(ParallelQuery) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.LastOrDefault(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.LastOrDefault(ParallelQuery, Func) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.LongCount(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.LastOrDefault(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.LastOrDefault(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.LongCount(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Max(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Min(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.OfType(ParallelQuery) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.OrderBy(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.OrderBy(ParallelQuery, Func) | argument 0 -> return | false | @@ -1035,48 +1035,48 @@ | System.Linq.ParallelEnumerable.OrderByDescending(ParallelQuery, Func, IComparer) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.OrderByDescending(ParallelQuery, Func, IComparer) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Reverse(ParallelQuery) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.Select(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Select(ParallelQuery, Func) | output from argument 1 -> return | false | | System.Linq.ParallelEnumerable.Select(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.Select(ParallelQuery, Func) | output from argument 1 -> return | false | -| System.Linq.ParallelEnumerable.Select(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Select(ParallelQuery, Func) | output from argument 1 -> return | false | | System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | argument 0 -> parameter 0 of argument 2 | false | | System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | output from argument 1 -> parameter 1 of argument 2 | false | | System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | output from argument 2 -> return | false | -| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | output from argument 1 -> parameter 1 of argument 2 | false | -| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | output from argument 2 -> return | false | +| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | output from argument 1 -> parameter 1 of argument 2 | false | +| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>, Func) | output from argument 2 -> return | false | | System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>) | output from argument 1 -> return | false | -| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>) | output from argument 1 -> return | false | +| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.SelectMany(ParallelQuery, Func>) | output from argument 1 -> return | false | | System.Linq.ParallelEnumerable.Single(ParallelQuery) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.Single(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Single(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.Single(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Single(ParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.SingleOrDefault(ParallelQuery) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.SingleOrDefault(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.SingleOrDefault(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.SingleOrDefault(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.SingleOrDefault(ParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Skip(ParallelQuery, int) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.SkipWhile(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Sum(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.Take(ParallelQuery, int) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.TakeWhile(ParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.ThenBy(OrderedParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.ParallelEnumerable.ThenBy(OrderedParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.ThenBy(OrderedParallelQuery, Func, IComparer) | argument 0 -> parameter 0 of argument 1 | false | @@ -1115,10 +1115,10 @@ | System.Linq.ParallelEnumerable.Union(ParallelQuery, ParallelQuery) | argument 1 -> return | false | | System.Linq.ParallelEnumerable.Union(ParallelQuery, ParallelQuery, IEqualityComparer) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Union(ParallelQuery, ParallelQuery, IEqualityComparer) | argument 1 -> return | false | -| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> return | false | -| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> return | false | +| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.ParallelEnumerable.Where(ParallelQuery, Func) | argument 0 -> return | false | | System.Linq.ParallelEnumerable.Zip(ParallelQuery, IEnumerable, Func) | argument 0 -> parameter 0 of argument 2 | false | | System.Linq.ParallelEnumerable.Zip(ParallelQuery, IEnumerable, Func) | argument 1 -> parameter 1 of argument 2 | false | | System.Linq.ParallelEnumerable.Zip(ParallelQuery, IEnumerable, Func) | output from argument 2 -> return | false | @@ -1127,31 +1127,31 @@ | System.Linq.ParallelEnumerable.Zip(ParallelQuery, ParallelQuery, Func) | output from argument 2 -> return | false | | System.Linq.ParallelQuery.GetEnumerator() | qualifier -> return | false | | System.Linq.ParallelQuery<>.GetEnumerator() | qualifier -> return | false | -| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | argument 0 -> parameter 1 of argument 2 | false | -| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | argument 1 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | output from argument 2 -> parameter 0 of argument 3 | false | -| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | output from argument 3 -> return | false | -| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>) | argument 0 -> parameter 1 of argument 2 | false | -| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>) | argument 1 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>) | output from argument 2 -> return | false | -| System.Linq.Queryable.Aggregate(IQueryable, Expression>) | argument 0 -> parameter 1 of argument 1 | false | -| System.Linq.Queryable.Aggregate(IQueryable, Expression>) | output from argument 1 -> return | false | -| System.Linq.Queryable.All(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Any(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | argument 0 -> parameter 1 of argument 2 | false | +| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | argument 1 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | output from argument 2 -> parameter 0 of argument 3 | false | +| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>, Expression>) | output from argument 3 -> return | false | +| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>) | argument 0 -> parameter 1 of argument 2 | false | +| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>) | argument 1 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.Aggregate(IQueryable, TAccumulate, Expression>) | output from argument 2 -> return | false | +| System.Linq.Queryable.Aggregate(IQueryable, Expression>) | argument 0 -> parameter 1 of argument 1 | false | +| System.Linq.Queryable.Aggregate(IQueryable, Expression>) | output from argument 1 -> return | false | +| System.Linq.Queryable.All(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Any(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Average(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Queryable.Cast(IQueryable) | argument 0 -> return | false | | System.Linq.Queryable.Concat(IQueryable, IEnumerable) | argument 0 -> return | false | | System.Linq.Queryable.Concat(IQueryable, IEnumerable) | argument 1 -> return | false | -| System.Linq.Queryable.Count(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Count(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Queryable.DefaultIfEmpty(IQueryable) | argument 0 -> return | false | | System.Linq.Queryable.DefaultIfEmpty(IQueryable, TSource) | argument 0 -> return | false | | System.Linq.Queryable.DefaultIfEmpty(IQueryable, TSource) | argument 1 -> return | false | @@ -1162,135 +1162,135 @@ | System.Linq.Queryable.Except(IQueryable, IEnumerable) | argument 0 -> return | false | | System.Linq.Queryable.Except(IQueryable, IEnumerable, IEqualityComparer) | argument 0 -> return | false | | System.Linq.Queryable.First(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.First(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.First(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.First(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.First(IQueryable, Expression>) | argument 0 -> return | false | | System.Linq.Queryable.FirstOrDefault(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.FirstOrDefault(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.FirstOrDefault(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>) | output from argument 1 -> parameter 0 of argument 3 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>) | output from argument 2 -> parameter 1 of argument 3 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>) | output from argument 3 -> return | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | output from argument 1 -> parameter 0 of argument 3 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | output from argument 2 -> parameter 1 of argument 3 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | output from argument 3 -> return | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>) | output from argument 2 -> return | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression, TResult>>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression, TResult>>) | output from argument 2 -> return | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression, TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression, TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.GroupBy(IQueryable, Expression>, IEqualityComparer) | argument 0 -> return | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>) | argument 0 -> parameter 0 of argument 4 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>) | argument 1 -> parameter 0 of argument 3 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>) | argument 1 -> parameter 1 of argument 4 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>) | output from argument 4 -> return | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 4 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | argument 1 -> parameter 0 of argument 3 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | argument 1 -> parameter 1 of argument 4 | false | -| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression, TResult>>, IEqualityComparer) | output from argument 4 -> return | false | +| System.Linq.Queryable.FirstOrDefault(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.FirstOrDefault(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>) | output from argument 1 -> parameter 0 of argument 3 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>) | output from argument 2 -> parameter 1 of argument 3 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>) | output from argument 3 -> return | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | output from argument 1 -> parameter 0 of argument 3 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | output from argument 2 -> parameter 1 of argument 3 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | output from argument 3 -> return | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>) | output from argument 2 -> return | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression,TResult>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression,TResult>>) | output from argument 2 -> return | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression,TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, Expression,TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.GroupBy(IQueryable, Expression>, IEqualityComparer) | argument 0 -> return | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>) | argument 0 -> parameter 0 of argument 4 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>) | argument 1 -> parameter 0 of argument 3 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>) | argument 1 -> parameter 1 of argument 4 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>) | output from argument 4 -> return | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | argument 0 -> parameter 0 of argument 4 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | argument 1 -> parameter 0 of argument 3 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | argument 1 -> parameter 1 of argument 4 | false | +| System.Linq.Queryable.GroupJoin(IQueryable, IEnumerable, Expression>, Expression>, Expression,TResult>>, IEqualityComparer) | output from argument 4 -> return | false | | System.Linq.Queryable.Intersect(IQueryable, IEnumerable) | argument 0 -> return | false | | System.Linq.Queryable.Intersect(IQueryable, IEnumerable) | argument 1 -> return | false | | System.Linq.Queryable.Intersect(IQueryable, IEnumerable, IEqualityComparer) | argument 0 -> return | false | | System.Linq.Queryable.Intersect(IQueryable, IEnumerable, IEqualityComparer) | argument 1 -> return | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 0 -> parameter 0 of argument 4 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 1 -> parameter 0 of argument 3 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 1 -> parameter 1 of argument 4 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | output from argument 4 -> return | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 4 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 1 -> parameter 0 of argument 3 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 1 -> parameter 1 of argument 4 | false | -| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | output from argument 4 -> return | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 0 -> parameter 0 of argument 4 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 1 -> parameter 0 of argument 3 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | argument 1 -> parameter 1 of argument 4 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>) | output from argument 4 -> return | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 0 -> parameter 0 of argument 4 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 1 -> parameter 0 of argument 3 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | argument 1 -> parameter 1 of argument 4 | false | +| System.Linq.Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>, IEqualityComparer) | output from argument 4 -> return | false | | System.Linq.Queryable.Last(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.Last(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Last(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.Last(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Last(IQueryable, Expression>) | argument 0 -> return | false | | System.Linq.Queryable.LastOrDefault(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.LastOrDefault(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.LastOrDefault(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.LongCount(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Max(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Min(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.LastOrDefault(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.LastOrDefault(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.LongCount(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Max(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Min(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Queryable.OfType(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.OrderBy(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.OrderBy(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.OrderBy(IQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.OrderBy(IQueryable, Expression>, IComparer) | argument 0 -> return | false | -| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>, IComparer) | argument 0 -> return | false | +| System.Linq.Queryable.OrderBy(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.OrderBy(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.OrderBy(IQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.OrderBy(IQueryable, Expression>, IComparer) | argument 0 -> return | false | +| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.OrderByDescending(IQueryable, Expression>, IComparer) | argument 0 -> return | false | | System.Linq.Queryable.Reverse(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.Select(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Select(IQueryable, Expression>) | output from argument 1 -> return | false | -| System.Linq.Queryable.Select(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Select(IQueryable, Expression>) | output from argument 1 -> return | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 1 -> parameter 1 of argument 2 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 2 -> return | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 1 -> parameter 1 of argument 2 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 2 -> return | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | output from argument 1 -> return | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | output from argument 1 -> return | false | +| System.Linq.Queryable.Select(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Select(IQueryable, Expression>) | output from argument 1 -> return | false | +| System.Linq.Queryable.Select(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Select(IQueryable, Expression>) | output from argument 1 -> return | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 1 -> parameter 1 of argument 2 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 2 -> return | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 1 -> parameter 1 of argument 2 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>, Expression>) | output from argument 2 -> return | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | output from argument 1 -> return | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SelectMany(IQueryable, Expression>>) | output from argument 1 -> return | false | | System.Linq.Queryable.Single(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.Single(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Single(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.Single(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Single(IQueryable, Expression>) | argument 0 -> return | false | | System.Linq.Queryable.SingleOrDefault(IQueryable) | argument 0 -> return | false | -| System.Linq.Queryable.SingleOrDefault(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.SingleOrDefault(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.SingleOrDefault(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SingleOrDefault(IQueryable, Expression>) | argument 0 -> return | false | | System.Linq.Queryable.Skip(IQueryable, int) | argument 0 -> return | false | -| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.SkipWhile(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Sum(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | | System.Linq.Queryable.Take(IQueryable, int) | argument 0 -> return | false | -| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>, IComparer) | argument 0 -> return | false | -| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>, IComparer) | argument 0 -> return | false | +| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.TakeWhile(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.ThenBy(IOrderedQueryable, Expression>, IComparer) | argument 0 -> return | false | +| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>, IComparer) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.ThenByDescending(IOrderedQueryable, Expression>, IComparer) | argument 0 -> return | false | | System.Linq.Queryable.Union(IQueryable, IEnumerable) | argument 0 -> return | false | | System.Linq.Queryable.Union(IQueryable, IEnumerable) | argument 1 -> return | false | | System.Linq.Queryable.Union(IQueryable, IEnumerable, IEqualityComparer) | argument 0 -> return | false | | System.Linq.Queryable.Union(IQueryable, IEnumerable, IEqualityComparer) | argument 1 -> return | false | -| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | -| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> return | false | -| System.Linq.Queryable.Zip(IQueryable, IEnumerable, Expression>) | argument 0 -> parameter 0 of argument 2 | false | -| System.Linq.Queryable.Zip(IQueryable, IEnumerable, Expression>) | argument 1 -> parameter 1 of argument 2 | false | -| System.Linq.Queryable.Zip(IQueryable, IEnumerable, Expression>) | output from argument 2 -> return | false | +| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> parameter 0 of argument 1 | false | +| System.Linq.Queryable.Where(IQueryable, Expression>) | argument 0 -> return | false | +| System.Linq.Queryable.Zip(IQueryable, IEnumerable, Expression>) | argument 0 -> parameter 0 of argument 2 | false | +| System.Linq.Queryable.Zip(IQueryable, IEnumerable, Expression>) | argument 1 -> parameter 1 of argument 2 | false | +| System.Linq.Queryable.Zip(IQueryable, IEnumerable, Expression>) | output from argument 2 -> return | false | | System.Net.Cookie.get_Value() | qualifier -> return | false | | System.Net.CookieCollection.Add(Cookie) | argument 0 -> qualifier | false | | System.Net.CookieCollection.Add(CookieCollection) | argument 0 -> qualifier | false | @@ -1300,16 +1300,16 @@ | System.Net.HttpListenerPrefixCollection.GetEnumerator() | qualifier -> return | false | | System.Net.NetworkInformation.IPAddressCollection.Add(IPAddress) | argument 0 -> qualifier | false | | System.Net.NetworkInformation.IPAddressCollection.GetEnumerator() | qualifier -> return | false | -| System.Net.Security.NegotiateStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.Net.Security.NegotiateStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | -| System.Net.Security.NegotiateStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.Net.Security.NegotiateStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.Net.Security.SslStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.Net.Security.SslStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | -| System.Net.Security.SslStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.Net.Security.SslStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.Net.Security.SslStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.Net.Security.SslStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.Net.Security.NegotiateStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.Net.Security.NegotiateStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.Net.Security.NegotiateStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.Net.Security.NegotiateStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.Net.Security.SslStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.Net.Security.SslStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.Net.Security.SslStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.Net.Security.SslStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.Net.Security.SslStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.Net.Security.SslStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | | System.Net.WebUtility.HtmlEncode(string) | argument 0 -> return | false | | System.Net.WebUtility.HtmlEncode(string, TextWriter) | argument 0 -> return | false | | System.Net.WebUtility.UrlEncode(string) | argument 0 -> return | false | @@ -1326,15 +1326,15 @@ | System.Runtime.CompilerServices.ReadOnlyCollectionBuilder<>.Insert(int, object) | argument 1 -> qualifier | false | | System.Runtime.CompilerServices.ReadOnlyCollectionBuilder<>.Reverse() | qualifier -> return | false | | System.Runtime.CompilerServices.ReadOnlyCollectionBuilder<>.Reverse(int, int) | qualifier -> return | false | -| System.Security.Cryptography.CryptoStream.BeginRead(byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | -| System.Security.Cryptography.CryptoStream.BeginWrite(byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | -| System.Security.Cryptography.CryptoStream.Read(byte[], int, int) | qualifier -> argument 0 | false | -| System.Security.Cryptography.CryptoStream.ReadAsync(byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | -| System.Security.Cryptography.CryptoStream.Write(byte[], int, int) | argument 0 -> qualifier | false | -| System.Security.Cryptography.CryptoStream.WriteAsync(byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | +| System.Security.Cryptography.CryptoStream.BeginRead(Byte[], int, int, AsyncCallback, object) | qualifier -> argument 0 | false | +| System.Security.Cryptography.CryptoStream.BeginWrite(Byte[], int, int, AsyncCallback, object) | argument 0 -> qualifier | false | +| System.Security.Cryptography.CryptoStream.Read(Byte[], int, int) | qualifier -> argument 0 | false | +| System.Security.Cryptography.CryptoStream.ReadAsync(Byte[], int, int, CancellationToken) | qualifier -> argument 0 | false | +| System.Security.Cryptography.CryptoStream.Write(Byte[], int, int) | argument 0 -> qualifier | false | +| System.Security.Cryptography.CryptoStream.WriteAsync(Byte[], int, int, CancellationToken) | argument 0 -> qualifier | false | | System.String.Clone() | qualifier -> return | false | | System.String.Clone() | qualifier -> return | true | -| System.String.Concat(IEnumerable) | argument 0 -> return | false | +| System.String.Concat(IEnumerable) | argument 0 -> return | false | | System.String.Concat(object) | argument 0 -> return | false | | System.String.Concat(object, object) | argument 0 -> return | false | | System.String.Concat(object, object) | argument 1 -> return | false | @@ -1373,16 +1373,16 @@ | System.String.GetEnumerator() | qualifier -> return | false | | System.String.Insert(int, string) | argument 1 -> return | false | | System.String.Insert(int, string) | qualifier -> return | false | -| System.String.Join(string, IEnumerable) | argument 0 -> return | false | -| System.String.Join(string, IEnumerable) | argument 1 -> return | false | -| System.String.Join(string, params string[]) | argument 0 -> return | false | -| System.String.Join(string, params string[]) | argument 1 -> return | false | -| System.String.Join(string, params string[]) | argument 2 -> return | false | -| System.String.Join(string, params string[]) | argument 3 -> return | false | -| System.String.Join(string, string[], int, int) | argument 0 -> return | false | -| System.String.Join(string, string[], int, int) | argument 1 -> return | false | -| System.String.Join(string, string[], int, int) | argument 2 -> return | false | -| System.String.Join(string, string[], int, int) | argument 3 -> return | false | +| System.String.Join(string, IEnumerable) | argument 0 -> return | false | +| System.String.Join(string, IEnumerable) | argument 1 -> return | false | +| System.String.Join(string, String[], int, int) | argument 0 -> return | false | +| System.String.Join(string, String[], int, int) | argument 1 -> return | false | +| System.String.Join(string, String[], int, int) | argument 2 -> return | false | +| System.String.Join(string, String[], int, int) | argument 3 -> return | false | +| System.String.Join(string, params String[]) | argument 0 -> return | false | +| System.String.Join(string, params String[]) | argument 1 -> return | false | +| System.String.Join(string, params String[]) | argument 2 -> return | false | +| System.String.Join(string, params String[]) | argument 3 -> return | false | | System.String.Join(string, IEnumerable) | argument 0 -> return | false | | System.String.Join(string, IEnumerable) | argument 1 -> return | false | | System.String.Normalize() | qualifier -> return | false | @@ -1397,18 +1397,18 @@ | System.String.Replace(char, char) | qualifier -> return | false | | System.String.Replace(string, string) | argument 1 -> return | false | | System.String.Replace(string, string) | qualifier -> return | false | +| System.String.Split(Char[], StringSplitOptions) | qualifier -> return | false | +| System.String.Split(Char[], int) | qualifier -> return | false | +| System.String.Split(Char[], int, StringSplitOptions) | qualifier -> return | false | +| System.String.Split(String[], StringSplitOptions) | qualifier -> return | false | +| System.String.Split(String[], int, StringSplitOptions) | qualifier -> return | false | | System.String.Split(char, StringSplitOptions) | qualifier -> return | false | | System.String.Split(char, int, StringSplitOptions) | qualifier -> return | false | -| System.String.Split(char[], StringSplitOptions) | qualifier -> return | false | -| System.String.Split(char[], int) | qualifier -> return | false | -| System.String.Split(char[], int, StringSplitOptions) | qualifier -> return | false | -| System.String.Split(params char[]) | qualifier -> return | false | +| System.String.Split(params Char[]) | qualifier -> return | false | | System.String.Split(string, StringSplitOptions) | qualifier -> return | false | | System.String.Split(string, int, StringSplitOptions) | qualifier -> return | false | -| System.String.Split(string[], StringSplitOptions) | qualifier -> return | false | -| System.String.Split(string[], int, StringSplitOptions) | qualifier -> return | false | -| System.String.String(char[]) | argument 0 -> return | false | -| System.String.String(char[], int, int) | argument 0 -> return | false | +| System.String.String(Char[]) | argument 0 -> return | false | +| System.String.String(Char[], int, int) | argument 0 -> return | false | | System.String.Substring(int) | qualifier -> return | false | | System.String.Substring(int, int) | qualifier -> return | false | | System.String.ToLower() | qualifier -> return | false | @@ -1420,30 +1420,30 @@ | System.String.ToUpperInvariant() | qualifier -> return | false | | System.String.Trim() | qualifier -> return | false | | System.String.Trim(char) | qualifier -> return | false | -| System.String.Trim(params char[]) | qualifier -> return | false | +| System.String.Trim(params Char[]) | qualifier -> return | false | | System.String.TrimEnd() | qualifier -> return | false | | System.String.TrimEnd(char) | qualifier -> return | false | -| System.String.TrimEnd(params char[]) | qualifier -> return | false | +| System.String.TrimEnd(params Char[]) | qualifier -> return | false | | System.String.TrimStart() | qualifier -> return | false | | System.String.TrimStart(char) | qualifier -> return | false | -| System.String.TrimStart(params char[]) | qualifier -> return | false | -| System.Text.Encoding.GetBytes(ReadOnlySpan, Span) | argument 0 -> return | false | +| System.String.TrimStart(params Char[]) | qualifier -> return | false | +| System.Text.Encoding.GetBytes(Char[]) | argument 0 -> return | false | +| System.Text.Encoding.GetBytes(Char[], int, int) | argument 0 -> return | false | +| System.Text.Encoding.GetBytes(Char[], int, int, Byte[], int) | argument 0 -> return | false | +| System.Text.Encoding.GetBytes(ReadOnlySpan, Span) | argument 0 -> return | false | | System.Text.Encoding.GetBytes(char*, int, byte*, int) | argument 0 -> return | false | -| System.Text.Encoding.GetBytes(char[]) | argument 0 -> return | false | -| System.Text.Encoding.GetBytes(char[], int, int) | argument 0 -> return | false | -| System.Text.Encoding.GetBytes(char[], int, int, byte[], int) | argument 0 -> return | false | | System.Text.Encoding.GetBytes(string) | argument 0 -> return | false | | System.Text.Encoding.GetBytes(string, int, int) | argument 0 -> return | false | -| System.Text.Encoding.GetBytes(string, int, int, byte[], int) | argument 0 -> return | false | -| System.Text.Encoding.GetChars(ReadOnlySpan, Span) | argument 0 -> return | false | +| System.Text.Encoding.GetBytes(string, int, int, Byte[], int) | argument 0 -> return | false | +| System.Text.Encoding.GetChars(Byte[]) | argument 0 -> return | false | +| System.Text.Encoding.GetChars(Byte[], int, int) | argument 0 -> return | false | +| System.Text.Encoding.GetChars(Byte[], int, int, Char[], int) | argument 0 -> return | false | +| System.Text.Encoding.GetChars(ReadOnlySpan, Span) | argument 0 -> return | false | | System.Text.Encoding.GetChars(byte*, int, char*, int) | argument 0 -> return | false | -| System.Text.Encoding.GetChars(byte[]) | argument 0 -> return | false | -| System.Text.Encoding.GetChars(byte[], int, int) | argument 0 -> return | false | -| System.Text.Encoding.GetChars(byte[], int, int, char[], int) | argument 0 -> return | false | -| System.Text.Encoding.GetString(ReadOnlySpan) | argument 0 -> return | false | +| System.Text.Encoding.GetString(Byte[]) | argument 0 -> return | false | +| System.Text.Encoding.GetString(Byte[], int, int) | argument 0 -> return | false | +| System.Text.Encoding.GetString(ReadOnlySpan) | argument 0 -> return | false | | System.Text.Encoding.GetString(byte*, int) | argument 0 -> return | false | -| System.Text.Encoding.GetString(byte[]) | argument 0 -> return | false | -| System.Text.Encoding.GetString(byte[], int, int) | argument 0 -> return | false | | System.Text.RegularExpressions.CaptureCollection.Add(Capture) | argument 0 -> qualifier | false | | System.Text.RegularExpressions.CaptureCollection.Add(object) | argument 0 -> qualifier | false | | System.Text.RegularExpressions.CaptureCollection.GetEnumerator() | qualifier -> return | false | @@ -1485,106 +1485,106 @@ | System.Text.StringBuilder.StringBuilder(string, int) | argument 0 -> return | false | | System.Text.StringBuilder.StringBuilder(string, int, int, int) | argument 0 -> return | false | | System.Text.StringBuilder.ToString() | qualifier -> return | false | -| System.Threading.Tasks.Task.ContinueWith(Action, object) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Action, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Action, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Action, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Action, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Action, object) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Action, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Action, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Action, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Action, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskContinuationOptions) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskScheduler) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.ContinueWith(Func) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.ContinueWith(Func, CancellationToken) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.ContinueWith(Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.ContinueWith(Func, TaskContinuationOptions) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.ContinueWith(Func, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskContinuationOptions) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task.ContinueWith(Func, object, TaskScheduler) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.FromResult(TResult) | argument 0 -> return | true | | System.Threading.Tasks.Task.Run(Func) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.Run(Func, CancellationToken) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.Run(Func>) | output from argument 0 -> return | true | | System.Threading.Tasks.Task.Run(Func>, CancellationToken) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task.Task(Action, object) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task.Task(Action, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task.Task(Action, object, CancellationToken, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task.Task(Action, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task.Task(Action, object) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task.Task(Action, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task.Task(Action, object, CancellationToken, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task.Task(Action, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | | System.Threading.Tasks.Task.WhenAll(IEnumerable>) | argument 0 -> return | true | | System.Threading.Tasks.Task.WhenAll(params Task[]) | argument 0 -> return | true | | System.Threading.Tasks.Task.WhenAll(params Task[]) | argument 1 -> return | true | | System.Threading.Tasks.Task.WhenAny(IEnumerable>) | argument 0 -> return | true | | System.Threading.Tasks.Task.WhenAny(params Task[]) | argument 0 -> return | true | | System.Threading.Tasks.Task.WhenAny(params Task[]) | argument 1 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action, object>, object, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action>) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action>, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action>, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action>, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Action>, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskContinuationOptions) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, CancellationToken) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, TaskContinuationOptions) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.ContinueWith(Func, object, TNewResult>, object, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action, Object>, object, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action>) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action>, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action>, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action>, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Action>, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, CancellationToken) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, CancellationToken) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, TaskContinuationOptions) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, TaskContinuationOptions) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, TaskScheduler) | argument 1 -> parameter 1 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, TaskScheduler) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, Object, TNewResult>, object, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskContinuationOptions) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskContinuationOptions) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskScheduler) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.ContinueWith(Func, TNewResult>, TaskScheduler) | qualifier -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.Task(Func, object) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.Task(Func, object) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken, TaskCreationOptions) | output from argument 0 -> return | true | +| System.Threading.Tasks.Task<>.Task(Func, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.Task<>.Task(Func, object, TaskCreationOptions) | output from argument 0 -> return | true | | System.Threading.Tasks.Task<>.Task(Func) | output from argument 0 -> return | true | | System.Threading.Tasks.Task<>.Task(Func, CancellationToken) | output from argument 0 -> return | true | | System.Threading.Tasks.Task<>.Task(Func, CancellationToken, TaskCreationOptions) | output from argument 0 -> return | true | | System.Threading.Tasks.Task<>.Task(Func, TaskCreationOptions) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.Task(Func, object) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.Task(Func, object) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.Task(Func, object, CancellationToken, TaskCreationOptions) | output from argument 0 -> return | true | -| System.Threading.Tasks.Task<>.Task(Func, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.Task<>.Task(Func, object, TaskCreationOptions) | output from argument 0 -> return | true | | System.Threading.Tasks.Task<>.get_Result() | qualifier -> return | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>, TaskContinuationOptions) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func[], TResult>, TaskContinuationOptions) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action[]>) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action[]>, CancellationToken) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action[]>, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action[]>, TaskContinuationOptions) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, CancellationToken) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, CancellationToken) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, TaskContinuationOptions) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, TaskContinuationOptions) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action, CancellationToken) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Action, TaskContinuationOptions) | argument 0 -> parameter 0 of argument 1 | true | | System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, CancellationToken) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory.ContinueWhenAll(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | @@ -1605,34 +1605,34 @@ | System.Threading.Tasks.TaskFactory.ContinueWhenAny(Task[], Func, CancellationToken) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory.ContinueWhenAny(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory.ContinueWhenAny(Task[], Func, TaskContinuationOptions) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory.StartNew(Action, object) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory.StartNew(Action, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory.StartNew(Action, object, CancellationToken, TaskCreationOptions, TaskScheduler) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory.StartNew(Action, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Action, object) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Action, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Action, object, CancellationToken, TaskCreationOptions, TaskScheduler) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Action, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object) | output from argument 0 -> return | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken) | output from argument 0 -> return | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | output from argument 0 -> return | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory.StartNew(Func, object, TaskCreationOptions) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory.StartNew(Func) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory.StartNew(Func, CancellationToken) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory.StartNew(Func, CancellationToken, TaskCreationOptions, TaskScheduler) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory.StartNew(Func, TaskCreationOptions) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory.StartNew(Func, object, TaskCreationOptions) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, CancellationToken) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, TaskContinuationOptions) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>, TaskContinuationOptions) | argument 0 -> parameter 0 of argument 1 | true | -| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func[], TResult>, TaskContinuationOptions) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, CancellationToken) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, CancellationToken) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, TaskContinuationOptions) | argument 0 -> parameter 0 of argument 1 | true | +| System.Threading.Tasks.TaskFactory<>.ContinueWhenAll(Task[], Func, TaskContinuationOptions) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAny(Task[], Func) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAny(Task[], Func, CancellationToken) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAny(Task[], Func, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | @@ -1645,18 +1645,18 @@ | System.Threading.Tasks.TaskFactory<>.ContinueWhenAny(Task[], Func, TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) | output from argument 1 -> return | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAny(Task[], Func, TResult>, TaskContinuationOptions) | argument 0 -> parameter 0 of argument 1 | true | | System.Threading.Tasks.TaskFactory<>.ContinueWhenAny(Task[], Func, TResult>, TaskContinuationOptions) | output from argument 1 -> return | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object) | output from argument 0 -> return | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken) | output from argument 0 -> return | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | output from argument 0 -> return | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | +| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, TaskCreationOptions) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory<>.StartNew(Func) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory<>.StartNew(Func, CancellationToken) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory<>.StartNew(Func, CancellationToken, TaskCreationOptions, TaskScheduler) | output from argument 0 -> return | true | | System.Threading.Tasks.TaskFactory<>.StartNew(Func, TaskCreationOptions) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, CancellationToken, TaskCreationOptions, TaskScheduler) | output from argument 0 -> return | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, TaskCreationOptions) | argument 1 -> parameter 0 of argument 0 | true | -| System.Threading.Tasks.TaskFactory<>.StartNew(Func, object, TaskCreationOptions) | output from argument 0 -> return | true | | System.Uri.ToString() | qualifier -> return | false | | System.Uri.Uri(string) | argument 0 -> return | false | | System.Uri.Uri(string, UriKind) | argument 0 -> return | false | diff --git a/csharp/ql/test/library-tests/dispatch/GetADynamicTarget.expected b/csharp/ql/test/library-tests/dispatch/GetADynamicTarget.expected index 72eb9275f8b..23d7f1dc5f9 100644 --- a/csharp/ql/test/library-tests/dispatch/GetADynamicTarget.expected +++ b/csharp/ql/test/library-tests/dispatch/GetADynamicTarget.expected @@ -72,11 +72,11 @@ | ViableCallable.cs:12:9:12:28 | call to method M | C2.M(string, T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C3.M(string, T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C4<>.M(T[], T3) | -| ViableCallable.cs:12:9:12:28 | call to method M | C4.M(int[], T3) | +| ViableCallable.cs:12:9:12:28 | call to method M | C4.M(Int32[], T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C5.M(string, T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C6<,>.M(T1, T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C6.M(bool, T3) | -| ViableCallable.cs:12:9:12:28 | call to method M | C6.M(int[], T3) | +| ViableCallable.cs:12:9:12:28 | call to method M | C6.M(Int32[], T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C6.M(string, T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C6.M(string, T3) | | ViableCallable.cs:12:9:12:28 | call to method M | C6.M(string, T3) | @@ -90,11 +90,11 @@ | ViableCallable.cs:14:9:14:15 | access to property Prop | C2.set_Prop(string) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C3.set_Prop(string) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C4<>.set_Prop(T[]) | -| ViableCallable.cs:14:9:14:15 | access to property Prop | C4.set_Prop(int[]) | +| ViableCallable.cs:14:9:14:15 | access to property Prop | C4.set_Prop(Int32[]) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C5.set_Prop(string) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C6<,>.set_Prop(T1) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C6.set_Prop(bool) | -| ViableCallable.cs:14:9:14:15 | access to property Prop | C6.set_Prop(int[]) | +| ViableCallable.cs:14:9:14:15 | access to property Prop | C6.set_Prop(Int32[]) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C6.set_Prop(string) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C6.set_Prop(string) | | ViableCallable.cs:14:9:14:15 | access to property Prop | C6.set_Prop(string) | @@ -126,11 +126,11 @@ | ViableCallable.cs:16:9:16:23 | access to indexer | C2.set_Item(int, string) | | ViableCallable.cs:16:9:16:23 | access to indexer | C3.set_Item(decimal, string) | | ViableCallable.cs:16:9:16:23 | access to indexer | C4<>.set_Item(bool, T[]) | -| ViableCallable.cs:16:9:16:23 | access to indexer | C4.set_Item(bool, int[]) | +| ViableCallable.cs:16:9:16:23 | access to indexer | C4.set_Item(bool, Int32[]) | | ViableCallable.cs:16:9:16:23 | access to indexer | C5.set_Item(bool, string) | | ViableCallable.cs:16:9:16:23 | access to indexer | C6<,>.set_Item(T2, T1) | | ViableCallable.cs:16:9:16:23 | access to indexer | C6.set_Item(byte, bool) | -| ViableCallable.cs:16:9:16:23 | access to indexer | C6.set_Item(bool, int[]) | +| ViableCallable.cs:16:9:16:23 | access to indexer | C6.set_Item(bool, Int32[]) | | ViableCallable.cs:16:9:16:23 | access to indexer | C6.set_Item(bool, string) | | ViableCallable.cs:16:9:16:23 | access to indexer | C6.set_Item(decimal, string) | | ViableCallable.cs:16:9:16:23 | access to indexer | C6.set_Item(int, string) | @@ -156,64 +156,64 @@ | ViableCallable.cs:16:27:16:41 | access to indexer | C6.get_Item(byte) | | ViableCallable.cs:16:27:16:41 | access to indexer | C7<>.get_Item(byte) | | ViableCallable.cs:16:27:16:41 | access to indexer | C7.get_Item(byte) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C2<>.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C2.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C2.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C2.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C3.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C2<>.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C2.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C2.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C2.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C3.add_Event(EventHandler) | | ViableCallable.cs:18:9:18:16 | access to event Event | C4<>.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C4.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C5.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C4.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C5.add_Event(EventHandler) | | ViableCallable.cs:18:9:18:16 | access to event Event | C6<,>.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | | ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | | ViableCallable.cs:18:9:18:16 | access to event Event | C6.add_Event(EventHandler) | | ViableCallable.cs:18:9:18:16 | access to event Event | C7<>.add_Event(EventHandler) | -| ViableCallable.cs:18:9:18:16 | access to event Event | C7.add_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C2<>.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C2.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C2.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C2.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C3.remove_Event(EventHandler) | +| ViableCallable.cs:18:9:18:16 | access to event Event | C7.add_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C2<>.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C2.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C2.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C2.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C3.remove_Event(EventHandler) | | ViableCallable.cs:19:9:19:16 | access to event Event | C4<>.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C4.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C5.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C4.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C5.remove_Event(EventHandler) | | ViableCallable.cs:19:9:19:16 | access to event Event | C6<,>.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | | ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | | ViableCallable.cs:19:9:19:16 | access to event Event | C6.remove_Event(EventHandler) | | ViableCallable.cs:19:9:19:16 | access to event Event | C7<>.remove_Event(EventHandler) | -| ViableCallable.cs:19:9:19:16 | access to event Event | C7.remove_Event(EventHandler) | +| ViableCallable.cs:19:9:19:16 | access to event Event | C7.remove_Event(EventHandler) | | ViableCallable.cs:22:9:22:30 | call to method M | C4<>.M(T[], T3) | -| ViableCallable.cs:22:9:22:30 | call to method M | C4.M(int[], T3) | -| ViableCallable.cs:22:9:22:30 | call to method M | C6.M(int[], T3) | +| ViableCallable.cs:22:9:22:30 | call to method M | C4.M(Int32[], T3) | +| ViableCallable.cs:22:9:22:30 | call to method M | C6.M(Int32[], T3) | | ViableCallable.cs:24:9:24:15 | access to property Prop | C4<>.set_Prop(T[]) | -| ViableCallable.cs:24:9:24:15 | access to property Prop | C4.set_Prop(int[]) | -| ViableCallable.cs:24:9:24:15 | access to property Prop | C6.set_Prop(int[]) | +| ViableCallable.cs:24:9:24:15 | access to property Prop | C4.set_Prop(Int32[]) | +| ViableCallable.cs:24:9:24:15 | access to property Prop | C6.set_Prop(Int32[]) | | ViableCallable.cs:24:19:24:25 | access to property Prop | C4<>.get_Prop() | | ViableCallable.cs:24:19:24:25 | access to property Prop | C4.get_Prop() | | ViableCallable.cs:24:19:24:25 | access to property Prop | C6.get_Prop() | | ViableCallable.cs:26:9:26:23 | access to indexer | C4<>.set_Item(bool, T[]) | -| ViableCallable.cs:26:9:26:23 | access to indexer | C4.set_Item(bool, int[]) | -| ViableCallable.cs:26:9:26:23 | access to indexer | C6.set_Item(bool, int[]) | +| ViableCallable.cs:26:9:26:23 | access to indexer | C4.set_Item(bool, Int32[]) | +| ViableCallable.cs:26:9:26:23 | access to indexer | C6.set_Item(bool, Int32[]) | | ViableCallable.cs:26:27:26:41 | access to indexer | C4<>.get_Item(bool) | | ViableCallable.cs:26:27:26:41 | access to indexer | C4.get_Item(bool) | | ViableCallable.cs:26:27:26:41 | access to indexer | C6.get_Item(bool) | | ViableCallable.cs:28:9:28:16 | access to event Event | C4<>.add_Event(EventHandler) | -| ViableCallable.cs:28:9:28:16 | access to event Event | C4.add_Event(EventHandler) | -| ViableCallable.cs:28:9:28:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:28:9:28:16 | access to event Event | C4.add_Event(EventHandler) | +| ViableCallable.cs:28:9:28:16 | access to event Event | C6.add_Event(EventHandler) | | ViableCallable.cs:29:9:29:16 | access to event Event | C4<>.remove_Event(EventHandler) | -| ViableCallable.cs:29:9:29:16 | access to event Event | C4.remove_Event(EventHandler) | -| ViableCallable.cs:29:9:29:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:32:30:32:52 | call to method Mock | ViableCallable.Mock>() | +| ViableCallable.cs:29:9:29:16 | access to event Event | C4.remove_Event(EventHandler) | +| ViableCallable.cs:29:9:29:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:32:30:32:52 | call to method Mock | ViableCallable.Mock>() | | ViableCallable.cs:33:9:33:23 | call to method M | C2.M(string, T3) | | ViableCallable.cs:33:9:33:23 | call to method M | C6.M(string, T3) | | ViableCallable.cs:35:9:35:15 | access to property Prop | C2.set_Prop(string) | @@ -224,11 +224,11 @@ | ViableCallable.cs:37:9:37:13 | access to indexer | C6.set_Item(int, string) | | ViableCallable.cs:37:17:37:21 | access to indexer | C2.get_Item(int) | | ViableCallable.cs:37:17:37:21 | access to indexer | C6.get_Item(int) | -| ViableCallable.cs:39:9:39:16 | access to event Event | C2.add_Event(EventHandler) | -| ViableCallable.cs:39:9:39:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:40:9:40:16 | access to event Event | C2.remove_Event(EventHandler) | -| ViableCallable.cs:40:9:40:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:43:34:43:60 | call to method Mock | ViableCallable.Mock>() | +| ViableCallable.cs:39:9:39:16 | access to event Event | C2.add_Event(EventHandler) | +| ViableCallable.cs:39:9:39:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:40:9:40:16 | access to event Event | C2.remove_Event(EventHandler) | +| ViableCallable.cs:40:9:40:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:43:34:43:60 | call to method Mock | ViableCallable.Mock>() | | ViableCallable.cs:44:9:44:24 | call to method M | C2.M(string, T3) | | ViableCallable.cs:44:9:44:24 | call to method M | C3.M(string, T3) | | ViableCallable.cs:44:9:44:24 | call to method M | C6.M(string, T3) | @@ -244,28 +244,28 @@ | ViableCallable.cs:48:18:48:23 | access to indexer | C2.get_Item(decimal) | | ViableCallable.cs:48:18:48:23 | access to indexer | C3.get_Item(decimal) | | ViableCallable.cs:48:18:48:23 | access to indexer | C6.get_Item(decimal) | -| ViableCallable.cs:50:9:50:16 | access to event Event | C2.add_Event(EventHandler) | -| ViableCallable.cs:50:9:50:16 | access to event Event | C3.add_Event(EventHandler) | -| ViableCallable.cs:50:9:50:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:51:9:51:16 | access to event Event | C2.remove_Event(EventHandler) | -| ViableCallable.cs:51:9:51:16 | access to event Event | C3.remove_Event(EventHandler) | -| ViableCallable.cs:51:9:51:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:54:30:54:52 | call to method Mock | ViableCallable.Mock>() | -| ViableCallable.cs:55:9:55:44 | call to method M | C4.M(int[], T3) | -| ViableCallable.cs:55:9:55:44 | call to method M | C6.M(int[], T3) | -| ViableCallable.cs:57:9:57:15 | access to property Prop | C4.set_Prop(int[]) | -| ViableCallable.cs:57:9:57:15 | access to property Prop | C6.set_Prop(int[]) | +| ViableCallable.cs:50:9:50:16 | access to event Event | C2.add_Event(EventHandler) | +| ViableCallable.cs:50:9:50:16 | access to event Event | C3.add_Event(EventHandler) | +| ViableCallable.cs:50:9:50:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:51:9:51:16 | access to event Event | C2.remove_Event(EventHandler) | +| ViableCallable.cs:51:9:51:16 | access to event Event | C3.remove_Event(EventHandler) | +| ViableCallable.cs:51:9:51:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:54:30:54:52 | call to method Mock | ViableCallable.Mock>() | +| ViableCallable.cs:55:9:55:44 | call to method M | C4.M(Int32[], T3) | +| ViableCallable.cs:55:9:55:44 | call to method M | C6.M(Int32[], T3) | +| ViableCallable.cs:57:9:57:15 | access to property Prop | C4.set_Prop(Int32[]) | +| ViableCallable.cs:57:9:57:15 | access to property Prop | C6.set_Prop(Int32[]) | | ViableCallable.cs:57:19:57:25 | access to property Prop | C4.get_Prop() | | ViableCallable.cs:57:19:57:25 | access to property Prop | C6.get_Prop() | -| ViableCallable.cs:59:9:59:17 | access to indexer | C4.set_Item(bool, int[]) | -| ViableCallable.cs:59:9:59:17 | access to indexer | C6.set_Item(bool, int[]) | +| ViableCallable.cs:59:9:59:17 | access to indexer | C4.set_Item(bool, Int32[]) | +| ViableCallable.cs:59:9:59:17 | access to indexer | C6.set_Item(bool, Int32[]) | | ViableCallable.cs:59:21:59:29 | access to indexer | C4.get_Item(bool) | | ViableCallable.cs:59:21:59:29 | access to indexer | C6.get_Item(bool) | -| ViableCallable.cs:61:9:61:16 | access to event Event | C4.add_Event(EventHandler) | -| ViableCallable.cs:61:9:61:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:62:9:62:16 | access to event Event | C4.remove_Event(EventHandler) | -| ViableCallable.cs:62:9:62:16 | access to event Event | C6.remove_Event(EventHandler) | -| ViableCallable.cs:65:31:65:54 | call to method Mock | ViableCallable.Mock>() | +| ViableCallable.cs:61:9:61:16 | access to event Event | C4.add_Event(EventHandler) | +| ViableCallable.cs:61:9:61:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:62:9:62:16 | access to event Event | C4.remove_Event(EventHandler) | +| ViableCallable.cs:62:9:62:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:65:31:65:54 | call to method Mock | ViableCallable.Mock>() | | ViableCallable.cs:66:9:66:30 | call to method M | C2.M(string, T3) | | ViableCallable.cs:66:9:66:30 | call to method M | C5.M(string, T3) | | ViableCallable.cs:66:9:66:30 | call to method M | C6.M(string, T3) | @@ -281,12 +281,12 @@ | ViableCallable.cs:70:21:70:29 | access to indexer | C2.get_Item(bool) | | ViableCallable.cs:70:21:70:29 | access to indexer | C5.get_Item(bool) | | ViableCallable.cs:70:21:70:29 | access to indexer | C6.get_Item(bool) | -| ViableCallable.cs:72:9:72:16 | access to event Event | C2.add_Event(EventHandler) | -| ViableCallable.cs:72:9:72:16 | access to event Event | C5.add_Event(EventHandler) | -| ViableCallable.cs:72:9:72:16 | access to event Event | C6.add_Event(EventHandler) | -| ViableCallable.cs:73:9:73:16 | access to event Event | C2.remove_Event(EventHandler) | -| ViableCallable.cs:73:9:73:16 | access to event Event | C5.remove_Event(EventHandler) | -| ViableCallable.cs:73:9:73:16 | access to event Event | C6.remove_Event(EventHandler) | +| ViableCallable.cs:72:9:72:16 | access to event Event | C2.add_Event(EventHandler) | +| ViableCallable.cs:72:9:72:16 | access to event Event | C5.add_Event(EventHandler) | +| ViableCallable.cs:72:9:72:16 | access to event Event | C6.add_Event(EventHandler) | +| ViableCallable.cs:73:9:73:16 | access to event Event | C2.remove_Event(EventHandler) | +| ViableCallable.cs:73:9:73:16 | access to event Event | C5.remove_Event(EventHandler) | +| ViableCallable.cs:73:9:73:16 | access to event Event | C6.remove_Event(EventHandler) | | ViableCallable.cs:77:9:77:29 | call to method M | C6.M(T1, T3) | | ViableCallable.cs:79:9:79:15 | access to property Prop | C6.set_Prop(T1) | | ViableCallable.cs:79:19:79:25 | access to property Prop | C6.get_Prop() | @@ -295,9 +295,9 @@ | ViableCallable.cs:83:9:83:16 | access to event Event | C6.add_Event(EventHandler) | | ViableCallable.cs:84:9:84:16 | access to event Event | C6.remove_Event(EventHandler) | | ViableCallable.cs:87:21:87:30 | call to method Mock | ViableCallable.Mock() | -| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C8.M(IEnumerable>) | -| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C9<>.M(IEnumerable>) | -| ViableCallable.cs:88:13:88:43 | call to method Mock | ViableCallable.Mock>>() | +| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C8.M(IEnumerable>) | +| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C9<>.M(IEnumerable>) | +| ViableCallable.cs:88:13:88:43 | call to method Mock | ViableCallable.Mock>>() | | ViableCallable.cs:90:9:90:15 | dynamic access to member Prop1 | C8.set_Prop1(string) | | ViableCallable.cs:90:9:90:15 | dynamic access to member Prop1 | C9<>.set_Prop1(string) | | ViableCallable.cs:90:19:90:25 | dynamic access to member Prop1 | C8.get_Prop1() | @@ -306,13 +306,13 @@ | ViableCallable.cs:92:9:92:12 | dynamic access to element | C9<>.set_Item(int, string) | | ViableCallable.cs:92:16:92:19 | dynamic access to element | C8.get_Item(int) | | ViableCallable.cs:92:16:92:19 | dynamic access to element | C9<>.get_Item(int) | -| ViableCallable.cs:95:13:95:40 | call to method Mock | ViableCallable.Mock>>() | +| ViableCallable.cs:95:13:95:40 | call to method Mock | ViableCallable.Mock>>() | | ViableCallable.cs:99:9:99:15 | dynamic call to method M | C5.M(int) | | ViableCallable.cs:102:9:102:16 | access to property Prop2 | C5.set_Prop2(string) | -| ViableCallable.cs:105:9:105:17 | access to event Event2 | C5.add_Event2(EventHandler) | -| ViableCallable.cs:106:9:106:17 | access to event Event2 | C5.remove_Event2(EventHandler) | -| ViableCallable.cs:120:9:120:25 | dynamic call to method M2 | C8.M2(decimal[]) | -| ViableCallable.cs:124:9:124:24 | dynamic call to method M2 | C8.M2(string[]) | +| ViableCallable.cs:105:9:105:17 | access to event Event2 | C5.add_Event2(EventHandler) | +| ViableCallable.cs:106:9:106:17 | access to event Event2 | C5.remove_Event2(EventHandler) | +| ViableCallable.cs:120:9:120:25 | dynamic call to method M2 | C8.M2(Decimal[]) | +| ViableCallable.cs:124:9:124:24 | dynamic call to method M2 | C8.M2(String[]) | | ViableCallable.cs:132:9:132:28 | dynamic call to method M | C6.M(bool, T3) | | ViableCallable.cs:132:9:132:28 | dynamic call to method M | C6.M(T1, T3) | | ViableCallable.cs:134:9:134:14 | dynamic access to member Prop | C6.set_Prop(bool) | @@ -326,23 +326,23 @@ | ViableCallable.cs:138:9:138:52 | ... += ... | C6.add_Event(EventHandler) | | ViableCallable.cs:139:9:139:52 | ... -= ... | C6.remove_Event(EventHandler) | | ViableCallable.cs:143:13:143:22 | call to method Mock | ViableCallable.Mock() | -| ViableCallable.cs:144:9:144:14 | dynamic call to method M3 | C8.M3(params double[]) | +| ViableCallable.cs:144:9:144:14 | dynamic call to method M3 | C8.M3(params Double[]) | | ViableCallable.cs:144:9:144:14 | dynamic call to method M3 | C9<>.M3(params T[]) | -| ViableCallable.cs:145:9:145:15 | dynamic call to method M3 | C8.M3(params double[]) | +| ViableCallable.cs:145:9:145:15 | dynamic call to method M3 | C8.M3(params Double[]) | | ViableCallable.cs:145:9:145:15 | dynamic call to method M3 | C9<>.M3(params T[]) | -| ViableCallable.cs:146:9:146:20 | dynamic call to method M3 | C8.M3(params double[]) | +| ViableCallable.cs:146:9:146:20 | dynamic call to method M3 | C8.M3(params Double[]) | | ViableCallable.cs:146:9:146:20 | dynamic call to method M3 | C9<>.M3(params T[]) | -| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C8.M3(params double[]) | +| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C8.M3(params Double[]) | | ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C9<>.M3(params T[]) | -| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C10.M3(params double[]) | +| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C10.M3(params Double[]) | | ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | Test.MainClass.ImplAlpha.M3() | | ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | Test.MainClass.SecondLevelImpl.M3() | -| ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C8.M3(params double[]) | +| ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C8.M3(params Double[]) | | ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C9<>.M3(params T[]) | -| ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C10.M3(params double[]) | -| ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C8.M3(params double[]) | +| ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C10.M3(params Double[]) | +| ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C8.M3(params Double[]) | | ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C9<>.M3(params T[]) | -| ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C10.M3(params double[]) | +| ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C10.M3(params Double[]) | | ViableCallable.cs:153:9:153:17 | dynamic access to member Prop1 | C8.set_Prop1(string) | | ViableCallable.cs:153:9:153:17 | dynamic access to member Prop1 | C9<>.set_Prop1(string) | | ViableCallable.cs:153:9:153:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) | @@ -377,39 +377,39 @@ | ViableCallable.cs:155:18:155:23 | dynamic access to element | C8.get_Item(int) | | ViableCallable.cs:155:18:155:23 | dynamic access to element | C9<>.get_Item(int) | | ViableCallable.cs:155:18:155:23 | dynamic access to element | C10.get_Item(int) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C2<>.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C2.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C2.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C2.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C3.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C5.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C2<>.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C2.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C2.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C2.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C3.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C5.add_Event(EventHandler) | | ViableCallable.cs:157:9:157:54 | ... += ... | C6<,>.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | | ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | | ViableCallable.cs:157:9:157:54 | ... += ... | C6.add_Event(EventHandler) | | ViableCallable.cs:157:9:157:54 | ... += ... | C7<>.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C8.add_Event(EventHandler) | -| ViableCallable.cs:157:9:157:54 | ... += ... | C9<>.add_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C2<>.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C2.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C2.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C2.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C3.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C5.remove_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C8.add_Event(EventHandler) | +| ViableCallable.cs:157:9:157:54 | ... += ... | C9<>.add_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C2<>.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C2.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C2.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C2.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C3.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C5.remove_Event(EventHandler) | | ViableCallable.cs:158:9:158:54 | ... -= ... | C6<,>.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | | ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | | ViableCallable.cs:158:9:158:54 | ... -= ... | C6.remove_Event(EventHandler) | | ViableCallable.cs:158:9:158:54 | ... -= ... | C7<>.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C8.remove_Event(EventHandler) | -| ViableCallable.cs:158:9:158:54 | ... -= ... | C9<>.remove_Event(EventHandler) | -| ViableCallable.cs:161:9:161:40 | dynamic call to method M4 | C8.M4(byte, IEnumerable) | -| ViableCallable.cs:161:19:161:39 | call to method Mock | ViableCallable.Mock>() | -| ViableCallable.cs:162:9:162:38 | dynamic call to method M4 | C8.M4(byte, IEnumerable) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C8.remove_Event(EventHandler) | +| ViableCallable.cs:158:9:158:54 | ... -= ... | C9<>.remove_Event(EventHandler) | +| ViableCallable.cs:161:9:161:40 | dynamic call to method M4 | C8.M4(byte, IEnumerable) | +| ViableCallable.cs:161:19:161:39 | call to method Mock | ViableCallable.Mock>() | +| ViableCallable.cs:162:9:162:38 | dynamic call to method M4 | C8.M4(byte, IEnumerable) | | ViableCallable.cs:165:9:165:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) | | ViableCallable.cs:175:9:175:15 | dynamic access to element | C2<>.set_Item(T, string) | | ViableCallable.cs:175:9:175:15 | dynamic access to element | C6<,>.set_Item(T2, T1) | @@ -420,19 +420,19 @@ | ViableCallable.cs:191:9:191:149 | call to method InvokeMember | C10.set_Prop3(string) | | ViableCallable.cs:194:9:194:146 | call to method InvokeMember | C10.get_Item(int) | | ViableCallable.cs:195:9:195:152 | call to method InvokeMember | C10.set_Item(int, bool) | -| ViableCallable.cs:199:9:199:147 | call to method InvokeMember | C10.add_Event(EventHandler) | -| ViableCallable.cs:200:9:200:150 | call to method InvokeMember | C10.remove_Event(EventHandler) | +| ViableCallable.cs:199:9:199:147 | call to method InvokeMember | C10.add_Event(EventHandler) | +| ViableCallable.cs:200:9:200:150 | call to method InvokeMember | C10.remove_Event(EventHandler) | | ViableCallable.cs:235:9:235:15 | call to method M | C2<>.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C2.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C2.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C2.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C3.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C4<>.M(T[], T3) | -| ViableCallable.cs:235:9:235:15 | call to method M | C4.M(int[], T3) | +| ViableCallable.cs:235:9:235:15 | call to method M | C4.M(Int32[], T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C5.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C6<,>.M(T1, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C6.M(bool, T3) | -| ViableCallable.cs:235:9:235:15 | call to method M | C6.M(int[], T3) | +| ViableCallable.cs:235:9:235:15 | call to method M | C6.M(Int32[], T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C6.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C6.M(string, T3) | | ViableCallable.cs:235:9:235:15 | call to method M | C6.M(string, T3) | diff --git a/csharp/ql/test/library-tests/frameworks/format/StringFormatItemParameter.expected b/csharp/ql/test/library-tests/frameworks/format/StringFormatItemParameter.expected index 456d7bbea6d..85e2d82f3ab 100644 --- a/csharp/ql/test/library-tests/frameworks/format/StringFormatItemParameter.expected +++ b/csharp/ql/test/library-tests/frameworks/format/StringFormatItemParameter.expected @@ -4,57 +4,57 @@ | Console | Write(string, object, object, object) | arg0 | | Console | Write(string, object, object, object) | arg1 | | Console | Write(string, object, object, object) | arg2 | -| Console | Write(string, params object[]) | arg | +| Console | Write(string, params Object[]) | arg | | Console | WriteLine(string, object) | arg0 | | Console | WriteLine(string, object, object) | arg0 | | Console | WriteLine(string, object, object) | arg1 | | Console | WriteLine(string, object, object, object) | arg0 | | Console | WriteLine(string, object, object, object) | arg1 | | Console | WriteLine(string, object, object, object) | arg2 | -| Console | WriteLine(string, params object[]) | arg | -| Debug | Assert(bool, string, string, params object[]) | args | -| Debug | Print(string, params object[]) | args | -| Debug | WriteLine(string, params object[]) | args | +| Console | WriteLine(string, params Object[]) | arg | +| Debug | Assert(bool, string, string, params Object[]) | args | +| Debug | Print(string, params Object[]) | args | +| Debug | WriteLine(string, params Object[]) | args | | StringBuilder | AppendFormat(IFormatProvider, string, object) | arg0 | | StringBuilder | AppendFormat(IFormatProvider, string, object, object) | arg0 | | StringBuilder | AppendFormat(IFormatProvider, string, object, object) | arg1 | | StringBuilder | AppendFormat(IFormatProvider, string, object, object, object) | arg0 | | StringBuilder | AppendFormat(IFormatProvider, string, object, object, object) | arg1 | | StringBuilder | AppendFormat(IFormatProvider, string, object, object, object) | arg2 | -| StringBuilder | AppendFormat(IFormatProvider, string, params object[]) | args | +| StringBuilder | AppendFormat(IFormatProvider, string, params Object[]) | args | | StringBuilder | AppendFormat(string, object) | arg0 | | StringBuilder | AppendFormat(string, object, object) | arg0 | | StringBuilder | AppendFormat(string, object, object) | arg1 | | StringBuilder | AppendFormat(string, object, object, object) | arg0 | | StringBuilder | AppendFormat(string, object, object, object) | arg1 | | StringBuilder | AppendFormat(string, object, object, object) | arg2 | -| StringBuilder | AppendFormat(string, params object[]) | args | -| Strings | MyStringFormat(string, params object[]) | args | +| StringBuilder | AppendFormat(string, params Object[]) | args | +| Strings | MyStringFormat(string, params Object[]) | args | | TextWriter | Write(string, object) | arg0 | | TextWriter | Write(string, object, object) | arg0 | | TextWriter | Write(string, object, object) | arg1 | | TextWriter | Write(string, object, object, object) | arg0 | | TextWriter | Write(string, object, object, object) | arg1 | | TextWriter | Write(string, object, object, object) | arg2 | -| TextWriter | Write(string, params object[]) | arg | +| TextWriter | Write(string, params Object[]) | arg | | TextWriter | WriteLine(string, object) | arg0 | | TextWriter | WriteLine(string, object, object) | arg0 | | TextWriter | WriteLine(string, object, object) | arg1 | | TextWriter | WriteLine(string, object, object, object) | arg0 | | TextWriter | WriteLine(string, object, object, object) | arg1 | | TextWriter | WriteLine(string, object, object, object) | arg2 | -| TextWriter | WriteLine(string, params object[]) | arg | +| TextWriter | WriteLine(string, params Object[]) | arg | | string | Format(IFormatProvider, string, object) | arg0 | | string | Format(IFormatProvider, string, object, object) | arg0 | | string | Format(IFormatProvider, string, object, object) | arg1 | | string | Format(IFormatProvider, string, object, object, object) | arg0 | | string | Format(IFormatProvider, string, object, object, object) | arg1 | | string | Format(IFormatProvider, string, object, object, object) | arg2 | -| string | Format(IFormatProvider, string, params object[]) | args | +| string | Format(IFormatProvider, string, params Object[]) | args | | string | Format(string, object) | arg0 | | string | Format(string, object, object) | arg0 | | string | Format(string, object, object) | arg1 | | string | Format(string, object, object, object) | arg0 | | string | Format(string, object, object, object) | arg1 | | string | Format(string, object, object, object) | arg2 | -| string | Format(string, params object[]) | args | +| string | Format(string, params Object[]) | args | diff --git a/csharp/ql/test/library-tests/methods/Parameters9.expected b/csharp/ql/test/library-tests/methods/Parameters9.expected index 66c1f42c7fd..2af714b9abc 100644 --- a/csharp/ql/test/library-tests/methods/Parameters9.expected +++ b/csharp/ql/test/library-tests/methods/Parameters9.expected @@ -3,5 +3,5 @@ | methods.cs:145:65:145:65 | e | methods.cs:145:69:145:77 | ... + ... | Method2(int, int, int, int, string) | | methods.cs:168:51:168:55 | right | methods.cs:168:59:168:59 | 0 | Plus(int, int) | | methods.cs:173:133:173:133 | i | methods.cs:173:137:173:137 | 1 | SkipTwo(IEnumerable, int) | -| methods.cs:173:133:173:133 | i | methods.cs:173:137:173:137 | 1 | SkipTwo(IEnumerable, int) | -| methods.cs:178:137:178:137 | i | methods.cs:178:141:178:141 | 1 | SkipTwoInt(IEnumerable, int) | +| methods.cs:173:133:173:133 | i | methods.cs:173:137:173:137 | 1 | SkipTwo(IEnumerable, int) | +| methods.cs:178:137:178:137 | i | methods.cs:178:141:178:141 | 1 | SkipTwoInt(IEnumerable, int) | diff --git a/csharp/ql/test/library-tests/overrides/Overrides22.expected b/csharp/ql/test/library-tests/overrides/Overrides22.expected index cef719c8add..11bb9d46cbd 100644 --- a/csharp/ql/test/library-tests/overrides/Overrides22.expected +++ b/csharp/ql/test/library-tests/overrides/Overrides22.expected @@ -2,15 +2,15 @@ | CallTargets.C3.m() | CallTargets.C2.m() | overrides | | overrides.A1.Event | overrides.I5.Event | implements | | overrides.A1.Item[int] | overrides.I5.Item[int] | implements | -| overrides.A1.M(dynamic[], T) | overrides.I2.M(object[], S) | implements | +| overrides.A1.M(dynamic[], T) | overrides.I2.M(Object[], S) | implements | | overrides.A1.Property | overrides.I5.Property | implements | | overrides.A4.Event | overrides.I5.Event | implements | | overrides.A4.Item[int] | overrides.I5.Item[int] | implements | -| overrides.A4.M(dynamic[], T) | overrides.I2.M(object[], S) | implements | +| overrides.A4.M(dynamic[], T) | overrides.I2.M(Object[], S) | implements | | overrides.A4.Property | overrides.I5.Property | implements | | overrides.A6.Event | overrides.I5.Event | implements | | overrides.A6.Item[int] | overrides.I5.Item[int] | implements | -| overrides.A6.M(object[], T) | overrides.I2.M(object[], S) | implements | +| overrides.A6.M(Object[], T) | overrides.I2.M(Object[], S) | implements | | overrides.A6.Property | overrides.I5.Property | implements | | overrides.A8.Event | overrides.A1.Event | overrides | | overrides.A8.Item[int] | overrides.A1.Item[int] | overrides | diff --git a/csharp/ql/test/library-tests/tostringwithtypes/toStringWithTypes.expected b/csharp/ql/test/library-tests/tostringwithtypes/toStringWithTypes.expected index 228694785c6..2dd28b7214d 100644 --- a/csharp/ql/test/library-tests/tostringwithtypes/toStringWithTypes.expected +++ b/csharp/ql/test/library-tests/tostringwithtypes/toStringWithTypes.expected @@ -1,7 +1,7 @@ | Delegate<> | Delegate(int, T) | -| Delegate | Delegate | | Item | Item[T, bool] | -| M | M(IEnumerable) | +| M | M(IEnumerable) | +| M | M(Int32[,,,][][,][,,]) | | M | M(__arglist) | | M | M(bool) | | M | M(byte) | @@ -13,7 +13,6 @@ | M | M(float) | | M | M(int) | | M | M(int*) | -| M | M(int[,,,][][,][,,]) | | M | M(long) | | M | M(object) | | M | M(out T) | @@ -27,6 +26,6 @@ | M | M(ref S) | | M | M(ref char?) | | ToStringWithTypes<> | ToStringWithTypes | -| add_Event | add_Event(Delegate) | +| add_Event | add_Event(Delegate) | | get_Item | get_Item(T, bool) | -| remove_Event | remove_Event(Delegate) | +| remove_Event | remove_Event(Delegate) | diff --git a/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/old.dbscheme b/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/old.dbscheme new file mode 100644 index 00000000000..f93793ee5f6 --- /dev/null +++ b/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/old.dbscheme @@ -0,0 +1,1872 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | --cil + * 3 | f1.cs + * 4 | f2.cs + * 5 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/* + * External artifacts + */ + +externalDefects( + unique int id: @externalDefect, + varchar(900) queryPath: string ref, + int location: @location ref, + varchar(900) message: string ref, + float severity: float ref); + +externalMetrics( + unique int id: @externalMetric, + varchar(900) queryPath: string ref, + int location: @location ref, + float value: float ref); + +externalData( + int id: @externalDataElement, + varchar(900) path: string ref, + int column: int ref, + varchar(900) value: string ref); + +snapshotDate( + unique date snapshotDate: date ref); + +sourceLocationPrefix( + varchar(900) prefix: string ref); + +/* + * Duplicate code + */ + +duplicateCode( + unique int id: @duplication, + varchar(900) relativePath: string ref, + int equivClass: int ref); + +similarCode( + unique int id: @similarity, + varchar(900) relativePath: string ref, + int equivClass: int ref); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id: @duplication_or_similarity ref, + int offset: int ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @external_element + | @xmllocatable | @asp_element | @namespace; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@external_element = @externalMetric | @externalDefect | @externalDataElement; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + unique int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + varchar(900) fullname: string ref, + varchar(900) name: string ref, + varchar(900) version: string ref); + +/* + fromSource(0) = unknown, + fromSource(1) = from source, + fromSource(2) = from library +*/ +files( + unique int id: @file, + varchar(900) name: string ref, + varchar(900) simple: string ref, + varchar(900) ext: string ref, + int fromSource: int ref); + +folders( + unique int id: @folder, + varchar(900) name: string ref, + varchar(900) simple: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + varchar(900) name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + varchar(900) name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + varchar(900) name: string ref); + +typeref_type( + unique int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +extend( + unique int sub: @type ref, + int super: @type_or_ref ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @struct_type ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @array_type | @expr | @delegate_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +/** The annotation of type arguments of a constructed type or method. */ +type_argument_annotation(int constructedgeneric: @generic ref, int position: int ref, int annotation: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +is_generic(unique int id: @generic ref); + +is_constructed(unique int id: @generic ref); + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_annotation( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int annotation: int ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function; + +modifiers( + unique int id: @modifier, + varchar(900) name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable_direct ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + varchar(900) name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + varchar(900) name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + varchar(900) name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + varchar(900) name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + varchar(900) name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + varchar(900) name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + varchar(900) name: string ref, + varchar(900) symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + unique int id: @variable ref, + varchar(900) value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + varchar(900) name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + varchar(900) name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + varchar(900) name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + unique int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + unique int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + varchar(900) name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + varchar(900) name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + varchar(900) name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + varchar(900) name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + varchar(900) value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + varchar(900) name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + varchar(900) name: string ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + varchar(900) encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + varchar(900) root: string ref, + varchar(900) publicId: string ref, + varchar(900) systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + varchar(900) name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + varchar(900) name: string ref, + varchar(3600) value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + varchar(900) prefixName: string ref, + varchar(900) URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + varchar(3600) text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + varchar(3600) text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + varchar(800) text: string ref, + varchar(800) rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + varchar(1000) name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + varchar(1000) name: string ref); +asp_element_body( + unique int element: @asp_element ref, + varchar(1000) body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + varchar(1000) name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + varchar(1000) name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + varchar(900) value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +; + +cil_type( + unique int id: @cil_type, + varchar(900) name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_method( + unique int id: @cil_method, + varchar(900) name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + varchar(900) name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; + +#keyset[method, index] +cil_parameter( + unique int id: @cil_parameter, + int method: @cil_method ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + varchar(900) name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + varchar(900) name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + varchar(100) param: string ref, + varchar(900) value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + varchar(900) value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/semmlecode.csharp.dbscheme b/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/semmlecode.csharp.dbscheme new file mode 100644 index 00000000000..df0118d2d28 --- /dev/null +++ b/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/semmlecode.csharp.dbscheme @@ -0,0 +1,1882 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | --cil + * 3 | f1.cs + * 4 | f2.cs + * 5 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/* + * External artifacts + */ + +externalDefects( + unique int id: @externalDefect, + string queryPath: string ref, + int location: @location ref, + string message: string ref, + float severity: float ref); + +externalMetrics( + unique int id: @externalMetric, + string queryPath: string ref, + int location: @location ref, + float value: float ref); + +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +snapshotDate( + unique date snapshotDate: date ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * Duplicate code + */ + +duplicateCode( + unique int id: @duplication, + string relativePath: string ref, + int equivClass: int ref); + +similarCode( + unique int id: @similarity, + string relativePath: string ref, + int equivClass: int ref); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id: @duplication_or_similarity ref, + int offset: int ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @external_element + | @xmllocatable | @asp_element | @namespace; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@external_element = @externalMetric | @externalDefect | @externalDataElement; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +/* + fromSource(0) = unknown, + fromSource(1) = from source, + fromSource(2) = from library +*/ +files( + unique int id: @file, + string name: string ref, + string simple: string ref, + string ext: string ref, + int fromSource: int ref); + +folders( + unique int id: @folder, + string name: string ref, + string simple: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +extend( + unique int sub: @type ref, + int super: @type_or_ref ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref) + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +is_generic(unique int id: @generic ref); + +is_constructed(unique int id: @generic ref); + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable_direct ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + unique int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; + +#keyset[method, index] +cil_parameter( + unique int id: @cil_parameter, + int method: @cil_method ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/upgrade.properties b/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/upgrade.properties new file mode 100644 index 00000000000..a8ba5643bcb --- /dev/null +++ b/csharp/upgrades/f93793ee5f6b7bec615eaa1af0a1a4dea19472bb/upgrade.properties @@ -0,0 +1,2 @@ +description: Implement structured nullability +compatibility: backwards