`AllItems.AllWeapons()': not all code paths return a value

Everytime I try to define a class that takes the type of a certain type of item that I defined in another script I get this error. Can someone tell me what the problem is? I get it for every single function in the script.

using UnityEngine;
using System.Collections;

public class AllItems : MonoBehaviour
{
	private const string meleeWepPath = "Icons/Weapons/Melee";

	public static Weapon AllWeapons()
	{
		Weapon machete = new Weapon (10.0f, 0.0f, 3, false, 0, false);
		machete.name = "Machete";
		machete.description = "A fast bladed weapon";
		machete.icon =  Resources.Load (meleeWepPath) as Texture2D;;
		machete.rarity = RarityType.Common;
		machete.curDurability = 150.0f;
		machete.maxDurability = 150.0f;
		machete.weightAmount = 1;

	}
	public static Consumable AllConsumables()
	{
		
	}
	public static Armor AllArmor()
	{
		
	}
	public static Placeable AllPlaceables()
	{
		
	}
		public enum ItemType
		{
			Armor,
			Weapon,
			Consumable,
			Placeable
		}
}

public SomeThing MethodName() … has to “return” a value

Example : (do NOT copy/paste this, it will NOT work)

public SomeThing MethodName()
{
   //bunch of variables here, bunch of other function calls, etc
   //still never returns anything
}


public SomeThing MethodName()
{
   //bunch of stuff here.... and then
   if(someCrapIsTrue)
      return SomeThing ; //<---a return of something or other

   return null ; //<--- a return of null if applicable should someCrapNotBeTrue
}