That SurfacePattern.Extend was just hiding the inherited Pattern.Extend property, and doing exactly the same thing. So I removed it, but I was just trying to get rid of the compiler warning...
After seeing http://cairographics.org/manual/bindings-patterns.html, now I think maybe it's Pattern.Extend that should be removed ?
In any case, they both can stay if needed.