From 1d94d1770d31b69bf24c4661945351969b58cbf3 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Wed, 24 Sep 2014 12:25:45 +0200 Subject: [PATCH] [mcs] More tweaks to conditional tokenizer. Fixes #23319 --- mcs/mcs/cs-tokenizer.cs | 7 ++++++- mcs/tests/gtest-409.cs | 5 +++++ mcs/tests/ver-il-net_4_5.xml | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mcs/mcs/cs-tokenizer.cs b/mcs/mcs/cs-tokenizer.cs index 2147c145e6c74..9647a4bd7e64a 100644 --- a/mcs/mcs/cs-tokenizer.cs +++ b/mcs/mcs/cs-tokenizer.cs @@ -1268,6 +1268,7 @@ int TokenizePossibleNullableType () int next_token; int parens = 0; int generics = 0; + int brackets = 0; var nt = xtoken (); switch (nt) { @@ -1333,6 +1334,11 @@ int TokenizePossibleNullableType () ++parens; goto default; + case Token.OPEN_BRACKET: + case Token.OPEN_BRACKET_EXPR: + ++brackets; + goto default; + case Token.CLOSE_PARENS: --parens; goto default; @@ -1348,7 +1354,6 @@ int TokenizePossibleNullableType () int interrs = 1; int colons = 0; int braces = 0; - int brackets = 0; // // All shorcuts failed, do it hard way // diff --git a/mcs/tests/gtest-409.cs b/mcs/tests/gtest-409.cs index 2071b625c3a40..2f5ea10ae8f4e 100644 --- a/mcs/tests/gtest-409.cs +++ b/mcs/tests/gtest-409.cs @@ -155,6 +155,11 @@ void Test_18 (bool b, Action a) var e = b ? () => { } : a; } + void Test_19 (int[,] table) + { + var x = 1 > 0 ? table[5, 1] : 0; + } + static void Helper (T arg) { } diff --git a/mcs/tests/ver-il-net_4_5.xml b/mcs/tests/ver-il-net_4_5.xml index d423fd25a7170..e193e7b42b392 100644 --- a/mcs/tests/ver-il-net_4_5.xml +++ b/mcs/tests/ver-il-net_4_5.xml @@ -14469,6 +14469,9 @@ 2 + + 11 +