/// <summary> /// Constructor. /// </summary> /// <param name="retargetingAssembly"> /// Owning assembly. /// </param> /// <param name="underlyingModule"> /// The underlying ModuleSymbol, cannot be another RetargetingModuleSymbol. /// </param> internal RetargetingModuleSymbol(RetargetingAssemblySymbol retargetingAssembly, SourceModuleSymbol underlyingModule) { Debug.Assert((object)retargetingAssembly != null); Debug.Assert((object)underlyingModule != null); _retargetingAssembly = retargetingAssembly; _underlyingModule = underlyingModule; this.RetargetingTranslator = new RetargetingSymbolTranslator(this); _createRetargetingNamespace = CreateRetargetingNamespace; _createRetargetingNamedType = CreateRetargetingNamedType; _createRetargetingMember = CreateRetargetingMember; }
internal PENetModuleBuilder( SourceModuleSymbol sourceModule, EmitOptions emitOptions, Cci.ModulePropertiesForSerialization serializationProperties, IEnumerable <ResourceDescription> manifestResources ) : base( sourceModule, emitOptions, OutputKind.NetModule, serializationProperties, manifestResources ) { }
/// <summary> /// Constructor. /// </summary> /// <param name="retargetingAssembly"> /// Owning assembly. /// </param> /// <param name="underlyingModule"> /// The underlying ModuleSymbol, cannot be another RetargetingModuleSymbol. /// </param> public RetargetingModuleSymbol(RetargetingAssemblySymbol retargetingAssembly, SourceModuleSymbol underlyingModule) { Debug.Assert((object)retargetingAssembly != null); Debug.Assert((object)underlyingModule != null); _retargetingAssembly = retargetingAssembly; _underlyingModule = underlyingModule; this.RetargetingTranslator = new RetargetingSymbolTranslator(this); _createRetargetingMethod = CreateRetargetingMethod; _createRetargetingNamespace = CreateRetargetingNamespace; _createRetargetingNamedType = CreateRetargetingNamedType; _createRetargetingField = CreateRetargetingField; _createRetargetingProperty = CreateRetargetingProperty; _createRetargetingEvent = CreateRetargetingEvent; _createRetargetingTypeParameter = CreateRetargetingTypeParameter; }
/// <summary> /// Constructor. /// </summary> /// <param name="retargetingAssembly"> /// Owning assembly. /// </param> /// <param name="underlyingModule"> /// The underlying ModuleSymbol, cannot be another RetargetingModuleSymbol. /// </param> public RetargetingModuleSymbol(RetargetingAssemblySymbol retargetingAssembly, SourceModuleSymbol underlyingModule) { Debug.Assert((object)retargetingAssembly != null); Debug.Assert((object)underlyingModule != null); _retargetingAssembly = retargetingAssembly; _underlyingModule = underlyingModule; this.RetargetingTranslator = new RetargetingSymbolTranslator(this); _createRetargetingMethod = CreateRetargetingMethod; _createRetargetingNamespace = CreateRetargetingNamespace; _createRetargetingNamedType = CreateRetargetingNamedType; _createRetargetingField = CreateRetargetingField; _createRetargetingProperty = CreateRetargetingProperty; _createRetargetingEvent = CreateRetargetingEvent; _createRetargetingTypeParameter = CreateRetargetingTypeParameter; }
public ChapterSymbol?ResolveCallChapterTarget(CallChapterStatement callChapterStmt) { string modulePath = callChapterStmt.TargetModule.Value; try { SourceModuleSymbol targetSourceModule = _compilation.GetSourceModule(modulePath); ChapterSymbol? chapter = targetSourceModule.LookupChapter("main"); if (chapter is null) { Report(callChapterStmt.TargetModule, DiagnosticId.ChapterMainNotFound); } return(chapter); } catch (FileNotFoundException) { string moduleName = callChapterStmt.TargetModule.Value; Report(callChapterStmt.TargetModule, DiagnosticId.ExternalModuleNotFound, moduleName); return(null); } }
internal static void VerifyParamArrayAttribute(ParameterSymbol parameter, SourceModuleSymbol module, bool expected = true, OutputKind outputKind = OutputKind.ConsoleApplication) { Assert.Equal(expected, parameter.IsParams); var emitModule = new PEAssemblyBuilder(module.ContainingSourceAssembly, EmitOptions.Default, outputKind, GetDefaultModulePropertiesForSerialization(), SpecializedCollections.EmptyEnumerable <ResourceDescription>()); var paramArrayAttributeCtor = (MethodSymbol)emitModule.Compilation.GetWellKnownTypeMember(WellKnownMember.System_ParamArrayAttribute__ctor); bool found = false; var context = new EmitContext(emitModule, null, new DiagnosticBag()); foreach (Microsoft.Cci.ICustomAttribute attr in parameter.GetSynthesizedAttributes()) { if (paramArrayAttributeCtor == (MethodSymbol)attr.Constructor(context)) { Assert.False(found, "Multiple ParamArrayAttribute"); found = true; } } Assert.Equal(expected, found); context.Diagnostics.Verify(); }
public Checker(SubroutineSymbol subroutine, DiagnosticBuilder diagnostics) { _module = subroutine.DeclaringSourceFile.Module; _compilation = _module.Compilation; _diagnostics = diagnostics; }
internal PENetModuleBuilder(SourceModuleSymbol sourceModule, string outputName, ModulePropertiesForSerialization serializationProperties, IEnumerable <ResourceDescription> manifestResources) : base(sourceModule, outputName, OutputKind.NetModule, serializationProperties, manifestResources, assemblySymbolMapper: null) { }