internal AvailabilityBaseAttribute( AvailabilityKind availabilityKind, PlatformName platform, Version version, string message) { AvailabilityKind = availabilityKind; Platform = platform; Version = version; Message = message; }
internal AvailabilityBaseAttribute( AvailabilityKind availabilityKind, PlatformName platform, Version version, PlatformArchitecture architecture, string message) { AvailabilityKind = availabilityKind; Platform = platform; Version = version; Architecture = architecture; Message = message; }
internal unsafe CodeCompletion(Interop.CompletionResult* native) { IntPtr completionString = native->completionString; Chunks = new Chunk[Interop.clang_getNumCompletionChunks(completionString)]; for (uint i = 0; i < Chunks.Count(); ++i) { Chunks[(int)i] = new Chunk( Interop.clang_getCompletionChunkKind(completionString, i), Interop.clang_getCompletionChunkText(completionString, i).ManagedString); } Priority = Interop.clang_getCompletionPriority(completionString); Availability = Interop.clang_getCompletionAvailability(completionString); Annotations = new string[Interop.clang_getCompletionNumAnnotations(completionString)]; for (uint i = 0; i < Annotations.Count(); ++i) { Annotations[(int)i] = Interop.clang_getCompletionAnnotation(completionString, i).ManagedString; } Comment = Interop.clang_getCompletionAnnotation(completionString).ManagedString; }
internal unsafe CodeCompletion(Interop.CompletionResult *native) { IntPtr completionString = native->completionString; Chunks = new Chunk[Interop.clang_getNumCompletionChunks(completionString)]; for (uint i = 0; i < Chunks.Count(); ++i) { Chunks[(int)i] = new Chunk( Interop.clang_getCompletionChunkKind(completionString, i), Interop.clang_getCompletionChunkText(completionString, i).ManagedString); } Priority = Interop.clang_getCompletionPriority(completionString); Availability = Interop.clang_getCompletionAvailability(completionString); Annotations = new string[Interop.clang_getCompletionNumAnnotations(completionString)]; for (uint i = 0; i < Annotations.Count(); ++i) { Annotations[(int)i] = Interop.clang_getCompletionAnnotation(completionString, i).ManagedString; } Comment = Interop.clang_getCompletionAnnotation(completionString).ManagedString; }
static PlatformAvailability MergeNewStyleAvailabilityAttribute(PlatformAvailability availability, AttributeData attr, AvailabilityKind availabilityKind) { var platformName = (PlatformName)(byte)attr.ConstructorArguments[0].Value; var platformSet = new PlatformSet(); Platform platform = platformSet.GetPlatform(platformName); if (platform == null) { throw new ArgumentOutOfRangeException($"Platform name: {platformName}."); } if (availability == null) { availability = new PlatformAvailability(); } switch (attr.ConstructorArguments.Length) { case 3: //PlatformName platform, PlatformArchitecture architecture, string message platform.Architecture = (PlatformArchitecture)(byte)attr.ConstructorArguments[1].Value; break; case 5: //PlatformName platform, int majorVersion, int minorVersion, PlatformArchitecture architecture, string message platform.Major = (byte)(int)attr.ConstructorArguments[1].Value; platform.Minor = (byte)(int)attr.ConstructorArguments[2].Value; platform.Architecture = (PlatformArchitecture)(byte)attr.ConstructorArguments[3].Value; availability.Message = (string)attr.ConstructorArguments[4].Value; break; case 6: //PlatformName platform, int majorVersion, int minorVersion, int subminorVersion, PlatformArchitecture architecture, string message platform.Major = (byte)(int)attr.ConstructorArguments[1].Value; platform.Minor = (byte)(int)attr.ConstructorArguments[2].Value; platform.Minor = (byte)(int)attr.ConstructorArguments[3].Value; platform.Architecture = (PlatformArchitecture)(byte)attr.ConstructorArguments[4].Value; availability.Message = (string)attr.ConstructorArguments[5].Value; break; } switch (availabilityKind) { case AvailabilityKind.Introduced: availability.Introduced |= platformSet; break; case AvailabilityKind.Deprecated: availability.Deprecated |= platformSet; break; case AvailabilityKind.Obsoleted: availability.Obsoleted |= platformSet; break; case AvailabilityKind.Unavailable: availability.Unavailable |= platformSet; break; default: throw new ArgumentOutOfRangeException(); } return(availability); }