You can report bugs on https://feedback.azure.com/forums/908035-sql-server. At least for SQL Server. I am not sure about Visual Studio. In any case, your procedure is not correct. SQL Server agrees to create it, but when I run it, I get this error:
Msg 1088, Level 16, State 12, Procedure TableVariableIndexTest, Line 12 [Batch Start Line 0]Cannot find the object "@TableVariableTest" because it does not exist or you do not have permissions.
Since you but the name in brackets, it is no longer a reference to a variable, but to a permanent table. You can create indexes on table variables once they have been declared. But you can define indexes inline. Here is a corrected version of your procedure:
create or alter procedure dbo.TableVariableIndexTest
as
begin
set nocount, xact_abort on
declare @TableVariableTest table
(
TestInt int,
TestDate date,
INDEX [IX_TableVariableTest] (TestInt, TestDate)
);
end;