Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 3 of 3 for CalcMethods (0.29 sec)

  1. src/cmd/compile/internal/typecheck/subr.go

    			dot.SetType(path[c].field.Type)
    			n.X = dot
    		}
    	case ambig:
    		base.Errorf("ambiguous selector %v", n)
    		n.X = nil
    	}
    
    	return n
    }
    
    // CalcMethods calculates all the methods (including embedding) of a non-interface
    // type t.
    func CalcMethods(t *types.Type) {
    	if t == nil || len(t.AllMethods()) != 0 {
    		return
    	}
    
    	// mark top-level method symbols
    	// so that expand1 doesn't consider them.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 05 19:45:58 UTC 2023
    - 20.2K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/typecheck/typecheck.go

    	if recv.IsInterface() {
    		ms = recv.AllMethods()
    	} else {
    		mt := types.ReceiverBaseType(recv)
    		if mt == nil {
    			base.FatalfAt(pos, "type %v has no receiver base type", recv)
    		}
    		CalcMethods(mt)
    		ms = mt.AllMethods()
    	}
    
    	m := Lookdot1(nil, sym, recv, ms, 0)
    	if m == nil {
    		base.FatalfAt(pos, "type %v has no method %v", recv, sym)
    	}
    
    	if !types.IsMethodApplicable(recv, m) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Mar 20 19:08:34 UTC 2024
    - 30.5K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/types/type.go

    // For an interface type, this is the set of methods that are typically iterated
    // over. For non-interface types, AllMethods() only returns a valid result after
    // CalcMethods() has been called at least once.
    func (t *Type) AllMethods() []*Field {
    	if t.kind == TINTER {
    		// Calculate the full method set of an interface type on the fly
    		// now, if not done yet.
    		CalcSize(t)
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 04 14:29:45 UTC 2024
    - 49.5K bytes
    - Viewed (0)
Back to top