Fatti
Tra le parti esisteva, oltre ad altre polizze, un "contratto di assicurazione contro la perdita di guadagno in caso di malattia". L'attore era totalmente o parzialmente incapace di lavorare dal 8 maggio 2000 e l'assicurazione ha erogato indennità giornaliere per oltre CHF 100.000 dal 8 giugno 2000 al 28 febbraio 2002. Nell'ambito di un procedimento penale contro l'attore per incendio doloso, ostruzione alla giustizia e truffa plurima, l'assicurazione il 2 aprile 2002 ha fatto valere una pretesa di circa CHF 150.000 in via adesiva. Con lettera del 17 aprile 2002, l'assicurazione ha dichiarato il recesso da tutti i contratti assicurativi ai sensi dell'art. 40 LCA, in quanto dalle indagini di polizia era emerso che almeno una parte delle pretese fatte valere non era giustificata.
L'attore ha accettato il recesso generico dagli altri contratti assicurativi, ma lo ha contestato per quanto riguarda l'assicurazione contro la perdita di guadagno e ha chiesto all'assicurazione di riprendere il pagamento delle indennità giornaliere. Poiché l'assicurazione non ha dato seguito a questa richiesta, l'attore ha presentato una causa presso il Tribunale distrettuale di Rheintal, chiedendo il pagamento delle restanti indennità giornaliere e di una rendita d'invalidità per il primo trimestre.
Legge
Il Tribunale federale doveva decidere se l'assicurazione potesse recedere da tutti i contratti assicurativi, inclusa l'assicurazione contro la perdita di guadagno, ai sensi dell'art. 40 LCA, oppure solo da quelli connessi agli atti fraudolenti e…