<commit_before>interface TypeInference {
    
    class Inference() {
    
        @type["String"] function inferredMethod() {
            return "Hello";
        }
        
        @type["String"] value inferredGetter {
            return "Hello";
        }
        
        @type["String"] value inferredAttribute = "Hello";
        
        /*@error value brokenInferredMethod() {
            return "Hello";
        }*/
        
        @error function brokenInferredGetter {
            return "Hello";
        }
        
        @error function brokenInferredAttribute = "Hello";
        
    }
    
    class ForwardTypeInference(){
        function test(){
            return 0;    
        }
        void m(){
            @type["Natural"] value n = test();
        }
        @type["Natural"] function f() {
            return test();
        }
    }
    
    class BackwardTypeInference(){
        void m(){
            @type["Void"] @error value n = test();
        }
        @type["Void"] function f() {
            @error return test();
        }
        function test(){
            return 0;    
        }
    }
    
    class BrokenInference() {
        
        @error value x;
        
        @error value y {}
        
        @error function f() {}
        
        @error function g();
        
        @error class C();
        
        @error interface I;
        
    }

    class UnknownInference() {
        
        @error @type["Void"] value x = burp;
        
        @type["Void"] value y {
            @error return burp;
        }
        
        @type["Void"] function f() {
            @error return burp;
        }
        
        @error @type["Void"] function g() = burp;
                
    }

}<commit_msg>more tests for failed type inference<commit_after>interface TypeInference {
    
    class Inference() {
    
        @type["String"] function inferredMethod() {
            return "Hello";
        }
        
        @type["String"] value inferredGetter {
            return "Hello";
        }
        
        @type["String"] value inferredAttribute = "Hello";
        
        /*@error value brokenInferredMethod() {
            return "Hello";
        }*/
        
        @error function brokenInferredGetter {
            return "Hello";
        }
        
        @error function brokenInferredAttribute = "Hello";
        
    }
    
    class ForwardTypeInference(){
        function test(){
            return 0;    
        }
        void m(){
            @type["Natural"] value n = test();
        }
        @type["Natural"] function f() {
            return test();
        }
    }
    
    class BackwardTypeInference(){
        void m(){
            @type["Void"] @error value n = test();
        }
        @type["Void"] function f() {
            @error return test();
        }
        function test(){
            return 0;    
        }
    }
    
    class BrokenInference() {
        
        @error value x;
        
        @error value y {}
        
        @error function f() {}
        
        @error function g();
        
        @error class C();
        
        @error interface I;
        
    }

    class UnknownInference() {
        
        @error @type["Void"] value x = burp;
        
        @type["Void"] value y {
            @error return burp;
        }
        
        @type["Void"] function f() {
            @error return burp;
        }
        
        @error @type["Void"] function g() = burp;
        
        @error @type["Sequence<Void>"] value seq = { burp };
        
        @type["Sequence<Void>"] function createSeq() {
            @error @type["Sequence<Void>"] return { hi };
        }
        
        Sequence<T> singleton<T>(T element) {
            return {element};
        }
        
        @type["Sequence<Void>"] @error value sing = singleton(hi);
        
        value hi = "hi";
        
    }

}
{'fraction_non_alphanumeric': 0.11721144024514811, 'fraction_numerical': 0.0010214504596527069, 'mean_word_length': 1.1968592260235558, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4717711', 'n_tokens_mistral': 1055, 'n_tokens_neox': 1051, 'n_words': 254}