Given an edge-to-edge tiling consisting of a finite set of prototiles, if the tiling contains a void, is there a way to find a tiling that fills it?
For example, given a square and triangle as prototiles, this arrangement can be constructed:
Intuitively, there doesn't seem to be a solution. But is there a way to prove it? Or, if a solution is proven to exist, how would it be found?
The example given is quite simple, but a more complex tiling quickly becomes a challenge:
(This second example is built from 14 prototiles, and has a solution.)


To address the specific question in your first example: yes, it can be proven that there is no way to fill the void.
Consider one of the vertices of the "hole" which touches a square. There are $150$ degrees of angle that need to be filled; the only way to do this is to use one square and one triangle. The square will then end up touching one of the four-triangle vertices. But then this vertex will have a $30^\circ$ angle left to be filled, which is impossible with the given tiles:
In general, you should expect this to be an extremely hard problem, probably as difficult as the general question of determining whether a tiling exists in a given region - the fact that the border is made up of tiles from your original set does not seem to make the analysis any easier.