using System;
using System.Collections;
// Copyright (c) Microsoft Corporation. All rights reserved.
namespace Microsoft.Contracts {
///
/// Indicates that all derived classes must override this virtual method since the implementation of the method depends on the runtime type of the "this" object
/// to be the same as the declaring type of the method.
///
[AttributeUsage(AttributeTargets.Method)]
public sealed class MustOverrideAttribute : Attribute {
}
}
//---------------------------------------------------------------------------
//SingSharp Library
//---------------------------------------------------------------------------
namespace Microsoft.SingSharp {
///
/// Used as a reference point to the runtime library from code
///
public sealed class RuntimeLibraryHook{
private RuntimeLibraryHook(){}
}
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple=true)]
public sealed class PostCompilationPluginAttribute : Attribute{
private Type pluginType;
public PostCompilationPluginAttribute(){
}
public PostCompilationPluginAttribute(Type pluginType){
this.pluginType = pluginType;
}
public Type PluginType{
get{
return this.pluginType;
}
set{
this.pluginType = value;
}
}
}
}