Xamarin Public Jenkins (auto-signing) 73ee7591e8 Imported Upstream version 6.8.0.73
Former-commit-id: d18deab1b47cfd3ad8cba82b3f37d00eec2170af
2019-12-10 18:00:56 +00:00

77 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
namespace Microsoft.Cci.Pdb {
/// <summary>
/// A range of CLR IL operations that comprise a lexical scope, specified as an IL offset and a length.
/// </summary>
interface ILocalScope {
/// <summary>
/// The offset of the first operation in the scope.
/// </summary>
uint Offset { get; }
/// <summary>
/// The length of the scope. Offset+Length equals the offset of the first operation outside the scope, or equals the method body length.
/// </summary>
uint Length { get; }
}
/// <summary>
/// A description of the lexical scope in which a namespace type has been nested. This scope is tied to a particular
/// method body, so that partial types can be accommodated.
/// </summary>
interface INamespaceScope {
/// <summary>
/// Zero or more used namespaces. These correspond to using clauses in C#.
/// </summary>
IEnumerable<IUsedNamespace> UsedNamespaces { get; }
}
/// <summary>
/// A namespace that is used (imported) inside a namespace scope.
/// </summary>
interface IUsedNamespace {
/// <summary>
/// An alias for a namespace. For example the "x" of "using x = y.z;" in C#. Empty if no alias is present.
/// </summary>
IName Alias { get; }
/// <summary>
/// The name of a namepace that has been aliased. For example the "y.z" of "using x = y.z;" or "using y.z" in C#.
/// </summary>
IName NamespaceName { get; }
}
/// <summary>
/// The name of an entity. Typically name instances come from a common pool. Within the pool no two distinct instances will have the same Value or UniqueKey.
/// </summary>
interface IName {
/// <summary>
/// An integer that is unique within the pool from which the name instance has been allocated. Useful as a hashtable key.
/// </summary>
int UniqueKey {
get;
//^ ensures result > 0;
}
/// <summary>
/// An integer that is unique within the pool from which the name instance has been allocated. Useful as a hashtable key.
/// All name instances in the pool that have the same string value when ignoring the case of the characters in the string
/// will have the same key value.
/// </summary>
int UniqueKeyIgnoringCase {
get;
//^ ensures result > 0;
}
/// <summary>
/// The string value corresponding to this name.
/// </summary>
string Value { get; }
}
}