Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
switch6.go47 linesDownload Raw Back to test
1// errorcheck2 3// Copyright 2016 The Go Authors. All rights reserved.4// Use of this source code is governed by a BSD-style5// license that can be found in the LICENSE file.6 7// Check the compiler's switch handling that happens8// at typechecking time.9// This must be separate from other checks,10// because errors during typechecking11// prevent other errors from being discovered.12 13package main14 15// Verify that type switch statements with impossible cases are detected by the compiler.16func f0(e error) {17	switch e.(type) {18	case int: // ERROR "impossible type switch case: (int\n\t)?e \(.*type error\) cannot have dynamic type int \(missing method Error\)"19	}20}21 22// Verify that the compiler rejects multiple default cases.23func f1(e interface{}) {24	switch e {25	default:26	default: // ERROR "multiple defaults( in switch)?"27	}28	switch e.(type) {29	default:30	default: // ERROR "multiple defaults( in switch)?"31	}32}33 34type I interface {35	Foo()36}37 38type X int39 40func (*X) Foo() {}41func f2() {42	var i I43	switch i.(type) {44	case X: // ERROR "impossible type switch case: (X\n\t)?i \(.*type I\) cannot have dynamic type X \(method Foo has pointer receiver\)"45	}46}47 
codekingpro/portable-devtools · Team Ai