69 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using Mono.Cecil;
 | 
						|
using Mono.Cecil.Cil;
 | 
						|
 | 
						|
namespace UnrealSharpWeaver;
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class InvalidConstructorException(MethodDefinition constructor, string message) : WeaverProcessError(message, ErrorEmitter.GetSequencePointFromMemberDefinition(constructor));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class ConstructorNotFoundException(TypeDefinition type, string message) : WeaverProcessError(message, ErrorEmitter.GetSequencePointFromMemberDefinition(type));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class InvalidUnrealClassException(string propertyName, SequencePoint? sequencePoint, string message) : WeaverProcessError($"Class '{propertyName}' is invalid as a unreal class: {message}",
 | 
						|
        sequencePoint)
 | 
						|
{
 | 
						|
    public InvalidUnrealClassException(TypeDefinition klass, string message)
 | 
						|
        : this(klass.FullName, ErrorEmitter.GetSequencePointFromMemberDefinition(klass), message)
 | 
						|
    {
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class InvalidUnrealStructException(TypeDefinition structType, string message) 
 | 
						|
    : WeaverProcessError($"Struct '{structType.FullName}' is invalid as Unreal struct: {message}", ErrorEmitter.GetSequencePointFromMemberDefinition(structType));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class InvalidUnrealEnumException(TypeDefinition enumType, string message) : WeaverProcessError(
 | 
						|
    $"Enum '{enumType.FullName}' is invalid as Unreal enum: {message}",
 | 
						|
    ErrorEmitter.GetSequencePointFromMemberDefinition(enumType));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class InvalidPropertyException(string propertyName, SequencePoint? sequencePoint, string message)
 | 
						|
    : WeaverProcessError($"Property '{propertyName}' is invalid for unreal property: {message}",
 | 
						|
        sequencePoint)
 | 
						|
{
 | 
						|
    public InvalidPropertyException(IMemberDefinition property, string message)
 | 
						|
        : this(property.FullName, ErrorEmitter.GetSequencePointFromMemberDefinition(property), message)
 | 
						|
    {
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class InvalidUnrealFunctionException(MethodDefinition method, string message)
 | 
						|
    : WeaverProcessError($"Method '{method.Name}' is invalid for unreal function: {message}", null,
 | 
						|
        ErrorEmitter.GetSequencePointFromMemberDefinition(method));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class NotDerivableClassException(TypeDefinition klass, TypeDefinition superKlass) : WeaverProcessError(
 | 
						|
    $"Class '{klass.FullName}' is invalid because '{superKlass.FullName}' may not be derived from in managed code.",
 | 
						|
    ErrorEmitter.GetSequencePointFromMemberDefinition(klass));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class UnableToFixPropertyBackingReferenceException : WeaverProcessError
 | 
						|
{
 | 
						|
    public UnableToFixPropertyBackingReferenceException(MethodDefinition constructor, PropertyDefinition property, OpCode opCode)
 | 
						|
        : base($"The type {constructor.DeclaringType.FullName}'s constructor references the property {property.Name} using an unsupported IL pattern", ErrorEmitter.GetSequencePointFromMemberDefinition(constructor))
 | 
						|
    {
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class UnsupportedPropertyInitializerException(PropertyDefinition property) : WeaverProcessError($"Property initializer for UProperty {property.Name} is not a supported constant type", ErrorEmitter.GetSequencePointFromMemberDefinition(property));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class RewriteException(TypeDefinition type, string message) : WeaverProcessError($"{type.FullName}: {message}", ErrorEmitter.GetSequencePointFromMemberDefinition(type));
 | 
						|
 | 
						|
[Serializable]
 | 
						|
class InvalidAttributeException(TypeDefinition attributeType, SequencePoint? point, string message) : WeaverProcessError($"Invalid attribute class {attributeType.Name}: {message}", point); |