diff --git a/platformio/builder/tools/piomisc.py b/platformio/builder/tools/piomisc.py index 99081ada..3b9f34e8 100644 --- a/platformio/builder/tools/piomisc.py +++ b/platformio/builder/tools/piomisc.py @@ -32,6 +32,7 @@ from platformio import util class InoToCPPConverter(object): PROTOTYPE_RE = re.compile(r"""^( + (?:template\<.*\>\s*)? # template ([a-z_\d]+\*?\s+){1,2} # return type ([a-z_\d]+\s*) # name of prototype \([a-z_,\.\*\&\[\]\s\d]*\) # arguments diff --git a/tests/ino2cpp/basic/basic.ino b/tests/ino2cpp/basic/basic.ino index b5bd7f2c..88ac301c 100644 --- a/tests/ino2cpp/basic/basic.ino +++ b/tests/ino2cpp/basic/basic.ino @@ -26,12 +26,15 @@ Foo foo(&fooCallback); // +template T Add(T n1, T n2) { + return n1 + n2; +} + void setup() { struct Item item1; myFunction(&item1); } - void loop() { } @@ -40,7 +43,7 @@ void myFunction(struct Item *item) { } -#warning "Line number is 43" +#warning "Line number is 46" void fooCallback(){ diff --git a/tests/test_ino2cpp.py b/tests/test_ino2cpp.py index f3ecb018..337eee72 100644 --- a/tests/test_ino2cpp.py +++ b/tests/test_ino2cpp.py @@ -42,7 +42,7 @@ def test_warning_line(clirunner, validate_cliresult): validate_cliresult(result) assert ('basic.ino:16:14: warning: #warning "Line number is 16"' in result.output) - assert ('basic.ino:43:2: warning: #warning "Line number is 43"' in + assert ('basic.ino:46:2: warning: #warning "Line number is 46"' in result.output) result = clirunner.invoke( cmd_ci, [join(INOTEST_DIR, "strmultilines"), "-b", "uno"])